Remplir un listbox sous Access (EN VBA !!!!)

Messages postés
39
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
11 mai 2005
- - Dernière réponse : cs_KILIMANJARO
Messages postés
8
Date d'inscription
dimanche 26 octobre 2003
Statut
Membre
Dernière intervention
15 août 2005
- 15 août 2005 à 08:44
Voila, j'ai une petite question pour vous :
Comment diable fait on pour remplir une listbox, en ajoutant les données lignes par lignes, dans un formulaire access en codant en VBA

Le petits malins qui me repondent :
1 - "t'a qu'a mettre dans la propriété "contenu" de ta listbox un requete SQL
2 - t'a qu'a ecrire rowsource = "un autre requete SQL"
3 - Et surtout ceux qui me parlent de ADDITEM (on est en VBA ici pas en VB et additem ne MARCHE PAS !!!!!)

ont tous perdu

Voila, j'espere que quelqu'un pourra m'apporter la solution
Sinon, j'utiliserai une table temporaire pour stocker mes données et je remplirai ma listbox a partir de cette table mais si je pouvais eviter ça serais pas plus mal

Merci d'avance
A + Cass
Afficher la suite 

4 réponses

Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
0
Merci
'lut

contenu="toto";"Titi";"tutu"....
tes valeur saisies separé par des ;

:clown) BasicInstinct :clown)
Messages postés
39
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
11 mai 2005
0
Merci
Merci, c'est sympa d'avoir repondu mais c'est un peu a cote :
c'est pas super dynamique

ça rentre un peu dans le cadre de
1 - "t'a qu'a mettre dans la propriété "contenu" de ta listbox un requete SQL

sauf que la c des valeurs

je vais m'expliquer un peu plus alors :
j'ai un combobox qui contient des noms de champ en cliquant sur un bouton "Ajout" je voudrais passer le nom de champ selectionné dans ma listbox
et ainsi de suite pour remplir ma listbox avec certains (pas tous donc) champs qui auront été selectionnés par l'utilisateur dans la combobox

jusque la j'arrive a le faire pour une selection (c klr que c'est pas ce qu'il y a de plus dur) en code ça donne

---------------------------------------
dim VFamille as string

VFamille = cmb_Famille.Value
lst_famille.RowSource = VFamille
---------------------------------------

on aura compris que
cmb_Famille = ma combobox
lst_Famille = Ma listbox

Le probleme avec ce code c'est que je traite qu'un ligne
il faudrais que je puisse rajouter des ligne
En Vb on peu utiliser le "ADDITEM"
SAUF qu'il n'existe pas dans la liste des propriété des listbox sous VBA pour ACCESS

VOila
donc celui qui me dis comment rajouter des ligne dans ma listbox à Gagner
Merci
A + Cass
Messages postés
39
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
11 mai 2005
0
Merci
Bon ba finalement j'ai trouver la solution tout seul comme un grand

La ---> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office03022000.asp

en gros pour avoir plusieur ligne dans la listbox
on utilise bien rowsource:

MaListBox.RowSource = "Titi;Tata;Toto"

Donc en gros je vais devoir faire une chtit concatenation de chaine

le code qui marche donne :

With lst_Famille
'boucle de parcours de la listBox
For I = 0 To .ListCount Step 1
If Trim(lst_Famille.Column(0, I)) <> "" Then
TempString = Trim(lst_Famille.Column(0, I))
VFamille = VFamille & ";" & TempString
End If
Next I
End With

'Ajout de la ligne issue de la combobox
TempString = cmb_Famille.Value
If VFamille <> "" Then
VFamille = VFamille & ";" & TempString
Else
VFamille = TempString
End If
'Affichage dans la listbox
lst_Famille.RowSource = VFamille

VFamille = cmb_Famille.Value
lst_famille.RowSource = VFamille

A + Cass
Messages postés
8
Date d'inscription
dimanche 26 octobre 2003
Statut
Membre
Dernière intervention
15 août 2005
0
Merci
Il y a une solution un peu plus propre qui passe par l'utilisation d'un tableau

Exemple :
'LISTE_SELECTION est une listbox a deux colonnes

Dim qdf As DAO.QueryDef
Dim i As Integer
Dim laliste() As String
Dim Matable As DAO.Recordset
Dim mabd As Database
Set mabd = CurrentDb
Set Matable = mabd.OpenRecordset("STAT_COMME_ECRAN", 2)
i = Matable.RecordCount
ReDim laliste(i, 1)
If i > 0 Then
i = 0
Matable.MoveFirst
While Matable.EOF = False
laliste(i, 0) = Matable.Fields(0)
laliste(i, 1) = Matable.Fields(1)
i = i + 1
Matable.MoveNext
Wend
Matable.Close
Set mabd = Nothing
Me.LISTE_SELECTION.List() = laliste
End If