OVH Cloud OVH Cloud

probleme de date

3 réponses
Avatar
thierry
Bonjour,

j'utilise un ordre SQL dans un Objet Querydef sous DAO. Jusque là ça
va.

voici le code:

chaine_sql = "select cab_num from cb, cp where cab_dat >= # " &
main_screen.txt_date_debut.Text & _
" # and cab_dat <= # " & main_screen.txt_date_fin.Text & " # and
cab_num = cap_num"

On Error GoTo querry_error
Set qd = db.CreateQueryDef("", chaine_sql)
On Error GoTo 0


Set rc_qf = qd.OpenRecordset(dbOpenDynaset, dbconcitent)

Do While rc_qf.EOF = False
...

loop

qd ma variable main_screen.txt_date_debut.Text vaut 01/01/04 et ma
variable main_screen.txt_date_fin.text vaut 31/01/04, je n'obtiens
aucune ligne, alors qu'il y en a au moins 4000.

Si je mets la valeur 10/01/04, là j'obtients des valeurs. J'ai bien
l'impression que Access traite les dates sous la forme mois/
jour/année, alors que je lui présente sous le forme jour/mois/année.
Ors j'ai regardé dans les paramètres régionaux, et je suis bien en
français avec un format de date du style 17/05/04

Auriez vous une idée?

Cordialement

Thierry

3 réponses

Avatar
Christophe QUEVAL
Pourquoi ne pas utiliser la fonction format dans ce cas.
Comme ceci (non testé) :

chaine_sql = "select cab_num from cb, cp where cab_dat >= # " &
Format(main_screen.txt_date_debut.Text, "mm/dd/yyyy") & _
" # and cab_dat <= # " & Format(main_screen.txt_date_fin.Text,


"mm/dd/yyyy") & " # and
cab_num = cap_num"



Christophe

"thierry" a écrit dans le message de
news:

Bonjour,

j'utilise un ordre SQL dans un Objet Querydef sous DAO. Jusque là ça
va.

voici le code:

chaine_sql = "select cab_num from cb, cp where cab_dat >= # " &
main_screen.txt_date_debut.Text & _
" # and cab_dat <= # " & main_screen.txt_date_fin.Text & " # and
cab_num = cap_num"

On Error GoTo querry_error
Set qd = db.CreateQueryDef("", chaine_sql)
On Error GoTo 0


Set rc_qf = qd.OpenRecordset(dbOpenDynaset, dbconcitent)

Do While rc_qf.EOF = False
...

loop

qd ma variable main_screen.txt_date_debut.Text vaut 01/01/04 et ma
variable main_screen.txt_date_fin.text vaut 31/01/04, je n'obtiens
aucune ligne, alors qu'il y en a au moins 4000.

Si je mets la valeur 10/01/04, là j'obtients des valeurs. J'ai bien
l'impression que Access traite les dates sous la forme mois/
jour/année, alors que je lui présente sous le forme jour/mois/année.
Ors j'ai regardé dans les paramètres régionaux, et je suis bien en
français avec un format de date du style 17/05/04

Auriez vous une idée?

Cordialement

Thierry




Avatar
Zoury
Salut!

C'est un peu dur sans pouvoir débuguer... as-tu essayé avec CDate() ?

chaine_sql = "select cab_num from cb, cp where cab_dat >= # " &
CDate(main_screen.txt_date_debut.Text) & _
" # and cab_dat <= # " & CDate(main_screen.txt_date_fin.Text) & " # and
cab_num = cap_num"




--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
thierry
Ok, ça marchae avec CDATE

merci beaucoup.

Je testerais la fonction format dans la journée.

Coridalement

Thierry

Le Mon, 17 May 2004 11:01:34 -0400, "Zoury"
a écrit :

Salut!

C'est un peu dur sans pouvoir débuguer... as-tu essayé avec CDate() ?

chaine_sql = "select cab_num from cb, cp where cab_dat >= # " &
CDate(main_screen.txt_date_debut.Text) & _
" # and cab_dat <= # " & CDate(main_screen.txt_date_fin.Text) & " # and
cab_num = cap_num"