Split et dao : remplir une combo avec plusieurs champs et les récupérer 1 à 1 ensuite

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 823 fois - Téléchargée 26 fois

Contenu du snippet

Explications :
Voila, je me suis trouvée face à ce problème, et c’est vrai qu’il est récurant. Alors je me suis dit que ça doit être parfois les cas des débutants comme moi.
En effet j’ai 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 l’on 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 s’affichera dans la zone de texte (l’evenement 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 qu’il 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 à l’enregistrement suivant
        rq_employes.MoveNext
    ‘refaire
    Loop
‘sinon
Else
    ‘afficher dans la zone de texte qu’il n’y a pas d’enregistrements
    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 qu’il 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'à l’espace. Ici c’est 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

A voir également

Ajouter un commentaire

Commentaire

cs_PROGRAMMIX
Messages postés
1134
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
-
Je ne serais pas contre un petit ZIP avec un exemple bien concret.

Merci de me prévenir lorsque ce sera fait.

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.