Alimenter Listbox

Résolu
Signaler
Messages postés
14
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
15 avril 2008
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
Voila j'ai écrit ce bout de code sur mon formulaire comportant une Listbox :
Dim Rs As Recordset
Dim i  As Integer
Set Rs = CurrentDb.OpenRecordset("Table1", dbOpenDynaset)
For i = 0 To Rs.Fields.Count - 1
MsgBox Rs.Fields(i).Name
Modifiable16.AddItem (i)
Next

Dans le but d'alimenter celle-ci par le nom des champs de ma table Table1. Le problème est que cela ne fonctionne pas. Pourriez-vous me dier pourquoi?
Je tiens a préciser que je suis novice sur Access et VBA donc n'allez pas trop loin dans vos explications svp.
Merci beaucoup

3 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
pas la peine de rappatrier toutes les données de ta table...

Dim oField As Field
For Each oField In CurrentDb.TableDefs("Table1").Fields
Modifiable16.AddItem oField.Name
Next oField
Messages postés
14
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
15 avril 2008

J'ai changé ma structure en mettant 2 zones de liste :

Private Sub Liste0_Click()
temp = Liste0
'Liste2.ControlSource = "SELECT DISTINCT Chp1 FROM table1"
Liste2.RowSourceType = "Table/Requête"
Liste2.RowSource = "select DISTINCT " & temp & " from table1"
Liste2.Requery
End Sub
ce qui est censé m'afficher ds la 1ere liste le nom des différents champs de ma table et dans l'autre les valeurs inscrites dans le champ sélectionné.
Le 1er affiche bien les champs mais le 2e n'affiche rien.
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
pense a ajouter des séparateurs:


Private Sub Liste0_Click()
temp = Liste0
'Liste2.ControlSource = "SELECT DISTINCT Chp1 FROM table1"
Liste2.RowSourceType = "Table/Requête"
Liste2.RowSource = "select DISTINCT `" & temp & "` from table1"
'# ou, au choix:
'# Liste2.RowSource = "select DISTINCT [" & temp & "] from table1"
Liste2.Requery
End Sub