Rechercher : dans
Par :

Affichage conditionnel sous Access?

Dernière réponse le 17 déc 2008 à 06:04:27 Guenoë, le 10 déc 2007 à 16:00:55 
 Signaler ce message aux modérateurs

Bonjour,

Dans ma base de données Access, je cherche à afficher un champ d'un formulaire sous condition de la valeur d'un autre champ dans ce même formulaire.
Dans les conditions d'exécution des macros, il y a des actions pour afficher un état, une table, etc... mais je ne trouve rien concernant l'affichage conditionnel de champs.

Pouvez-vous m'aider?

Merci d'avance.

Configuration: Windows Vista
Firefox 2.0.0.11

Meilleures réponses pour « Affichage conditionnel sous Access? » dans :
[Shell] Accès aux dernières commandes de l'historique VoirLe shell Linux/Unix regorge de fonctionnalités permettant de gagner du temps. Ainsi, il est possible de remonter dans l'historique des dernières commandes grâce aux flèches de navigation en appuyant sur la flèche du haut. Mais il y a moyen...
[Outlook] Réponse du serveur : Erreur 554 - Relay Access denied VoirVotre client de messagerie vous affiche l'erreur suivante : Erreur 554 - Relay Access Denied Ce problème est lié à l'utilisation d'un serveur de courrier sortant (serveur SMTP) sur un domaine n'appartenant pas au fournisseur d'accès. En effet, afin...
Access - Rétablir les menus par défaut VoirRétablir le démarrage d'une base de données Access Cette astuce vous permettra de retrouver les menus par défaut et la fenêtre de gestion de la base d'Access si ceux-ci ont été modifiés. Vous avez configuré le démarrage de votre base de données...

1

 CalicoJack, le 17 déc 2008 à 06:04:27

Ton champ de formulaire serait invisible et lorsquil répondrait à certains critères il deviendrait visible? Si c'est ta question, j'ai une solution.

Prenons par exemple un formulaire qui servirait à entrer les prix de certains articles. Ce formulaire contiendrait les champs suivant par défault:

NOM DANS LA TABLE
- Article
- Coût
- Prix de vente
- Raison

NOM DANS LE FORMULAIRE
- txtArticle
- txtCout
- txtPrix
- txtRaison

Mais si l'utilisateur entre un prix de vente inférieur au Coût de l'article, un autre champ apparait et c'est le champ RAISON. Qui servirait à mettre une raison pour vendre un article moins cher que son cout d'achat (exemple: Promotion pour détruire la concurrence).

Il faut d'abord que ce champ soit créé dans la table. Ensuite, il faut mettre le controle (le txtBox RAISON) à invisible par défault. Pour ce faire, dans les propriétés de txtRaison, il faut mettre VISIBLE à FAUX.

Il faut ensuite mettre une condition pour son affichage. La condition est : SI le prix < cout AFFICHE RAISON. En VBA ça donne:

IF [me.txtPrix]<[me.txtCout] THEN txtRaison.visible = TRUE

Maintenant que l'on a notre "formule", il faut que Access la traite au moment opportun. Ce moment est suite à la mise à jour du txtBox de prix et seulement si un Cout est aussi présent.

Il faut donc insérer notre formule dans l'événement AFTERUPDATE du txtPrix. Pour ce faire il faut aller dans propriété de txtPrix, onglet EVENT et mettre le code dans AFTERUPDATE.

Ce qui ressemblera à ceci:

SUB txtPrix_AfterUpdate

IF IS NOT NULL(me.txtCout) THEN
IF [me.txtPrix]<[me.txtCout] THEN txtRaison.visible = TRUE
END IF

END SUB


Ce qui arrive c'est: après la mise à jour du champ PRIX, Access vérifie si le champ COUT n'est pas vide. S'il n'est pas vide, il vérifie si le PRIX est inférieur au COUT et si tel est le cas, il rend le champ RAISON visible.

Voilà.

PS: Il faut aussi inclure cette procédure dans ONCURRENT pour que la boite de RAISON s'affiche quand on revient à un ancien enregistrement.

Répondre à CalicoJack