[access] champ visible sur condition

Fermé
Renaissance Messages postés 2 Date d'inscription dimanche 3 septembre 2006 Statut Membre Dernière intervention 4 septembre 2006 - 3 sept. 2006 à 15:46
 wardan - 7 mars 2018 à 18:44
Bonjour, je suis nouveau sur ce forum et je demande le secours des spécialistes en access. Je crée une base de données de gestion de meubles (tables, formulaires) jusque là pas de pb. Dans un formulaire, j'ai deux champs : un champ "Catégorie" et un champ "Hauteur d'assise". Je souhaite faire apparaître le champ "Hauteur d'assise" quand le champ "Catégorie" contient la valeur "Siège". J'ai écrit le code suivant dans la propriété après MAJ du champ "Catégorie" :
If [Catégorie] = "Siège" Then
[Hauteur d'assise].Visible = True
Else
[Hauteur d'assise].Visible = False
End If
Cela ne fonctionne pas car ça s'applique à tous les enregistrements de la table et ça ne reste pas en mémoire sur l'enregistrement concerné.
Comment faire ? Je vous remercie pour votre aide précieuse

26 réponses

Bonjour,

Mon problème m'a fait venir sur cette discussion. Je vois que certains d'entre vous maîtrise access (quelle chance) et j'ai besoin de votre précieuse aide.

J'ai une base de données "contrat" comprenant plusieurs tables (infos, coordonnées, facturation, planning, date etc.). J'ai créé des formulaires et sous formulaires de saisie regroupant les données afin de rendre la saisie plus simple pour mes utilisateurs.
Par ailleurs, certains contrats ont été résiliés et je ne souhaite pas supprimer la fiche mais uniquement la masquer en utilisant une case à cocher par ex. actif ou inactif. Tout en pouvant les retrouver en cliquant sur un bouton "afficher les contrats inactifs".

Je sais qu'il est possible de masquer les fiches "inactive" par le biais d'une requête. Mais mes enregistrements sont établis directement par plusieurs tables.

Je n'ai encore établi aucune macro sur ma base. Je ne maitrise pas les macro sur Access (mais je me débrouille sur Excel)

Est-ce possible ?

Merci.
LH

PS : connaissez vous un site expliquant les formules du langage SQL ? Merci.
0
Utilisateur anonyme
9 juin 2008 à 16:47
Bonjour,

tu as le choix : soit par sql, soit par code.

Par code, je te laisse regarder les différentes interventions de ce message, tu comprendras sans doute.

Pour le sql, il faut changer la source de ton formulaire qui affiche les "fiches" ; en premier lieu il faut créer un champ "visible" dans la table d'informations des contrat, de type "oui/non". Mettre un contrôle du même type dans le formulaire.
Ensuite, il faut, dans la source de ton formulaire (en mode création, propriétés), ajouter ce champ, et comme condition mettre "faux".
Comme ceci, ton formulaire affiche les enregistrements qui ont cette case décochée.

J'espère que tu as compris, sinon, n'hésites pas.

A+
0
Laura Holt > Utilisateur anonyme
13 août 2008 à 12:13
Bonjour HDU,

(ACCESS 2007)

Merci pour ta réponse. Je crois avoir compris la méthode mais je n'arrive pas à trouver la ligne "condition" dans propriété pour y mettre "faux".

Voilà ce que j'ai fait :

Je suis partie de ma base de donnée déjà bien remplie
J'ai donc créé (à l'époque) dans ma table un champ "Effectué" de type "oui/non",
Je suis allée dans mon formulaire, j'ai effacé ce champ "effectué" puis je l'ai réinséré (au cas où) par le biais de "ajouter des champs existants"
Ensuite je clique droit sur la case à cocher dans le formulaire et j'atteinds les propriétés. J'ai plusieurs onglets : Format, données, evenement, autres & toutes. Où dois je mettre "Faux" ?

Merci pour ta réponse.
LH
0
Utilisateur anonyme > Laura Holt
13 août 2008 à 13:53
Bonjour,

Il faut que tu mettes la condition dans la source du formulaire, pas dans les propriétés de la case à cocher...

Ouvres ton formulaire en mode création (modification donc), et fais Affichage, propriétés.
- Soit ton formulaire est basé sur une requête et tu as accès à cette requête à la ligne 'source' des propriétés (onglet données, ou à défaut, toutes) et tu modifie la requête source de ce formulaire en ajoutant le champ en en mettant la condition "faux" sur la ligne 'critères'.
- Soit ton formulaire est basé sur une table, et tu ne veux pas créer de requête, alors, il suffit d'ajouter, sur la ligne 'filtre' "effectué is false" (sans les guillemets).

Ca roule ?

A+
0
lauraholt Messages postés 6 Date d'inscription mercredi 13 août 2008 Statut Membre Dernière intervention 2 avril 2013 > Utilisateur anonyme
13 août 2008 à 16:24
Merci pour ta réponse.

Finalement j'ai trouvé la ligne "filtre" dans les propriétés du formulaire puis onglet "données" où j'ai écrit Effectué=False.

Cela fonctionne, par contre si je souhaite saisir une fiche (avec le filtre en cours), je ne peux plus rien faire, tous les cellules sont bloquées. Pourquoi et que faire ?

Merci
0
Utilisateur anonyme > lauraholt Messages postés 6 Date d'inscription mercredi 13 août 2008 Statut Membre Dernière intervention 2 avril 2013
13 août 2008 à 16:36
Re,

Un filtre ne devrait pas te verrouiller la saisie. Tu peux donner la source de ton formulaire ? Tu peux essayer d'enlever uniquement le filtre et me dire si ça fonctionne ?

A+
0
François35 Messages postés 10 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 13 août 2008
7 juil. 2008 à 15:42
Je reviens à nouveau sur ce post...

j'ai un autre soucis, mais de même niveau...

toujours dans la même base.

Dans mon formulaire devis, lorsque je rentre un produit, je veux qu'en fonction du produit rentré il apparaisse soit sur l'état ''devis" soit sur l'état ''bon de livraison'' soit les deux...

j'ai donc créé 2 cases à cocher sur mes articles. une pour ''apparaitre sur devis'' une pour ""apparaitre sur BL''

J'ai fait clic droit sur la case puis ''créer code événement'' et j'ai rentré :

if [Ab2]=true then
me! États![P_Devis#Devis#]![AbsMontant].Visible = true
else
me![Ab2].visible=false

légende : [Ab2] c'est ma case à cocher
[AbsMontant] c'est ce qui doit s'afficher ou non et qui se trouve sur l'état P-Devis#Devis#



Je ferme et lorsque je clique sur la case à cocher de l'article il me met :

Microsoft Office Access ne peut pas trouver la macro if [Ab2]=true then
me! États![P_Devis#Devis#]![AbsMontant].
La macro (ou son groupe de macros) n'existe pas ou la macro est nouvelle mais n'a pas été enregistrée.
Remarquez que lorsque vous entrez la syntaxe nomgroupemacro.nommacro dans un argument, vous devez spécifier le nom sous lequel le groupe de macros de la macro a été enregistré pour la dernière fois.


puis il me coche quand même la case mais sans changer l'état devis...

Bref, je suis un peu largué.... merci à ceux qui voudrons bien éclaircir mon problème.
0
Salut à tous,

Juste pour vous remercier vos nombreux conseils sur ce post m'ont aidés à solutionner mon problème sans poser de question. A savoir, afficher des champs lorsqu'une case est cochée.

très simple finalement :

1 - clic droit sur la case à cocher - créer code évènement
2 - encoder ceci (avec vos noms champs bien entendu)

If nom_de_la_case_à_cocher = True Then 'si la case est cochée
Me!champs_à_supprimer.Visible = True 'on affiche la zone texte1
Else
Me!Emplacement.Visible = False
End If

3 - sélectionnez Form dans la liste de choix au dessu à gauche et "current" dans la liste de choix de droite de VBA et recopiez exactement le même code

If nom_de_la_case_à_cocher = True Then 'si la case est cochée
Me!champs_à_supprimer.Visible = True 'on affiche la zone texte1
Else
Me!Emplacement.Visible = False
End If

à+

Fab
0
Bonjour,


J'ai écrit en VBA ce code:

Code :

If nom_de_la_case_à_cocher = True Then 'si la case est cochée
Me!photo1.Visible = True 'on affiche la photo1
Else
Me!photo1.Visible = False
End If

Pour que la photo1 s'affiche dans mon formulaire1 lorsqu'on coche la case à cocher correspondante.

Mais maintenant j'ai imbriqué mon formulaire1 dans un autre formulaire2.
Et j'aimerais que la photo s'affiche dans le formulaire2 à la place du formulaire1.

Quelle modification dois-je effectuer dans mon code pour que la photo se place dans le formulaire2, s'il vous plait.

Je suis sur que c'est simple mais je ne trouve pas.
0
Bonjour à tous,

J'ai également un souci avec un formulaire continu dans lequel j'ai une image que je souhaite afficher (ou pas) selon la valeur du champ S1. (si S1<0, afficher l'image)

J'ai entré le code suivant (access 2002)

Private Sub Form_Current()
If [S1] < 0 Then
[alerte].Visible = True
Else
[alerte].Visible = False
End If
End Sub

Le problème est que l'affichage est identique pour l'ensemble des enregistrements...Si je sélectionne une valeur négative d'un des enregistrements, l'image s'affiche bien mais pour l'intégralité des enregistrements (même ceux dont le champ S1 est >0). J'ai appliqué vos différents conseils, mais ca ne fonctionne pas !

Merci d'avance à ceux qui prendront le temps de m'aider, et bravo à tous pour la qualité de vos réponses

Cdt
0
Utilisateur anonyme
25 nov. 2009 à 18:37
Salut Fabrice,

normal, cela ne fonctionne pas pour les formulaires en mode continu.

Si tu as du courage : https://cafeine.developpez.com/access/tutoriel/pseudocontinu/
0

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

Posez votre question
Bonjour à tous,

J'ai un problème similaire aux vôtres mais les solutions proposées ne marchent pas...

J'édite des factures pas Access 2010. L'état va chercher les infos nécessaires dans les formulaires remplis préalablement.

J'ai 3 cases qui ne doivent s'afficher seulement si elles sont différentes de 0 et je n'y arrive pas.

Je fais clique droit, créer un évènement, générateur de code. Je tape çà :
Private Sub Quantité_achat_pour_vente_Enter()
If Quantité_achat_pour_vente <> 0 Then
Quantité_achat_pour_vente.Visible = True
Else
Quantité_achat_pour_vente.Visible = False
End If
End Sub

Et donc quand j'ouvre mon état il me met un message d'erreur car dans les propriétés de mon champ j'ai visible = OUI. Mon seul autre choix est NON et je suis obligée de laisser la case remplie.

Une idée ?

Merci merci !
0
Bonjour,

Je fais un programme dans access 2003 pour la gestion d'un parc automobile.

J'aimerai savoir comment faire pour intégrer le plan d'amortissement des véhicules qui s'intitule comme suit:

date d'acquisition : DA

date de Valeur : DV

Coût d'Acquisition : CA

DV1 = DA + 365 jours

CA1 = 75%*CA

DV2 = DV1 + 365 jours

CA2 = 50% *CA

DV3 = DV2 + 365 jours

CA3 = 25% * CA

DV4 = DV3 + 365 jours

CA4 = 0% * CA

Votre aide me serait très précieuse.
0