Query met datum vergelijking werkt weer eens niet

Status
Niet open voor verdere reacties.

gcjvanbeek

Gebruiker
Lid geworden
27 nov 2006
Berichten
164
[Hallo,
Meestal krijg ik het wel werkend, maar soms heb je van die dagen...
Waarom werkt deze query in VBA niet.
Code:
LastSync = rs![Laatste synchr datum]
'Nieuwe medewerkers Jos toevoegen
strSQL = "SELECT * FROM [TabRel nieuw] Where Format([TabRel nieuw].[Invoer of update],'dd mmmm yyyy') >" & Format(LastSync, "dd mmmm yyyy") & ";"
MsgBox strSQL
Set master = CurrentDb.OpenRecordset(strSQL)
Ik krijg een error 3075 syntaxerror in query enz. Ik heb voor het gemak een plaatje van de msgbox bijgesloten.
Hoop dat iemand me kan helpen
GerardATTACH=CONFIG]172166[/ATTACH]
 

Bijlagen

  • fout in query.JPG
    fout in query.JPG
    19,3 KB · Weergaven: 13
Een datum moet je helemaal niet met FORMAT checken. Overigens hoort deze vraag in het Access forum thuis; hier komt weinig VBA bij kijken. :)
 
Verplaatst naar Access sectie
 
Wellicht overbodig, maar niet fout

Hallo Octafish,
Bedankt voor je snelle reactie. Het gebruik van format is toch niet echt fout? Ik heb dat toegevoegd omdat ik de formaten hetzelfde wilde krijgen. De query zonder Format werkte ook niet.
Gerard
 
Eigenlijk wel; een datum is een getal, en als je in een vergelijking twee datums met elkaar vergelijkt, dan vergelijk je dus twee getallen. Zodra je daar een FORMAT omheen bouwt, verander je het getal in tekst. En dat maakt de vergelijking gelijk een stuk minder nauwkeurig. Bovendien is het totaal overbodig. Als de vergelijking op alleen de velden niet werkt, dan komt dat omdat je vergelijking niet klopt. En dat kan te maken hebben met het veld dat je aanbiedt.
Ik neem aan dat het veld [Invoer of update] een datumveld is, en dat [Lastsync] ook een datumveld is. In VBA kun je prima datums met elkaar vergelijken,zolang dat inde Amerikaanse datumnotatie is. Je zult dus ofwel een correct FORMAT mee moeten geven (wat jij niet doet) ofwel de datums moeten converteren naar een getal. Dat laatste doe ik zelf meestal.
Code:
LastSync = rs![Laatste synchr datum]
'Nieuwe medewerkers Jos toevoegen
strSQL = "SELECT * FROM [TabRel nieuw] Where cdbl([Invoer of update]) > " & cdbl(LastSync)
Set master = CurrentDb.OpenRecordset(strSQL)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan