Recuper les données dans access pour alimenter une liste déroulante dans un user

gerardcjf Messages postés 47 Date d'inscription mardi 3 juillet 2007 Statut Membre Dernière intervention 26 décembre 2013 - 28 janv. 2011 à 16:53
marion8316 Messages postés 75 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 27 septembre 2011 - 29 janv. 2011 à 16:42
Bonjour,

Lorsque je suis en présence de données contenues dans access, je sais, avec VBA, comment allez les récupérer pour les présenter dans Excel (tel enregistrement dans telle celulle ligne 1, tel enregistrement + 1 dans la cellule du dessous etc ...).

Dans mon cas, je ne veux pas renvoyer les données dans excel, mais je souhaite qu'elles alimentent une liste déroulante d'un userform.
Par exemple, dans access j'ai une table identité (avec les champs Nom Prénom Adresse) et je voudrais qu'au lancement de mon userform, la liste déroulante soit alimentée par les seuls noms et prénoms afin que l'utilisateur puisse choisir la donnée qui l'intéresse.

Avez vous une idée (je suis sur que oui !)

Davance Merci !
A+

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 janv. 2011 à 12:34
Salut

Ce que tu peux faire, c'est 'importer' tes données dans une feuille (masquée éventuellement), puis te servir des données présentes sur cette feuille pour alimenter ta liste déroulante qui prendra la source de données localement.

Une fois les données importées, tu pourras utiliser le filtrage automatique (dans une macro) pour faire tes sélections.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
marion8316 Messages postés 75 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 27 septembre 2011 1
29 janv. 2011 à 16:42
Bonjour,

Ci-dessous un exemple de code (alimentation d'un Combobox) :

Lecture de la BDD (Access), la connexion a été initialisée dans la variable 'sconnection' lors du lancement de l'application.

Dans cet exemple je liste des Civilités d'une table de la base pour alimenter un Combobox.
Je récupère l'index des enregistrements dans un tableau 'Icivilité', les données sont envoyées dans un tableau 'Ilibelle" que je transfère en sortie de boucle 'Me.ComboBox1.List = Ilibelle'

J'espère que cela va vous aider. (Pas de problême pour d'autre renseignements)

Didier


(A déclarer dans 'générale déclaration' de la feuille)
'
Private Icivilite() As Integer
Private Ilibelle() as string
Private K22 As Integer, K23 As Integer


'Code lors de l'activate de la feuille
'
Private Sub UserForm_Activate()

'
'

'Civilité - Vidage de la combobox -
Me.ComboBox1.Clear

Set adorecordset = New ADODB.Recordset
Mysql = "SELECT * from Civilites"

adorecordset.Open Mysql, sconnection, adOpenKeyset, adLockReadOnly, adCmdText

K22 = adorecordset.RecordCount
K23 = 0

'
If K22 > 0 Then

ReDim Ilibelle(K22 - 1, 0 To 1)
ReDim Icivilite(K22 - 1)

Do While Not adorecordset.EOF


Ilibelle(K23, 0) = adorecordset.Fields("CIVILITE_COURS")
Ilibelle(K23, 1) = adorecordset.Fields("CIVILITE_LONG")

Icivilite(K23) = adorecordset.Fields("INDICE_CIVILITE")
K23 = K23 + 1

adorecordset.MoveNext

Loop

Me.ComboBox1.List = Ilibelle

End If
0
Rejoignez-nous