Problème comparaison de DATE dans ACCESS VBA

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. Modérateur
    Salut,

    les dates s'utilisent avec un délimiteur particulier : #
    Peux-tu essayer :
    case wdate = #01/01/2006#
    1. 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 ^^)
      1. Modérateur
        Il est déclaré comment ton wdate : date, string ?
        1. 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 ?
        2. Modérateur
          @popo68Ben 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 ?
        3. 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
      2. 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