begin process at 2010 02 10 09:56:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > SPLIT ET DAO : REMPLIR UNE COMBO AVEC PLUSIEURS CHAMPS ET LES RÉCUPÉRER 1 À 1 ENSUITE

SPLIT ET DAO : REMPLIR UNE COMBO AVEC PLUSIEURS CHAMPS ET LES RÉCUPÉRER 1 À 1 ENSUITE


 Information sur la source

 Description

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

  • 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)
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


 Sources du même auteur

Source avec Zip APPRENDRE À MANIPULER EXCEL (GRAPHIQUE ET TABLEAU) LES FICHI...
UNE BOITE DE CONNEXION AVEC UNE BASE DE DONNÉES (DAO)
REMPLIR UNE COMBO BOX AVEC UNE TABLE (DAO)
Source avec une capture IMITATION D'UNE BARRE DE TELECHERGEMENT (PRISE EN MAIN DES T...

 Sources de la même categorie

AFFICHAGE SOUS EXCEL DE LA LISTE DES ' DES GROUPES par djebbipgm
AFFECTATION D'UNE ICÔNE À UN DOSSIER DANS L'EXPLORATEUR par djebbipgm
Source avec Zip CREATION DE GADGET EN VB6 par djebbipgm
Source avec Zip Source avec une capture CAPTEUR DE HANDLE, DE TITRE, DE CLASS, DE POSITION DE TAILLE... par Sechaud
Source avec Zip Source avec une capture COULEUR DANS UN RICHTEXTBOX SANS MODIFIER SELSTART OU SELLEN... par Renfield

Commentaires et avis

Commentaire de PROGRAMMIX le 17/04/2004 15:13:50

Je ne serais pas contre un petit ZIP avec un exemple bien concret.

Merci de me prévenir lorsque ce sera fait.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales