Afficher une donnée dans un contrôle texte en cliquant sur un autre contrôle de liste déroulante
Bonjour,
Profane en ACCESS, je dois construire une base sous ACCESS 2003 pour un système éducatif étranger, où les écoles s’identifient par leur région, leur département, leur commune, leur école et le code administratif de l’école. Celui qui saisit rentre dans d’autres contrôles un ensemble de paramètres numériques mais mon problème n’est pas à ce niveau. Grâce à plusieurs conseils sur le forum j’ai réussi à construire plusieurs contrôles de listes déroulantes imbriquées dans un formulaire (1. région, clic sur la région>liste département affiche les départements correspondants, >etc jusqu’à l’école) ; Ces codes VBA sont tous sur la même structure, et ils vont chercher les noms de régions, départements, communes et écoles dans 4 tables différentes. Ce système marche bien. Je vous montre le dernier code VBA du dernier contrôle de liste COMMUNE qui permet lui d’aller chercher dans une 4° table avec noms des écoles, celles correspondantes à la commune cliquée.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub lstCOMMUNE_AfterUpdate()
Dim lngIDCOM  As Long
Dim SQL        As String
 
  '' Vérifie que l'on a cliqué sur une COMMUNE pour éviter le NULL
  If Not IsNumeric(Me!lstCOMMUNE) Then Exit Sub
  '' Affecte la valeur de IDCOMMUNE à la variable lngIDCOM
  lngIDCOM = Me!lstCOMMUNE
  '' Construit la chaîne SQL avec la catégorie concernée
  SQL = "SELECT IDECOLE, ECOLE, IDCOMMUNE FROM TBLECOLE WHERE IDCOMMUNE =" & lngIDCOM & " ORDER BY ECOLE"
  '' Affecte la chaîne SQL à la liste des ECOLE
  lstECOLE.RowSource = SQL
  '' Déverrouille la liste des ECOLE
  lstECOLE.Enabled = True
  '' Donne le focus la liste des ECOLE
  lstECOLE.SetFocus
 
End Sub
Cette table ECOLES contient 3 colonnes, 3 champs : 1. IDECOLE, 2. NOMS DES ECOLES, 3 IDCOMMUNE. Jusque là ça fonctionne bien. J’ai ajouté à cette table un 4° champ texte qui contient lui les codes administratifs des écoles sur la même ligne donc en mode feuille de données. Ce que je ne réussis pas à faire c’est qu’un 4° contrôle contigu affiche automatiquement le code administratif de l’école quand je clique sur l’école correspondante du contrôle de liste déroulante ECOLE du formulaire(lstECOLE). Plusieurs d’entre vous m’ont suggéré d’écrire dans la source contrôle des propriétés du contrôle texte où je veux que le code administratif s’affiche automatiquement en cliquant sur l’école du contrôle précédent : = Maliste.column(n°colonne-1), mais ça ne marche pas. En fait je ne sais pas s’il faut créer un 4 ° code VBA pour ça ? S’il faut que mon contrôle ne soit pas texte mais zone de liste ? (et si c’est cas quel code écrire dans contenu ? ). Bref je pressens que ça ne doit pas être sorcier mais je patauge et n’arrive à aucune solution ; Je peux fournir des renseignements supplémentaires dont vous auriez besoin éventuellement ; Si l’un de vous veut bien se pencher sur mon problème… Merci d’avance.