VBA Access / Sous-formulaire et liste déroulante choix multiples

Fermé
Le12 Messages postés 2 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 9 mars 2016 - 9 mars 2016 à 10:23
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 - 9 mars 2016 à 14:17
Bonjour, après avoir cherché sur des dizaines et des dizaines de forum je n'ai pas réussi à trouver de réponse à mon problème. J'espère donc que ce post pourra m'être utile.

Voilà le problème : je dispose d'un table "Equipement" qui contient plusieurs champ comme le N° de l'équipement, son rang, son N° de critère, son(ses) système(s) concerné(s), etc.
Je dispose d'une seconde table "Local" qui contient entre autre un champ "Equipement(s) choisi(s)" qui permet de choisir un ou plusieurs équipements de la précédente table qui sont présent dans un local.

J'aimerais, à partir d'un formulaire, contenant une liste déroulante à choix multiples pouvoir choisir quel(s) équipement(s) sont présent dans chaque local. Pour ce faire j'ai ma liste déroulante et à côté de ça un sous-formulaire présentant l'ensemble des équipements avec un bouton "ajouter" pour chacun d'eux. Le coeur du problème est que je souhaiterais que, par exemple, en cliquant sur le bouton "ajouter" de l'équipement N°14, la case 14 de la liste déroulante se coche automatiquement (cf. image ci-dessous).

Est-ce possible via VBA ?

Merci d'avance pour votre aide.

1 réponse

eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 152
9 mars 2016 à 12:56
Bonjour,

Quel est le but final de la manip ? Car il y peut être une solution plus simple.

Si j'ai compris, en cliquant sur ajouter, cela va cocher la liste automatiquement. Puis j'imagine qu'il y a une procédure derrière quand tout est coché ?

0
Le12 Messages postés 2 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 9 mars 2016
9 mars 2016 à 14:07
C'est bien ça, en cliquant sur ajouter, la case correspondante dans la liste va se cocher automatiquement.
Le principe est que la liste seule ne donne pas les différentes caractéristiques d'un équipement permettant de les choisir ou non, d'où l'utilisation du sous-formulaire qui donne ces renseignements. Le fait d'utiliser un bouton pour cocher la case est purement ergonomique.
Le but final est de pouvoir créer un formulaire regroupant l'ensemble des locaux, leurs caractéristiques, leurs contenus (=les différents équipements) et les caractéristiques de ces équipements.
Je tiens à préciser que je suppose qu'un équipement peut être contenu dans plusieurs locaux et un local peut contenir plusieurs équipements.
0
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 152 > Le12 Messages postés 2 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 9 mars 2016
Modifié par eljojo_e le 9/03/2016 à 14:18
Ok, ne serait-il pas plus simple qu'à la place de la liste déroulante, tu place un autre sous-formulaire en mode feuille de donnée avec une table tempon ? Quand tu clique sur ajouter, tu as une procédure vba qui va sélectionner la bonne case dans ton autre sous-formulaire.

Sinon, autre solution, c'est de ne pas utiliser de case à cocher dans la liste mais de rajouter les valeurs au fur et à mesure que tu clique sur ajouter :
Me.maListe.RowSource = ""
vide la liste déroulante. tu peux l'incrémenter avec
Me.maListe.additem
mais faire attention aux propriétés de la liste déroulante dans -> source mettre liste valeur et pas requête/table.

J'espère que ca peut t'aider.
0