Requête SQL avec fonctions date
Le
Georges
Bonjour,
je tente de faire fonctionner la requête SQL suivante dans une fonction VBA
Set MyQuery = MyDB.CreateQueryDef("", "INSERT INTO DonnéesJoursPrésent (
Matricule, DébutMois, JoursTravail ) SELECT Personnel.Matricule, " &
CDate("1/" & Month(Date) - 1 & "/" & DLookup("Num", "Variables",
"Variable='Exercice'")) & " AS DébutMois,
Val(JoursTrav([DteContrat],[Sortie],Month(Date())-1)) AS JoursTravail FROM
Personnel WHERE (((Personnel.DteContrat)<= " & CDate("31/12/" &
DLookup("Num", "Variables", "Variable='Exercice'")) & ") AND
((Personnel.Sortie) Is Null Or (Personnel.Sortie)>= " & CDate("1/1/" &
DLookup("Num", "Variables", "Variable='Exercice'")) & ") AND
((Personnel.Unité)<>'4970' And (Personnel.Unité)<>'4971'));")
MyQuery.Execute
Le problème c'est que les fonction de date renvoient la valeur 0 et je ne
parviens pas à savoir ce qui ne va pas.
Merci de votre aide.
Cordialement
Georges
je tente de faire fonctionner la requête SQL suivante dans une fonction VBA
Set MyQuery = MyDB.CreateQueryDef("", "INSERT INTO DonnéesJoursPrésent (
Matricule, DébutMois, JoursTravail ) SELECT Personnel.Matricule, " &
CDate("1/" & Month(Date) - 1 & "/" & DLookup("Num", "Variables",
"Variable='Exercice'")) & " AS DébutMois,
Val(JoursTrav([DteContrat],[Sortie],Month(Date())-1)) AS JoursTravail FROM
Personnel WHERE (((Personnel.DteContrat)<= " & CDate("31/12/" &
DLookup("Num", "Variables", "Variable='Exercice'")) & ") AND
((Personnel.Sortie) Is Null Or (Personnel.Sortie)>= " & CDate("1/1/" &
DLookup("Num", "Variables", "Variable='Exercice'")) & ") AND
((Personnel.Unité)<>'4970' And (Personnel.Unité)<>'4971'));")
MyQuery.Execute
Le problème c'est que les fonction de date renvoient la valeur 0 et je ne
parviens pas à savoir ce qui ne va pas.
Merci de votre aide.
Cordialement
Georges

Poser une question


Georges a écrit :
Tu as essayé avec Date() au lieu de Date.
j'ai essayé mais le résultat est identique.
Merci de ton intérêt.
Georges
"Michel__D" a écrit :
Dans les sql de mes aplli, je transforme toujours les dates en dates
américaines MMDDYYYY pour avoir un résultat correct.
C'est une suggestion... en espérant vous avoir donné une vraie piste...
cordialement, Ch.
"Georges" a écrit :
effectivement c'était la solution. J'ai utilisé une fonction trouvée sur web
(je ne sais plus qui l'avait écrite :
Function DateUS(ByVal dt As Variant)
If IsNull(dt) Then Exit Function
DateUS = "#" & Month(dt) & "/" & Day(dt) & "/" & Year(dt) & "#"
End Function
Merci beaucoup.
"Chouette" a écrit :