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

Encore un pbl de date

3 réponses
Avatar
StanF
Bonjour,

J'utilise VB6 qui accède à une base access 97.
Dans cette base, une table contient un champ clé [creation] en format
Date/Heure, Général (22/12/2002 17:30:45).

Je récupère dans une ListBox une date/heure (même format que le champs
puisque cette ListBox est issue de la table contenant le champs [creation]),
et je souhaite lister dans une requete les enregistrements relatifs à cette
date ENTIERE (date ET heure).

Voici ma méthode:
---
'Récuperation de la clé (date complète)
Dim num As String
Dim dateh As Date
pos = InStr(frmListe.List2.Text, "-")
num = Mid(frmListe.List2.Text, pos - 20, pos - 2)
dateh = num
'MsgBox (dateh) --> format OK

'Requete
req1 = "SELECT * FROM T_remarques WHERE [Num_client] = '" & num2 & "' AND
[creation] = 'dateh';"
---

Réponse à l'éxecution: type de données incompatibles.
J'ai essayé avec des ', des ", des & et des #, rien n'y fait, impossible de
comparer mon champ [creation] à cette date récupérée en ListBox.

Quelqu'un a une idée ?

Merci!

Stan.

3 réponses

Avatar
LE CARRE Yannick
Salut Stan,

une requête SQL est une chaîne de caractères !

Ta variable 'dateh' est au format date.

Essaye de la convertir en Texte :
req1 = "SELECT * FROM T_remarques WHERE ([Num_client] = '" & num2 & "' AND
[creation] = #" & Cstr (dateh) & "#)";
Sinon, les dièses sont très apprécié par Access pour les dates.

Attention au format date dd/mm/yyy ou mm/dd/yyy selon tes paramètres
régionaux.

Pourquoi utilises tu la variable num2 et pas num ?

Bonne soirée !

Yannick


StanF a écrit dans le message :
bm3t7d$vu3$
Bonjour,

J'utilise VB6 qui accède à une base access 97.
Dans cette base, une table contient un champ clé [creation] en format
Date/Heure, Général (22/12/2002 17:30:45).

Je récupère dans une ListBox une date/heure (même format que le champs
puisque cette ListBox est issue de la table contenant le champs


[creation]),
et je souhaite lister dans une requete les enregistrements relatifs à


cette
date ENTIERE (date ET heure).

Voici ma méthode:
---
'Récuperation de la clé (date complète)
Dim num As String
Dim dateh As Date
pos = InStr(frmListe.List2.Text, "-")
num = Mid(frmListe.List2.Text, pos - 20, pos - 2)
dateh = num
'MsgBox (dateh) --> format OK

'Requete
req1 = "SELECT * FROM T_remarques WHERE [Num_client] = '" & num2 & "' AND
[creation] = 'dateh';"
---

Réponse à l'éxecution: type de données incompatibles.
J'ai essayé avec des ', des ", des & et des #, rien n'y fait, impossible


de
comparer mon champ [creation] à cette date récupérée en ListBox.

Quelqu'un a une idée ?

Merci!

Stan.




Avatar
teddy
On peut aussi utiliser CDate('DD/MM/YYYY') pour comparer une variable string
contenant la date avec le champ Date-Heure de ta table.

Ted


"StanF" a écrit dans le message de
news:bm3t7d$vu3$
Bonjour,

J'utilise VB6 qui accède à une base access 97.
Dans cette base, une table contient un champ clé [creation] en format
Date/Heure, Général (22/12/2002 17:30:45).

Je récupère dans une ListBox une date/heure (même format que le champs
puisque cette ListBox est issue de la table contenant le champs


[creation]),
et je souhaite lister dans une requete les enregistrements relatifs à


cette
date ENTIERE (date ET heure).

Voici ma méthode:
---
'Récuperation de la clé (date complète)
Dim num As String
Dim dateh As Date
pos = InStr(frmListe.List2.Text, "-")
num = Mid(frmListe.List2.Text, pos - 20, pos - 2)
dateh = num
'MsgBox (dateh) --> format OK

'Requete
req1 = "SELECT * FROM T_remarques WHERE [Num_client] = '" & num2 & "' AND
[creation] = 'dateh';"
---

Réponse à l'éxecution: type de données incompatibles.
J'ai essayé avec des ', des ", des & et des #, rien n'y fait, impossible


de
comparer mon champ [creation] à cette date récupérée en ListBox.

Quelqu'un a une idée ?

Merci!

Stan.




Avatar
StanF
"LE CARRE Yannick" *NOSPAM*gemini.fr> a écrit dans le message
de news:
Salut Stan,

une requête SQL est une chaîne de caractères !

Ta variable 'dateh' est au format date.

Essaye de la convertir en Texte :
req1 = "SELECT * FROM T_remarques WHERE ([Num_client] = '" & num2 & "' AND
[creation] = #" & Cstr (dateh) & "#)";
Sinon, les dièses sont très apprécié par Access pour les dates.



Ca a l'air de fonctionner, merci du tuyau pour le format de la date.

Reste à comprendre pourquoi il ne me trouve aucun enregistrement courant
alors qu'il s'agit d'une modification d'élément qu'il prend dans une table
existante (récupération de la clé, modification du libellé associée à cette
clé).
Je vais travailler dessus....

Pourquoi utilises tu la variable num2 et pas num ?



Il y a d'autres variables dans mon code... :o)

Merci encore!

Stan.