Explications :
Voila, je me suis trouvée face à ce problème, et cest vrai quil est récurant. Alors je me suis dit que ça doit être parfois les cas des débutants comme moi.
En effet jai toujours été obligée avant de mettre dans mes combos, rien que les clés primaires, ou les noms, puis des requêtes interminables pour retrouver les clés primaires.
Ici nous allons afficher autant de champs que lon veut, puis après un choix dans la combo, récupérer ces champs un par un pour éviter les requêtes. On utilisera la méthode SPLIT.
On selectionnera les champs de la table salarie, puis quand on choisira un des salariés, son numéro seulement saffichera dans la zone de texte (levenement est on click)
Composants et propriétés :
Combobox (name = combo_periode - style = 2)
Textbox (name = verif_num)
Source / Exemple :
SUR CHARGEMENT DU FORMULAIRE
déclarations
de la base
dim db as dao.database
de la requête
dim rq_employes as dao.recordset
de la variable qui va prendre le texte de la combo
dim var as string
de la variable qui receuillera les différentes parties du texte de la combo
dim tableau() as string
initialisations
de la base et la requête
set db = opendatabase (« chemin de la base »)
Set rq__employes = db.OpenRecordset("select matricule, nom, prenom from salarie where num_entite in (SELECT entite.num_entité From entite Where (((entite.nom_entité) = '" & nom_entreprise & "')))")
si il y a des enregistrements alors
If rq_employes.RecordCount > 0 Then
aller sur le premier enregistrement
rq_employes.MoveFirst
Tant quil y a des enregistrements
Do While rq_employes.EOF = False
ajouter le matricule, des espaces, le nom, des espaces, le prenom
choix.AddItem rq_employes!matricule & " " & rq_employes!nom & " " & rq_employes!prenom
aller à lenregistrement suivant
rq_employes.MoveNext
refaire
Loop
sinon
Else
afficher dans la zone de texte quil ny a pas denregistrements
choix.Text = "pas d'employé pour cette entité"
fin si
End If
SUR CLIC SUR LA COMBO
initialisation de la variable var
var_combo = choix.Text
la variable tableau va prendre autant de valeur quil y a dans var entre chaque " ". la syntaxe est : var_dynamique = split(var_chaine, séparateur)
tableau = Split(var_combo, " ")
la première valeur du tableau est la première valeur du texte de la combo jusqu'à lespace. Ici cest le matricule, on le met dans la zone de texte.
Verif_num.text = tableau (0)
Conclusion :
Ne pas oublier la reference dao 3.6 et que vous pouvez choisir le séparateur de votre choix
Biz
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.