Urgent : problème de combobox implémentant deux autres champs de textbox automat

Résolu
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006 - 20 août 2005 à 11:34
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006 - 21 août 2005 à 23:11
Bonjour,




Voilà le problème : j’ai deux tables sous access (TLocalite et TEtudiant) où j’aimerais implémenter les données de l’une dans l’autre via une combobox en vb6.




Détails :


Dans ma feuille principale, lors de la saisie de l’étudiant (ou modif) , on a le choix parmi plusieurs codes postaux dans une combobox, une fois ce choix fait, j’aimerais que les champs des deux textbox (textbox1 : Nlocalite et textbox2 : Pays) se complètent automatiquement de par le choix du code…



Depuis hier j'ai essayé plusieurs codes et on m'a même conseillé via le forum malheureusement ces aides n'ont pas suffit à avoir ce que je veux donc si qqun aurait éventuellement eu le même problème que moi ce serait bien qu'il me conseille...

C'est prise de tête, peut être pour rien mais j'aimerais avoir ce résultat du choix de combo et de l'ajout automatique dans les textbox suite au choix ds combo du cp

Un grand merci pour votre aide qui m'est précieuse surtout que ce travail est un travail de seconde session et que là j'en suis à m'arracher les cheveux car je n'avance pas des masse à cause de se problème que je n'arrive pas à résoudre

Voilà donc c'est super urgent et merci encore

23 réponses

pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
20 août 2005 à 17:23
PAT

J'ai le fichier et je suis dessus. Laisse 15 minutes que je te fasses un truc sympa
3
pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
21 août 2005 à 09:58
PAT

Je me permets d'afficher le bout de code que je t'ai envoyé par mail de manière à ce qu'il puisse profiter à tout le monde.
Ne soyons pas égoistes !

Private Sub Combo1_Click()
Dim cn As New Connection
Dim rs As New Recordset

txtVille = ""

With cn
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Tables.mdb"
cn.Open
End With

Set rs cn.Execute("select * from tlocalite where ncodpos" & Combo1.Text)

If rs.EOF And rs.BOF Then
txtVille = "Ce code n'est pas présent dans la base"
Else
txtVille = rs.Fields(2)
End If

End Sub
3
pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
20 août 2005 à 12:18
PAT

Si j'ai bien compris : Aprés sélection d'un code postal sur la combo, tu veux afficher la localité correspondante dans un textbox.
Si c'est celà, dans l'événement Click de la combo, il faut que écrives l'appel à une requête qui ira chercher dans la base la localité correspondante au code postal sélectionné.
En gros schématiquement, ça donne :

Evenement Click
select ville from tableville where codepostal = combo1.text
txtVille.Text = Résultat de la requête.

J'ai testé sur une base exemple. Ca marche.
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
20 août 2005 à 12:27
Private Sub Combocodepostal_Change()
Dim db As Database, rs As Recordset
Dim sql As String
Set db = CurrentDb
'ici tu crée ta procédure sql de filtre en utilisant la valeur de ta combobox :
Set rs = db.OpenRecordset(sql)
rs.MoveFirst
'Création de la requête
sql = ""
sql = "SELECT * FROM Tlocalite WHERE (Nlocalite=" & Chr(39) & Combocodepostal.Text & Chr(39) & ");"
Set rs = db.OpenRecordset(sql)
If rs.EOF = True Then
MsgBox ("pas d'enregistrement")
Else
'afficher la valeur de la localité dans le texbox
Text1(4).DataField = rs.Fields("Nlocalite").Value 'nom-localite à remplacer par le nom du champ de localite de ta table Tlocalite
Text1(4).DataField = rs.Fields("Pays").Value
End If
rs.Close
Set base = Nothing
End Sub

Je suis partie sur cette idée de code là qu'on m'a conseillé ce serait donc ma requête sql qui est fausse alors??
car dans la combo tout s'affiche normal mais c dans mes textbox...
Je ne suis que débutante en vb et cherche à comprendre...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
20 août 2005 à 12:34
Salut, dans ta table Tlocalite, Nlocalite doit être le nom de la localité si j'ai bien compris donc ta requete ne peut pas fonctionner : tu compares le code avec le nom.
Tu n'as pas un champ dans Tlocalite où se trouve le code postal ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
20 août 2005 à 12:46
dans ma table localité en effet j'ai un champ code postal ainsi que localité et pays
et ces trois champs doivent figurer dans ma table étudiant par l'insertion de la table localité...
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
20 août 2005 à 13:00
Donc, ta requete devrait être :
sql = "SELECT * FROM Tlocalite WHERE (CodePostal=" & Chr(39) & Combocodepostal.Text & Chr(39) & ");"

Le post de pjcleder t'aiguillait dans ce sens.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
20 août 2005 à 13:50
euh ok mais ça change rien au problème car à l'ouverture de la requête rien ne se passe... C'est bien cela qu'il me faut indiquer :
Text1(4).Text = rs.Fields("Nlocalite").value

Il y a du boulot qui m'attend je comprend pas trop là pourquoi ça ne marche pas car j'ai modifié la requête... Donc le problème viendrait à ce niveau là???
0
pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
20 août 2005 à 14:32
PAT

Sais-tu debogger en vb6 ?
Si c'est le cas, vérifie que rs.fields("NLocalite").value contienne bien une valeur.
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
20 août 2005 à 14:37
Enlève les .value.
Text1(4).Text = rs.Fields("Nlocalite") devrait suffire.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
20 août 2005 à 14:39
D'autre part, vérifie le type de ton champ codepostal dans la table. Si c'est du numérique (integer, long), il faudra enlever les chr(39) de ta requete.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
20 août 2005 à 15:34
je viens de vérifier les relations des tables, j'ai retiré le chr(39) qui en effet me servait à rien, le value non plus, et quand je lance mon programme il ne me trouve pas de bug mais ça va toujours pas... Je sais plus quoi faire et ça me rend malade... Vous savez pas s'il y a un code source concret sur ce site peut etre que je trouverai plus vite mon erreur ou ce qu'il manque...

voilà ce que ça donne :
Private Sub Combocodepostal_Change()
Dim db As Database, rs As Recordset
Dim sql As String
Set db = CurrentDb
'ici tu crée ta procédure sql de filtre en utilisant la valeur de ta combobox :
Set rs = db.OpenRecordset(sql)
rs.MoveFirst
'Création de la requête
sql = ""
sql = "SELECT * FROM Tlocalite WHERE (NCodPos=" & Combocodepostal.Text & ");"
Set rs = db.OpenRecordset(sql)
If rs.EOF = True Then
MsgBox ("pas d'enregistrement")
Else
'afficher la valeur de la localité dans le texbox
Text1(4).Text = rs.Fields("Nlocalite")
End If
rs.Close
Set base = Nothing
End Sub

Désolée de vous embêter...
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
20 août 2005 à 15:48
j'ai modifié mes relations mis l'intégrité référentielle, oui c du numérique donc retiré chr(39), j'ai retiré le value et en débuggant il ne voit rien donc il doit me manquer qqch... Je désespère là, vous ne sauriez pas s'il y aurait un code source sur ce forum identique à ce que je recherche ce sera peut etre plus facile de trouver la faille car là je ne sais plus quoi faire et ça me décourage grave...
Merci c'est vraiment sympa pour votre aide et désolée de vous déranger c'est cool de savoir qu'il y a encore des gens qui sont là pour aider les autres
Je suis décidément nulle moi pffffffff

Private Sub Combocodepostal_Change()
Dim db As Database, rs As Recordset
Dim sql As String
Set db = CurrentDb
'ici tu crée ta procédure sql de filtre en utilisant la valeur de ta combobox :
Set rs = db.OpenRecordset(sql)
rs.MoveFirst
'Création de la requête
sql = ""
sql = "SELECT * FROM Tlocalite WHERE (NCodPos=" & Combocodepostal.Text & ");"
Set rs = db.OpenRecordset(sql)
If rs.EOF = True Then
MsgBox ("pas d'enregistrement")
Else
'afficher la valeur de la localité dans le texbox
Text1(4).Text = rs.Fields("Nlocalite")
End If
rs.Close
Set base = Nothing
End Sub
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
20 août 2005 à 15:50
voilà où j'en suis je me répète mdr...
0
pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
20 août 2005 à 16:17
PAT

Mets un point d'arrêt sur rs.fields("Nlocalité") et did-moi s'il ya une valeur dedans.
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
20 août 2005 à 16:34
j'ai mis le point d'arrêt comme tu m'as dit mais il ne met rien pffffffff... Je sais po quoi faire suis larguée moi pffffffff....
En tout cas merci pour ta patience c'est vraiment cool...
Que dois je faire pour qu'il m'indique qqch??? Ce serait un problème avec mes tables??
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
20 août 2005 à 16:39
quand je vais sur espion express il me dit expression non définie dans le contexte dans valeur
et dans expression il m'indique Nlocalite
0
pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
20 août 2005 à 16:40
PAT

Au pire, oublie le point d'arrêt
on va aller plus vite

Juste avant Text1(4).Text = rs.Fields("Nlocalite"), tu mets msgbox rs.fields("Nlocalité") et tu regardes ce qu'affiche le messagebox.
Aprés on saura si ta requête raméne bien une valeur et on avisera.
0
pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
20 août 2005 à 16:52
PAT

Je suis sûr que ce n'est pas grand chose. Fais-moi confiance !
Au pire, envoie-moi ton fichier .mdb par mail à [mailto:pcleder@wanadoo.fr pcleder@wanadoo.fr] et je te fais la correction en deux minutes.
Ca doit être tout con et à distance c'est pas facile.
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
20 août 2005 à 16:55
apparemment ça marche pas il n'y a toujours rien
0
Rejoignez-nous