Recuperation de la valeur d'une combobox

nougitch

XLDnaute Occasionnel
Bonjour,

Je charge les données d'une table de ma BDD dans une liste déroulante (il s'agit de texte).
Ceci dit, dans ma table, chaque donnée a un identifiant unique.
Est-il possible d'afficher le texte mais de récupérer l'identifiant en VBA ?

Merci par avance pour votre aide.
Cdt,
 

nougitch

XLDnaute Occasionnel
Re : Recuperation de la valeur d'une combobox

Salut Skoobi et merci pour ton aide.

En fait, je ne veux qu'une colonne dans ma liste.
En revanche, sous VBA, quand je récupère la valeur contenu dans NomFormulaire.NomListeDeroulante.Value je souhaite récupérer le numéro d'identification du pays dans la table.

Prenons l'exemple d'une table contenant les pays, du genre :
ID | PAYS
1 | France
2 | Espagne
3 | Royaume-Uni
4 | Allemagne
5 | Italie

Au pliaisir de t'éclairer davantages.
 

nougitch

XLDnaute Occasionnel
Re : Recuperation de la valeur d'une combobox

Ok, merci Skoobi.

Maintenant autre question : ma requête SQL extrait l'identifiant puis le nom.
Comment affecter l'identifiant à la premiere colonne et le nom à la seconde ?

Et ensuite, comment ne récupérer que la valeur de la colonne 1.

Merci encore !
 

nougitch

XLDnaute Occasionnel
Re : Recuperation de la valeur d'une combobox

Mon code ressemble a ca :

Code:
    Set oConnection = New ADODB.Connection
    oConnection.Open DatabasePath

    Set oADO = New Recordset
    With oADO
        .CursorLocation = adUseClient
        .ActiveConnection = oConnection
        .CursorType = adOpenStatic
        .LockType = adLockOptimistic
            sQuery = ""
            sQuery = sQuery & "SELECT               "
            sQuery = sQuery & "         C.fId,      "
            sQuery = sQuery & "         C.fName     "
            sQuery = sQuery & "FROM                 "
            sQuery = sQuery & "         tCountry C  "
            sQuery = sQuery & "ORDER BY             "
            sQuery = sQuery & "         C.fName ASC "
        .Source = sQuery
        .Open
    End With

    Do While Not oADO.EOF
        fSSF.cbxCountry.AddItem oADO(1)
        oADO.MoveNext
    Loop

    fSSF.cbxCountry.ListIndex = 0

    Set oADO = Nothing
    oConnection.Close

Merci pour votre aide.
 

nougitch

XLDnaute Occasionnel
Re : Recuperation de la valeur d'une combobox

Bjr Skoobi,

J'ai regarde les différentes propriete de la liste deroulante. J'ai jouer un peu avec le ColumnCount que j'ai mis à 2, puis le ColumnWidths que j'ai mis à 0;100...

Ce que je n'arrive pas à faire c'est mettre l'identifiant du pays dans la premiere colonne (Width = 0 donc cachée) et le nom du pays dans le seconde colonne (qui elle apparait pour l'utilisateur).

Et ensuite, comment recuperer la colonne une en fonction du choix d el'utilisateur.

Merci beaucoup pour ton aide !
 

nougitch

XLDnaute Occasionnel
Re : Recuperation de la valeur d'une combobox

Voila le fichier.

L'idée est assez parlante dans l'exemple.
Il s'agit de ne gérer que des Id car comme tu le verras, il s'agit ensuite d'activer une seconde liste deroulante avec les données filtrées (clause WHERE = résultat de la première liste déroulante). Et pareil pour la troisième liste.

Je te remercie vraiment pour ton aide.
 

Pièces jointes

  • ListesDeroulantes.xls
    36 KB · Affichages: 64
  • ListesDeroulantes.xls
    36 KB · Affichages: 64
  • ListesDeroulantes.xls
    36 KB · Affichages: 60

skoobi

XLDnaute Barbatruc
Re : Recuperation de la valeur d'une combobox

Bonsoir,

il doit manquer quelque chose car la boucle Do ... Loop ne s'arrête pas.

Je tiens à signaler que le domaine "ADO" je ne connais pas mais pour ce que tu veux faire, ça doit pas être gênant.
Que fait ce code?
 

Discussions similaires

Réponses
4
Affichages
248