• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Importeren vanuit access op 2 of 3 variabelen

Status
Niet open voor verdere reacties.

vaneijk

Gebruiker
Lid geworden
31 mrt 2017
Berichten
152
Geachte helpers van het forum,

Ik heb een database in Access waaruit ik data wil importeren op 2 of 3 variabelen. De opzet van de Accessdatabase staan op blad1 en blad2 in het voorbeeldbestandje. Bekijk bijlage Dagstaten.xlsm

Het uitgangspunt wat ik zou willen bereiken:
In het userform wil ik aangeven welke tussen welke datums er gezocht moet gaan worden in de Accesdatabase, op welk werkadres en in de listbox1 welke personen.
Met deze data wil ik een sheet laten opmaken zoals in het voorbeeld op blad3.

Nu probeer ik dit eventueel in fases te realiseren, eerst de data importeren tussen de datums, en dan uitsplitsen op naam en werkadres, dan het sheet laten opmaken, maar ik heb in dit geheel enkele problemen:

Ik krijg als eerste de sql voor het importeren tussen datum's niet werkend. In Access staat de kolom "Werkdag_Datum" op datum notitie.
op internet de volgende sql gevonden en geprobeerd aan te passen naar mijn bestand maar echter geeft hij hierin een foutmelding waar ik tot op heden toe nog niet achter ben wat er verkeerd staat.

Code:
c01 = "SELECT * FROM Dagstaten WHERE Werkdag_Datum BETWEEN " & Format(Me.Label3.Caption, "d-m-yyyy") & " AND " & Format(Me.Label4.Caption, "d-m-yyyy") & " "

Met bovenstaande zou hij dus alle data (van alle werknemers) tussen de datum's importeren, maar dat is veel te veel. Het liefst laat ik het gelijk uit sorteren zoals eerder beschreven op geselecteerde personen in de listbox en/of op werkadres van combobox2 zoals onderstaand probeersel.

Code:
c01 = "SELECT * FROM Dagstaten WHERE Werkadres LIKE '" & Me.ComboBox2.Value & "'" And "WHERE Werkdag_Datum BETWEEN " & Format(Me.Label3.Caption, "d-m-yyyy") & " AND " & Format(Me.Label4.Caption, "d-m-yyyy") & " "

Of

Code:
c01 = "SELECT * FROM Dagstaten WHERE Persnaam LIKE " & Me.listbox1.selected(i) & " AND " & "WHERE Werkadres LIKE '" & Me.ComboBox2.Value & "'" And "WHERE Werkdag_Datum BETWEEN " & Format(Me.Label3.Caption, "d-m-yyyy") & " AND " & Format(Me.Label4.Caption, "d-m-yyyy") & " "



Is dit te realiseren met een goed werkende query of zou ik in Access relaties moeten gaan leggen en dan desbetreffende sql aanroepen?

Kan een beste helper van het forum mij hiermee op de goede weg brengen of goed advies geven wat ik het beste kan gaan doen?

Alvast bedankt voor alle reacties en het meedenken.
Mvg. E.
 
Als je wel eens een query in Access hebt gemaakt, dan weet je dat je datums anders moet selecteren dan tekst of getallen. Dus niet, zoals jij doet, zo:
PHP:
SELECT * FROM Dagstaten WHERE Persnaam LIKE 'OnwaarWHERE Werkadres LIKE ''AND WHERE Werkdag_Datum BETWEEN 22-1-2018 AND 9-2-2018
Dat gaat namelijk fout. Nog afgezien van de andere fouten die er in je code zitten. Zoals het verkeerd selecteren van waarden uit de keuzelijst. Sowieso gaat jouw selectie fout, omdat je de datum niet converteert naar een Amerikaanse notatie. Als ik mij alleen met het datumaspect bezig houd, zou ik deze methode gebruiken:
PHP:
    c01 = "SELECT * FROM Dagstaten WHERE Werkdag_Datum BETWEEN CDate(" & CDbl(Me.Label3.Caption) & ") AND CDate(" & CDbl(Me.Label4.Caption) & ") "
Je wou nog een goed advies? Hou alles binnen Access; waarom zou je het optimale gereedschap (Access) inwisselen voor een krakkemikkig vehikel (Excel)?
 
Beste OctaFish,

Als eerste bedankt voor uw reactie. Om de datums te converteren heb ik inderdaad niet aan gedacht. Zoals u zegt is het misschien wel wijsheid om alles in Access te houden. Ik denk dat het ook tijd wordt om me ook hierin een stuk verder te gaan verdiepen. Ik denk dat dan alle data die ik nodig heb een stuk makkelijker te verkrijgen is en qua opmaak ook alles makkelijker te realiseren is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan