Détection d'un champ date non renseigné dans Access

Kerynette Messages postés 4 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 10 mai 2007 - 10 mai 2007 à 10:00
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 11 mai 2007 à 08:46
Bonjour,
Je voudrais, si une date n'est pas renseignée dans Access qu'il m'affiche une phrase au lieu d'une autre...
Seulement je n'arrive pas à détecter l'absence de date. Dans le formulaire, ca m'ecrit: #erreur dans la zone de texte.

J'ai tenté avec IsNull et IsEmpty et ça ne fonctionne tjrs pas.
Voici mon code actuel:

Public Function RepCie(stDate As Date) As String




    If IsEmpty(stDate) Then
        RepCie = "A ce jour, aucun document justificatif n'est parvenu à l'Autorité de Contrôle des Nuisances Sonores Aéroportuaires."
       
    Else
        RepCie = "Par courrier daté du " & CStr(stDate) & " adressé à l'Autorité de Contrôle des Nuisances Sonores Aéroportuaires, la compagnie déclare: " & Chr(13) & Chr(10) & [Reponse Cie]
       
    End If
     
End Function

Si quelqu'un avait la solution, je lui en serais très reconnaissant !

D'avance merci

11 réponses

cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
10 mai 2007 à 10:47
Salut,

a tout hasard, est ce que if (stDate.value = #erreur ) then fonctionnerait ?

En tout cas, ce que tu peut faire c'est mettre un point d'arret sur cette ligne, executer et mettre la souris sur stdate pour voir ca valeur.

Ne te restera plus qu'a mettre le bon test.

A+
0
Kerynette Messages postés 4 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 10 mai 2007
10 mai 2007 à 13:12
La première solution ne fonctionne pas.


Quant à la seconde, quand je tente de mettre un espion sur stDate, ca me dit que la valeur est <Hors du contexte>.

J'avoue que je suis un peu bloquée là, merci de ta réponse en tout cas.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
10 mai 2007 à 13:39
Comme je t'ai dis, tu mets un point d'arret, tu executes et sur le ligne, tu pointes la souris sur stDate.value  et normalement VB te donne la valeur (ou un message d'erreur) sous forme d'infos bulle.

La, tu pourrais voir ce que vaut ta date et ainsi mettre la bonne valeur de test.
0
Kerynette Messages postés 4 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 10 mai 2007
10 mai 2007 à 15:08
J'ai mis un point d'arrêt et lorsque que le champ date est renseigné dans la base, l'info bulle me donne bien la date au survol de stDate.
Par contre, lorsque le champ de date n'est pas renseigné, visiblement la fonction ne s'excecute meme pas, donc aucun moyen de savoir ce qu'il se passe.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
10 mai 2007 à 15:30
OK mais je n'ai pas bien compris ce que tu veux dire par, la fonction ne s'execute pas :

tu parles de Function RepCie ou du fait que l'infos bules ne t'affiche rien.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
10 mai 2007 à 15:32
Tu as aussi des propriété dans ton champ. Si tu va dans ta table access en mode création et que tu cliques sont le champ en question, as tu une option null autorisé ou pas.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
10 mai 2007 à 16:02
Bonjour,
une solution peut être
Passes à ta fonction le contenu de ta Zone de texte

Public Function RepCie(stDate As String) As String
  Dim sDate As Date
   On Erreur Goto Err_Date
  sDate=CDate(stDate)
 RepCie = "Par courrier daté du " & CStr(sDate) & _
           " adressé à l'Autorité de Contrôle des Nuisances Sonores Aéroportuaires," & _
          " la compagnie déclare: "
 Exit Function
Err_Date:
 RepCie = "A ce jour, aucun document justificatif " & _
                "n'est parvenu à l'Autorité de Contrôle des Nuisances Sonores Aéroportuaires."


End Function
0
Kerynette Messages postés 4 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 10 mai 2007
10 mai 2007 à 16:34
@Nicko11:

Je parlais bien de Function  RepCie qui ne s'exécute pas.
Quand au propriétés du champ de date concerné, j'avais bien vérifié, le Null est autorisé.

@chaibat05:


J'avais testé qqch de similaire mais même de cette façon ça ne fonctionne tjrs pas.
J'ai également tenté de faire une fonction sans paramètre et d'appeler directement le champ par l'intermediaire d'une variable interne affectée de la valeur de ce champ mais tjrs un résultat négatif.

Y aurait t il une fonction du genre: If stDate existe Then...?
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
10 mai 2007 à 17:12
le problème avec un champ date dans une textbox,
c' est que le contenu du textbox n' est jamais null même s' il est vide.
c' est à dire que TextBox.Text=Null est erroné
Si tu peux montrer la chose similaire que tu as fait,peut être qu' on pouura
aller dans ce sens
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
11 mai 2007 à 08:45
Je pense que tu devrais voir ton problem différemment
Il faudrait plutot te concentrer au niveau de la table plutot que t'as fonction.
Par un dlookup par exemple sur la ligne où se trouve ta date.
ex:
if dlookup("stDate","Table","ID = N° permettant de retrouver la ligne") <> null then
msgbox "oui"
else
msgbox "non"
end if
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
11 mai 2007 à 08:46
Ha oui, pr info, il existe aussi la fonction IsDate qui permet de vérifier si on a bien une date...
0
Rejoignez-nous