Gestion des formats de dates dans les requêtes

Le
moromain
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 !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fabien
Le #6331571
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 ;-)
@+

moromain
Le #6331181
D'accord, mais pourquoi 05/11/2007 devient-il 00:00:20 ?
C'est le nouveau format magic US ??!!!!! ;-o
Thierry (ze Titi)
Le #6331161
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

Publicité
Poster une réponse
Anonyme