[Access 2007] Message d'erreur sur formulaire

[Résolu/Fermé]
Signaler
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
-
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
-
Bonjour à tous.

J'ai un petit soucis avec ma base de données Access, j'espère que vous pourrez m'éclairer sur un point.

Je m'explique: j'ai un formulaire "personnel et formation" contenant les coordonnées du personnel ainsi qu'un sous-formulaire "formation". Ce sous-formulaire permet grâce à une liste déroulante de sélectionner la "formation" et sa "durée de validité" (donc une liste avec 3 colonnes si on inclue la clé ;) )ainsi que la "date de passage" de cette formation, son "tarif"..etc.
J'ai ensuite intégré des calculs pour que grâce à la "date de passage", la "date du jour", et la "durée de validité" (présente dans la liste) je puisse calculer la "date de fin de formation" et le "nombre de mois restant" (Le calcul étant contenu dans la propriété "source de contrôle". Jusque là, (j'espère que vous avez tous suivit :D) tout marche nickel.

Mon problème est donc le suivant: lorsque dans la liste déroulante, il n'y a rien de sélectionner (par exemple la dernière ligne du sous-formulaire qui permet de saisir un nouvel enregistrement, est toujours vide), un message d'erreur "#Erreur" apparait au niveau du champs "date de fin de formation" et "nombre de mois restant", exactement où sont présents les calculs. Je pense que le problème vient du fait que ces 2 champs attendent des valeurs pour établir les calculs et puisqu'il n'y a rien de saisie dans la liste déroulante, cette erreur s'affiche.

J'ai essayé de remédier à ce problème grâce à la propriété "Message si erreur" ou encore en essayant d'intégrer des "SI" dans la source de contrôle, en vain...

J'espère que quelqu'un pourra m'aider. Merci à vous, je suis tout ouïe.

5 réponses

Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Où as tu mis tes "si"?

J'essayerais bien un
- date de fin de formation : =VraiFaux(EstNull([Durée formation]);"";AjDate("m";[Durée formation];[Date_Passage]))

Chez moi ça marche, en tout cas...
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Ca serait cool que tu nous donnes la formule exacte contenue dans les champs qui te donnent #Erreur, histoire qu'on puisse voir ce qu'il pourrait y avoir à améliorer...
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
51
Alors voilà ou il y a les 2 erreurs:

- date de fin de formation : =AjDate("m";[Durée formation];[Date_Passage])
- nombre de mois restant : =DiffDate("m";Date();[Date Fin de formation])

Je rappelle qui sont tout à fait fonctionnel sauf quand il n'y a rien de sélectionner (dans la liste déroulante ou sont présents les champs "N_formation" "Nom_formation" et "Date Fin de formation").

Voilà, je sais pas si ça pourra beaucoup vous aider.
Bonne soirée.
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
51
Lorsque j'ai dis que j'ai mis des "Si", j'ai juste dit que j'avais essayé d'en mettre pour effectuer des tests, en vain.

Concernant ce que propose plus haut:

- date de fin de formation : =VraiFaux(EstNull([Durée formation]);"";AjDate("m";[Durée formation];[Date_Passage]))

Puis aussi par logique :
- nombre de mois restant : =VraiFaux(EstNull([Durée formation]);"";DiffDate("m";Date();[Date Fin de formation]))

Et bien ça marche nickel ^^
Merci encore à toi LatelyGeek, ce n'est en plus pas la 1ère fois que je bénéficie de ton aide.

Bonne journée, continuez comme ça ;)
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Je t'en prie, c'est quand tu veux!