Combox

cs_noe Messages postés 38 Date d'inscription mardi 28 mai 2002 Statut Membre Dernière intervention 24 décembre 2003 - 18 oct. 2002 à 15:25
cs_noe Messages postés 38 Date d'inscription mardi 28 mai 2002 Statut Membre Dernière intervention 24 décembre 2003 - 19 oct. 2002 à 08:40
salut à tous

sur une form un combox
2 textbox

une fois avoir saisie mon client dans une liste je voudrais que la ville et le code postal viennent directement dans les texbox

je mets a suivre mon code source sur le lequel je travaille

merci pour vos réponses

Option Explicit

Public cnxEssai As New ADODB.Connection

Public cmdClient As New ADODB.Command

Public rstClient As New ADODB.Recordset

Private Sub Annuler_Click()
Unload Me
End Sub

Private Sub Combo1_Change()
'comment faire apparaitre dans text1.text la ville
' et dans text2.text le code postal

'les données sont dans la base essai
'la table client
'les champs nom, prénom, ville ,code_postal

End Sub

Private Sub Form_Load()
cnxEssai.Provider = "Microsoft.jet.oledb.4.0"

cnxEssai.ConnectionString = App.Path & "\Essai.mdb"

cnxEssai.Open

cmdClient.ActiveConnection = Form1.cnxEssai

cmdClient.CommandText = "select * from client"

rstClient.CursorLocation = adUseClient

rstClient.CursorType = adOpenDynamic

rstClient.LockType = adLockPessimistic

rstClient.Open cmdClient

Do Until rstClient.EOF
Combo1.AddItem rstClient!Nom
rstClient.MoveNext
Loop
Combo1.ListIndex = -1

End Sub
Private Sub form_unload(Cancel As Integer)
Set cmdClient = Nothing

Set rstClient = Nothing

Unload Me

End Sub

a+

4 réponses

BasicInstinct Messages postés 1471 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
18 oct. 2002 à 16:33
'Lut

Heu, j'ai ecrit ca sans le tester donc m'en veux pas si ca fonctionne pas. Mais le principe est la

Private Sub Combo1_Change()
rstclient.Filter="client=" & combo1.text
rstclient.MoveFirst
text1=rstclient("ville")
text2=rstclient("code_postal")

end sub
0
cs_6Po Messages postés 105 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 22 janvier 2009
18 oct. 2002 à 16:44
bhen a vue de nez vu que j'ai pas vb sous les yeux :big)

Private Sub Combo1_Change()
set rstClient = new adodb.recordset
rstClient.Open "Select * from client where nom ='" + combo1 + "'", cnxEssai

if not rs.eof then
Text1.text = rstClient!ville
Test2.text = rstClient!code_postal
end if

rstClient.close
set rstClient = nothing
End sub

NOTE :
====
Tu devrais utilise un numéro de client plustot que de faire des tests sur les nom.

Remarque les ' ' entre Combo1 ceci veut dire qu'on passe des donnee de type Texte à la base de donnée... si tu crees un numéro numérique il faudra les enlever.

==============
6Po

DreamersTeam HomePage
[mailto:6po@dreamersteam.org Email]
0
cs_6Po Messages postés 105 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 22 janvier 2009
18 oct. 2002 à 16:48
J'ai oublie de dire de fermer le record set apres l'ouverture

Combo1.ListIndex = -1

rstClient.Close
set rstClient = nothing

Tu peux change ton Combo1.ListIndex = -1 par

If Combo1.Listcount > 0 then combo1.listindex = 0

comme ca tu selectionne le 1er nom de client de ta liste.

Si t'as un probleme n'hesite pas a m'envoyer un mail.
==============
6Po

DreamersTeam HomePage
[mailto:6po@dreamersteam.org Email]
0
cs_noe Messages postés 38 Date d'inscription mardi 28 mai 2002 Statut Membre Dernière intervention 24 décembre 2003
19 oct. 2002 à 08:40
:big)
ok ça marche juste en faisant ces 2 changements
rstClient.Open "Select * from client where nom ='" + combo1.Text + "'", cnxEssai

if not rstClient.eof then

encore merci et bonne prog

A+ ;)
0
Rejoignez-nous