Problème comparaison de DATE dans ACCESS VBA

popo68 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
Wamadeus77 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous !

Petit question de noob (attention accroché vous ! )

Je veux comparer un champs date avec un select... case :

ex :
select wdate
--- case wdate = "01/01/2006"

Pourquoi quand je tape le cas "01/01/2006" quand j'ai un enregistement avec cette date, il ne rentre pas dans la condition du case ?
Est-ce un problème de conversion de date anglaise-francaise ??

Merci les gars !

4 réponses

blux Messages postés 27109 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

les dates s'utilisent avec un délimiteur particulier : #
Peux-tu essayer :
case wdate = #01/01/2006#
2
popo68 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
En faite j'ai déjà essayé #, ', ", etc. rien de marche

alors je suis repasser par un IF au lieu d'un SELECT...CASE, et là ca marche :

OK : If wdate = "01/01/2006" then ...

alors est ce que dans le cas d'un select, on ne peut pas tester de date ??

Select wdate
---Case wdate = "01/01/2006" -> marche pas ...

Bon, mon problème est règlé, mais si quelqu'un sait si ca marche avec un select...case ?

Merci,
(merci Blux ^^)
0
blux Messages postés 27109 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Il est déclaré comment ton wdate : date, string ?
0
popo68 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
en faite j'ai mis wdate pour l'exemple, mais je chope directement l'info de mon recordset, donc ca fait ca :

select rs!date
---case rs!date = "01/01/2006"

alors peut etre qu'il faut transformer tout ca, et qu'il y a un problème de format par rapport au date américaine ?
0
blux Messages postés 27109 Date d'inscription   Statut Modérateur Dernière intervention   3 359 > popo68 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Ben déjà, si c'est 01/01/2006 en frenchie, ça sera pareil en US... ;-)

Dans ta table attaquée par ton rs, date est décrit en quoi ?
0
Wamadeus77 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
en tout cas, cela ne vient pas du case : essaye ça:
Sub essai_case_date()
d = #1/1/2002#
Select Case d
Case Is = #1/1/2001#
MsgBox d * 2
Case Is = #1/1/2006#
MsgBox "trouvée"
Case Is > #1/1/2006#
MsgBox "trop tard !"
Case Else
MsgBox "fin du monde !"
End Select
End Sub
0
JMBR
 
Dans VBA (avec Excel), ça fonctionne mais en mettent le numéro interne de la date (plus sûr).
Cells(No_Lignes, 15) est une date (ex. 1-1-2090 à l'affichage mais qui vaut 69399 en interne)
No_Lignes est incrémenté et fait parcourir une colonne d'Excel.

Select Case Cells(No_Lignes, 15)
Case 69399
Nb_Lignes_2090 = Nb_Lignes_2090 + 1
Case 72686
Nb_Lignes_2099 = Nb_Lignes_2099 + 1
Case Else
Nb_Lignes_planif = Nb_Lignes_planif + 1
End Select
0