Renvoie #Erreur qd cellule vide - Access

Bonjour,

Voilà mon code dans l'objet module d'Access (version2000).

Function date_MAJcasto(date_cde As Date, enseigne As String) As String    
If enseigne = "CASTORAMA" Then
date_MAJcasto = date_cde - 1
Else
date_MAJcasto = date_cde
End If
End Function


Celui-ci fonctionne sauf quand date_cde est vide. Il me renvoie alors "#Erreur"
Comment faire pour qu'il n'applique la fonction que lorsque date_cde n'est pas vide.

Par avance merci
Configuration: Windows XP
Internet Explorer 6.0

11 réponses

  1. il faut just tester si la date est vide ou pas autrement dit Null ou non

    Function date_MAJcasto(date_cde As Date, enseigne As String) As String

    if ( date_cde <>null) then 'Test si la date est vide si oui on fait rien si ne pas vide on exécute l'instruction suivante
    If enseigne = "CASTORAMA" Then
    date_MAJcasto = date_cde - 1
    Else
    date_MAJcasto = date_cde
    End If
    End if
    End Function
    0
    1. Merci pour ta réponse.

      Seulement quand je teste, il fait l'inverse de ce que je demande. C'est-à-dire qu'il me met #Erreur lorsque la cellule est vide et rien lorsque j'ai une date.
      0
      1. inverse seulement la condition de If au lieu de <> mets un =
        0
        1. Et oui, c'est bien ce que je me suis dit. Mais bizarrement, il me renvoie exactement le même résultat.
          As-tu une autre solution à me proposer??

          Par avance merci
          0
          1. c étrange , peux tu m'expliquer exactement, tu veux faire quoi? peut-être le problème ne vient pas de ce bout de code: peu tu metre le message d'erreur qui s'affiche..... meme si je comprend pas pour quoi je vai donner une autre solution
            Function date_MAJcasto(date_cde As Date, enseigne As String) As String
            if ( date_cde =null) then

            msgbox ("la date incorrecte : entre une date valide svp")
            exit sub ' quitter la fonction sans rien faire
            else
            If enseigne = "CASTORAMA" Then
            date_MAJcasto = date_cde - 1
            Else
            date_MAJcasto = date_cde
            End If
            End if
            End Function
            0
            1. Je vais essayer d'être clair.

              J'ai une table dans laquelle j'ai un champ enseigne, un autre ville et en face, un champ date.
              Je veux que lorsqu'il trouve dans le champ enseigne "CASTORAMA", il retire un jour à la date qui correspond.
              J'ai donc fait une requête ou je prends tout mes champs et dans un champ supplémentaire, j'intègre ma fonction.
              Et dans l'absolue, ça marche. Sauf que lorsque je n'ai pas d'enseigne de renseigné et/ou pas de date, il remonte le résultat #Erreur.

              En fait, j'ai l'impression qu'il n'accepte pas les cellules vides.
              0
              1. je comprend pas trop bien , envoi ma ta base par email et je vais voir
                0
                1. je te remercie.

                  La question suivante est bête mais tu peux me communiquer ton adresse mail ou me dire comment te l'envoyer??

                  par avance merci
                  0
                  1. envoi en pièce joint sur nakkar2005@yahoo.fr
                    0
                    1. C'est parti.
                      Je te remercie.
                      0
                      1. Est-ce que tu as pu regarder??
                        0