Remplir 3 combobox differents par une meme table access en visual studio 2012
MoMeBe
-
10 févr. 2013 à 23:17
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
11 févr. 2013 à 14:16
Bonjour Tous le monde
J'ai un table Access 2007 sous cette forme:
ID Désignation
01 Direction 1
0101 Sous Direction 1
010101 Service 1
010102 Service 2
010103 Service 3
0102 Sous Direction 2
010201 Service 1
010202 Service 2
010203 Service 3
02 Direction 2
0201 Sous Direction 1
020101 Service 1
020102 Service 2
020103 Service 3
0202 Sous Direction 2
020201 Service 1
020202 Service 2
020203 Service 3
03 Direction 3
0301 Sous Direction 1
030101 Service 1
030102 Service 2
030103 Service 3
0302 Sous Direction 2
030201 Service 1
030202 Service 2
030203 Service 3
Dans un Société se trouve plusieurs direction et chaque direction possède plusieurs Sous Directions ainsi chaque Sous Direction dirige plusieurs Services.
Ma Question est comment remplir un premier ComboBox qui contient la liste des Directions et après avoir sélectionner une Direction voulu, le second ComboBox doit contenir la liste des Sous Directions qui sont relatives à la direction sélectionner dans ComboBox1, puis un troisième ComboBox contenant la liste des Services qui sont relatives à la Sous Direction sélectionner dans ComboBox2.
Merci pour tous qui a lit ma question et 100000 merci pour tous qui essai de m'aider.
(en visual studio 2012)
Email: JetLibre@Live.Fr
A voir également:
Remplir 3 combobox differents par une meme table access en visual studio 2012
tu peut faire:
selon la définition de ta ligne de commande
dim con as oledbconnecion= new oledbconnecion("provider=microsoft.jet.oledb.4.0; data source='le chemin de ta base'"
dim cmd as new oledbcommand("select Sous_Direction from DIRECTION",con)
dim dr as oledbdatareadeer
con.open
dr=cmd.executereader
while dr.read
combobox1.items.add(dr(0))
end while
dr.close
con.close
dim cmd as new oledbcommand("select code1 from Dire where code1=combobox1.tex",con)
dim dr as oledbdatareadeer
con.open
dr=cmd.executereader
while dr.read
combobox1.items.add(dr(0))
end while
dr.close
con.clos
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 11 févr. 2013 à 14:16
Salut
Toutes les données dans une même table : mauvais choix.
De quel type est ton champ ID dans ta table ?
Si tu l'as déclaré numérique, ça va être encore plus difficile ...
On va supposer que ce champ est un texte.
Ta difficulté maintenant est de faire la différence entre une Direction (code à 2 chiffres), une sous-direction (code à 4 chiffres) et les services (codes à 6 chiffres)
Seconde difficulté : Dans ta Combo, stocker le Id correspond au texte affiché afin de retrouver l'ID une fois que tu auras fait le choix. Je pense que tu dois pouvoir utiliser des colonnes dans les Combo, et éventuellement, la rendre invisible à l'utilisateur.
Par chance, Access accepte des instructions ressemblant au VB6 dans ses syntaxes.
Tu peux donc essayer ceci :
Pour ne sélectionner que les Directions :
Dim maRequete As String = _
"Select ID, [Désignation] " & _
" From maTable " & _
" Where Len(ID) = 2"
Ensuite, en supposant que tu aies sélectionné une "Direction" dans ta Combo et que tu aies pu récupérer le texte de son ID dans une variable String nommée monID : Pour rechercher les sous-directions :
Dim maRequete As String = _
"Select ID, [Désignation] " & _
" From maTable " & _
" Where ID Like '" & monID & "%'" & _
" And Len(ID) = 4"
Ca doit pouvoir fonctionner
Je te laisse essayer, tester, et une fois que tu seras au point, facile de continuer avec les Services.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)