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. 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
      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. 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 ^^)