Combox

Messages postés
38
Date d'inscription
mardi 28 mai 2002
Statut
Membre
Dernière intervention
24 décembre 2003
-
Messages postés
38
Date d'inscription
mardi 28 mai 2002
Statut
Membre
Dernière intervention
24 décembre 2003
-
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

Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
12
'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
Messages postés
105
Date d'inscription
jeudi 16 mai 2002
Statut
Membre
Dernière intervention
22 janvier 2009

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]
Messages postés
105
Date d'inscription
jeudi 16 mai 2002
Statut
Membre
Dernière intervention
22 janvier 2009

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]
Messages postés
38
Date d'inscription
mardi 28 mai 2002
Statut
Membre
Dernière intervention
24 décembre 2003

: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+ ;)