CYCY07
Messages postés67Date d'inscriptionjeudi 19 mai 2011StatutMembreDernière intervention22 mai 2006
-
20 août 2005 à 11:34
CYCY07
Messages postés67Date d'inscriptionjeudi 19 mai 2011StatutMembreDernière intervention22 mai 2006
-
21 août 2005 à 23:11
Bonjour,
Voilà le problème : jai deux tables sous access (TLocalite et TEtudiant) où jaimerais implémenter les données de lune dans lautre 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, jaimerais 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
pjcleder
Messages postés183Date d'inscriptionjeudi 4 février 2010StatutMembreDernière intervention16 septembre 201111 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.
CYCY07
Messages postés67Date d'inscriptionjeudi 19 mai 2011StatutMembreDernière intervention22 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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 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 !?
CYCY07
Messages postés67Date d'inscriptionjeudi 19 mai 2011StatutMembreDernière intervention22 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é...
CYCY07
Messages postés67Date d'inscriptionjeudi 19 mai 2011StatutMembreDernière intervention22 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à???
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 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 !?
CYCY07
Messages postés67Date d'inscriptionjeudi 19 mai 2011StatutMembreDernière intervention22 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
CYCY07
Messages postés67Date d'inscriptionjeudi 19 mai 2011StatutMembreDernière intervention22 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
CYCY07
Messages postés67Date d'inscriptionjeudi 19 mai 2011StatutMembreDernière intervention22 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??
pjcleder
Messages postés183Date d'inscriptionjeudi 4 février 2010StatutMembreDernière intervention16 septembre 201111 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.
pjcleder
Messages postés183Date d'inscriptionjeudi 4 février 2010StatutMembreDernière intervention16 septembre 201111 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.