Afficher infos dans une combobox selon un choix dans une autre...

crashtoy Messages postés 4 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 27 juin 2006 - 2 févr. 2004 à 15:46
crashtoy Messages postés 4 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 27 juin 2006 - 6 févr. 2004 à 10:14
Je suis un pire débutant en VB et je suis chargé pour mon stage de réaliser une petite appli sur pocket PC (grâce à eVB) pour le conseil général de la creuse (!)

Mon problème est le suivant : je souhaite afficher une liste de communes dans ma combo2 suivant le choix du canton dans ma combo1...

Comment faire???
Le choix d'utiliser les combobox est-il le bon? Ou dois-je stocker mes listes de communes?

En éspérant qu'un joyeux developpeur me répondra vite (chuis grave a la bourre pour le projet etant donné que j'ai du apprendre VB tout seul avant de m'y mettre, applaudissez la performance!!!)

CrashToy!!

4 réponses

calla25 Messages postés 85 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 25 octobre 2007
2 févr. 2004 à 17:29
Le choix d'un combo est aussi bien qu'un autre.
Pour ajouter une liste dans ton combo2, tu doisfait ceci:
Efface combo2 dans ta liste en premier
combo2.text=""
combo2.Clear
combo2.AddItem (combo1.text)

combo1.text sera la commune choisie dans le combo1

Il serait judicieux de faire un boutton valider dans lequel tu incluerai ce code, ou alors tout simplement sur le clic de l'utilisateur sur la commune de ton combo1 ( Private Sub combo1_Click()

Le code

end sub

Bonne chance pour la suite.
Moi aussi je suis en stage, c'est peut être dure, mais ça t'apprend plus de cose que si tu est en cours
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
2 févr. 2004 à 17:36
labout
Tu peux utiliser la combobox ou la listbox

Un première recordset sur les cantons alimente la premiere
Un deuxième sur les communes avce la condition where sur les cantons alimente la seconde.
Ce deuxième recordset est créé à chaque deplacement sur la 1 ère combobox et il y a réalimentation de la seconde combobox.

Ceci nécessite 2 tables sous Access par exemple
La premiere table comprend
Code canton
Libelle canton

La seconde
Code canton
Libelle commune

en uilisant l'ado avec une connection Cn pour la base donnere

dim rs as new adodb.recorddset
set rs=gn.execute("select * from canton")
do while not rs.eof
combo1.additem rs.fields("libellecanton").value
rs.move next
loop
rs.close
combo1.listindex=0
dim code as string
canton=combo1.text
set rs="select * from canton where libelle='" & libelelcanton &"'"
scodecanton=rs.fields("codecanton").value
rs.close

call MetaJourCombo2(codecanton)

Sub MetaJourCombo2(scode)
set rs=gn.execute("select * from commune where codecanton='" & scodecanton & "'"

do while not rs.eof
combo2.additem rs.fields("ville").value
rs.movenext
loop
rs.close

à chaque déplacement sur combo1
canton=combo1.text
set rs="select * from canton where libelle='" & libellecanton &"'"
scodecanton=rs.fields("codecanton").value
rs.close
MetaJourCombo2(scodecanton)

Pour la connection ADO, il faut inclure la référence ADO
puis
dim Gn as new adodb.connection
gn.connectstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Incident.MDB;Mode=ReadWrite|Share Deny None;Persist Security Info=False;Jet OLEDB:Create System Database=True;Jet OLEDB:Compact Without Replica Repair=True"

gn.open

Attention il y a peut être des erreurs de frappe

Bon courage
0
crashtoy Messages postés 4 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 27 juin 2006
3 févr. 2004 à 08:57
Merci beaucoup!! il va me falloir une bonne dizaine d'heures pour decrypter et appliquer ça mais je crois que dans le principe j'ai bien compris la demarche...

C'est que les stages c'est plutot...enrichissant!!

Si je galere trop, vous serez au courant!!

CrashToy!!
0
crashtoy Messages postés 4 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 27 juin 2006
6 févr. 2004 à 10:14
Ca y est!!!!!!!! ca marche!!!!!!! il m'a fallu du temps (bcp de temps) mais ca marche!!!!! merci bien!!!!!

CrashToy!!
0
Rejoignez-nous