Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gestion des formats de dates dans les requêtes

3 réponses
Avatar
moromain
Bonsoir,

J'ai 2 requ=EAtes qui utilisent des dates, et vous vous en doutez... =E7a
marche pas !
C1 et Var1 sont des string, C2 est au format date et Var2 est saisie
avec un masque (00/00/0000;0;_).

DoCmd.RunSQL "INSERT INTO Table(C1, C2) VALUES ('" & Var1 & "'," &
Format(Var2, "dd/mm/yyyy") & ")"

La date que je retrouve dans Table est du type 00:00:00. Par exemple,
la saisie 05/11/2007 me renvoie dans la table la valeur de date
00:00:20.
Comment y rem=E9dier ? Le m=EAme masque de saisi est appliqu=E9 sur la
table.

DoCmd.RunSQL "DELETE * FROM Table WHERE C1 =3D"" & Var1 & "" AND C2 =3D "
& Var2 & ""
Celle-ci s'ex=E9cute correctement. J'ai un message "Vous allez supprimer
0 ligne". Alors qu'un enregistrement existe bel et bien dans ma table.
J'ai test=E9 =E7a :
DELETE * FROM Table WHERE C1 =3D ""ZZZZZZZ"" AND C2 =3D #05/09/1996#" (0
ligne supprim=E9e)
sachant que la requ=EAte suivante fonctionne (1 ligne supprim=E9e) :
DELETE C1, C2, *
FROM Table
WHERE C1=3D"ZZZZZZZ" AND C2=3D#9/5/1996#

Il doit y avoir des subtilit=E9s datistiques qui m'=E9chappent !

3 réponses

Avatar
Fabien
Bonsoir,

J'ai 2 requêtes qui utilisent des dates, et vous vous en doutez... ça
marche pas !
C1 et Var1 sont des string, C2 est au format date et Var2 est saisie
avec un masque (00/00/0000;0;_).

DoCmd.RunSQL "INSERT INTO Table(C1, C2) VALUES ('" & Var1 & "'," &
Format(Var2, "dd/mm/yyyy") & ")"

La date que je retrouve dans Table est du type 00:00:00. Par exemple,
la saisie 05/11/2007 me renvoie dans la table la valeur de date
00:00:20.
Comment y remédier ? Le même masque de saisi est appliqué sur la
table.

DoCmd.RunSQL "DELETE * FROM Table WHERE C1 ="" & Var1 & "" AND C2 = "
& Var2 & ""
Celle-ci s'exécute correctement. J'ai un message "Vous allez supprimer
0 ligne". Alors qu'un enregistrement existe bel et bien dans ma table.
J'ai testé ça :
DELETE * FROM Table WHERE C1 = ""ZZZZZZZ"" AND C2 = #05/09/1996#" (0
ligne supprimée)
sachant que la requête suivante fonctionne (1 ligne supprimée) :
DELETE C1, C2, *
FROM Table
WHERE C1="ZZZZZZZ" AND C2=#9/5/1996#

Il doit y avoir des subtilités datistiques qui m'échappent !

Salut,

Dans SQL les dates doivent toujours être au format mm/dd/yyyy. C'est le
format US ;-)
@+

Avatar
moromain
D'accord, mais pourquoi 05/11/2007 devient-il 00:00:20 ?
C'est le nouveau format magic US ??!!!!! ;-o
Avatar
Thierry (ze Titi)
Hello moromain !

Cela est peut-être dû au fait que tu n'as pas spécifié de format date
précis dans ta table pour le champ C2. J'ai bien dit "peut-être"...

En ce jour mémorable du mardi 06/11/2007, tu as émis l'idée suivante:
D'accord, mais pourquoi 05/11/2007 devient-il 00:00:20 ?
C'est le nouveau format magic US ??!!!!! ;-o


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info