begin process at 2012 02 13 00:06:59
  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

Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip Source avec une capture JEUX DE VERITÉ ET DE FIDELITÉ par billatosco
Source avec Zip IMAGELOARDER par vkitumaini
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN CALENDRIER DE POCHE par Le Pivert
Source avec Zip RECHERCHE D'UN ENREGISTREMENT DANS UNE DATATABLE ET POSITION... par erdna

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 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,796 sec (4)

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