Actuellement sous Access 2003, j'essaie de créer un "drop down list" dont les valeurs disponibles proviennent d'un code VBA (voir plus bas). Grosso modo, j'essaie d'afficher dans mon drop down list le nom des tables d'une autre base de données Access. Tout fonctionne très bien, sauf qu'il m'est impossible de sélectionner une valeur, et ce, même si la propriété "Verrouillé" de ma liste est à "Non".
J'aimerais pouvoir faire ma sélection (le nom d'une table) et ensuite utiliser la propriété "ItemData" de ma liste pour passer sa valeur comme un argument à une autre fonction.
J'ai lu dans ce forum sous le libelle "Impossible de sélectionner une valeur dans la liste déroulante" qu'il est possible d'avoir ce problème lorsqu'on est sur une zone de liste déroulante qui est liée à un champ d'une table. Apparemment, il faut créer un contrôle indépendant puis utiliser la commande "Docmd.FindRecord". Concrètement, je ne sais pas comment appliquer ce conseil... Quelqu'un pourrait-il m'aider?
Merci!
L'image associée à mon formulaire est en pièce jointe.
Voici mon code:
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
19
20
21
22
23
24
25
26
27
28
29 Private Sub Form_Open(Cancel As Integer) Dim db As DAO.Database Dim rs As DAO.Recordset Dim qdf As DAO.QueryDef Dim sSql As String 'Défini la base de données cible Set db = DBEngine.OpenDatabase(Form_fSelectDB!tBrowse) ' Création de la requête sSql = "SELECT [Name] FROM msysobjects WHERE ([type] =1 and Flags = 0) or [type] = 6;" ' Ouverture du recordset cible Set rs = db.OpenRecordset(sSql, dbOpenForwardOnly, dbReadOnly) ' Création d'une vue temporaire (requête) Set qdf = CurrentDb().CreateQueryDef("tmpQuery", sSql) qdf.Close rs.Close ' Initialisation de la DropDownList Me!ddlTable.ColumnHeads = False Me!ddlTable.ColumnCount = 1 Me!ddlTable.ColumnWidths = "4320;4320" Me!ddlTable.RowSourceType = "Table/Query" Me!ddlTable.RowSource = "tmpQuery" End Sub
Partager