Problème comparaison de DATE dans ACCESS VBA

popo68 Messages postés 28 Statut Membre -  
Wamadeus77 Messages postés 4 Statut Membre -
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

  1. blux Messages postés 2058 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    les dates s'utilisent avec un délimiteur particulier : #
    Peux-tu essayer :
    case wdate = #01/01/2006#
    2
  2. popo68 Messages postés 28 Statut Membre
     
    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
  3. blux Messages postés 2058 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Il est déclaré comment ton wdate : date, string ?
    0
    1. popo68 Messages postés 28 Statut Membre
       
      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
      1. blux Messages postés 2058 Date d'inscription   Statut Modérateur Dernière intervention   3 455 > popo68 Messages postés 28 Statut Membre
         
        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
    2. Wamadeus77 Messages postés 4 Statut Membre
       
      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
  4. 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