Recordset affiche ville d'apres cp

Pockett Messages postés 10 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005 - 17 janv. 2005 à 22:35
zeunz Messages postés 200 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 30 juin 2008 - 18 janv. 2005 à 12:40
Bonjour ,
Pour afficher la ville en fonction du CP,j'essaie d'utiliser ce code:

Private Sub CodePostal_AfterUpdate()

Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("T_CodesPostaux")
rst.Find "CodePostal='" & Me.CodePostal & "'"
If rst.NoMatch Then
MsgBox "ce code postal n'existe pas !!"
Else
Me.Ville = rst.Fields(1)
End If
rst = Nothing

End Sub

Mais ca m'affiche l'erreur suivante: Erreur de compilation, Membre de methode ou de donnees introuvables. Le pb semble venir de la partie Me.CodePostal pourtant c'est bien le nom du controle.
Qqn peut-il corriger mon erreur ?

Bye

16 réponses

zeunz Messages postés 200 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 30 juin 2008
17 janv. 2005 à 22:47
si ca peut t'aider:
voici mon code:

'Paramétrage de la connection
Connect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & CheminBasedonnees & ";Persist Security Info=False;" & _
"Mode=Share Deny None;Jet OLEDB:Database Password="


'Paramétrage du curseur
CN.CursorLocation = adUseClient


'Ouverture de la base de données
CN.Open (Connect)

'Recherche des données
With RecordSet
'Ouverture de la table
.Open Table, CN, adOpenDynamic, adLockOptimistic
'Recherche des données
.Find "CodePostal =" & ChampID '<---------
me.caption= ![ville]
'Fermeture de la table
RecordSet.Close
End With
je pense que tu as une erreur a l'endroit ou tu as mis "find"
faut bien mettre "codepostal =" je pense que l'espace entre "find" et "=" est obligatoire
fais un essai car je ss pas sur de ce que je te dis.
a+ bon courage
zeunz
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 6
17 janv. 2005 à 23:05
rst est un recordset, donc un objet.
Par conséquent; si tu veux le détruire :
Set rst = Nothing ou rst.Close
0
Pockett Messages postés 10 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005
18 janv. 2005 à 11:32
Merci car il y avait effectivement une erreur ici aussi.
0
zeunz Messages postés 200 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 30 juin 2008
18 janv. 2005 à 11:38
as tu pu resudre ton pb?
0

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

Posez votre question
Pockett Messages postés 10 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005
18 janv. 2005 à 11:39
Merci de ta réponse . Effectivement l'erreur vient de find, je ne peux pas le mettre seul mais les propositions présentées ne me conviennent pas.

Ton code est assez complexe, est-ce q qqn aurait un code plus simple me permettant d'afficher la ville d'apres la valeur du code postal

J'ai essayé qq formules simples, l'inconvénient pour celle qui fctionne c'est qu'elle ne m'affiche que la premiere ville associée au cp alors q pfs il y en a plusieurs.

Comment faire ?

Merci de votre aide
0
Pockett Messages postés 10 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005
18 janv. 2005 à 11:44
En meme tps lol, comme tu peux le voir dans mon nouveau message, je n'ai pas avancé, sniff.
Stt que je ne suis pas du tt douée en vba , je ne cherche pas non plus à le devenir mais je voudrais pouvoir faire en sorte que ma bdd sur access soit correcte.

HHHHEEEELLLPPP please lol, stt que pour les gens qui s'y connaissent je pense que le code doit etre assez simple.

Bye
0
zeunz Messages postés 200 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 30 juin 2008
18 janv. 2005 à 11:52
en fait d'apres ce ke je viens de comprendre, tu voudsrai les noms de villes correspondant au code postal sélectionné, et il se pourrait qu'il y ait plusieurs solutions. est ce bien ca?
0
Pockett Messages postés 10 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005
18 janv. 2005 à 11:57
OUIII
Jusque là on me comprend lol.

Lorsque je rentre le code postal ds un controle, je veux que ca m'affiche dans un autre controle la liste des villes qui correspondent aux codes.
0
zeunz Messages postés 200 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 30 juin 2008
18 janv. 2005 à 11:59
dc on fera appel aussi a une listbox qui chargera ttes les reponses de la BD.
patiente un peu et je te ponds le code.
0
zeunz Messages postés 200 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 30 juin 2008
18 janv. 2005 à 12:09
'faudra rajouter une listbox
'et RS= recordset

'Vidage de la liste
ListBox.Clear


'Chargement de la ListView
With RS
'Ouverture de la table
.Open "Ville", CN, adOpenDynamic, adLockReadOnly 'adLockReadOnly = ouverture en lecture
'Vérification du nombre d'enregistrement (si le nbre>0)
If .EOF = True Then GoTo Suite
'Recherche des données
.MoveFirst
Do
'Vérification des données
if ![CodePostal]=MonCodePostalChoisi then
ListBox.AddItem ![Ville]
'La, on met un itemdata (ms tu n'es pas oblige de le mettre)
ListBox.ItemData(ListBox.NewIndex) = ![idCodePostal]
end if
'Enregistrement suivant
If .EOF = False Then .MoveNext
Loop Until .EOF = True
Suite:
'Fermeture de la table
RS.Close
End With

'Ce code ouvrira dc ta table, vérifira si elle possede au moin 1 enregistrement (sinon elle 'passe directement a la fermeture), et fera une boucle de lecture où elle fera une comparaison 'avec les données et les ajoutera ds la ListBox.
0
Pockett Messages postés 10 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005
18 janv. 2005 à 12:10
C'est cool si tu peux me trouver un code. Tu t'y connais sur access?

J'ai un formulaire "F_societes" avec un controle zone de texte "CodePostal" et un controle liste deroulante "Ville". J'ai egalement une table "T_CodesPostaux" regroupant villes et codes postaux.

Je ne sais pas si tu as besoin de ces infos.

J'attends ton code bien sagement .
0
Pockett Messages postés 10 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005
18 janv. 2005 à 12:18
mdr en fait j'hesite lol je ne sais pas, entre ton premier code et ton second lequel est le plus simple!!!
Je savais que le vba ce n'était pas simple mais pour une tte petite application comme jeve faire sur access il faut un aussi gros code .
Je vais aller l'essayer lol ma base de données parait ridicule à coté de ton code.

@+
0
zeunz Messages postés 200 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 30 juin 2008
18 janv. 2005 à 12:18
ben regarde en haut c'est le code ke je t'ai mis. moi avec access je n'utilise pas les formulaires. j'ai simplement des tables avec lesquelles je fais mes recherches et vb m'affiche mes infos.
tu remplce dc ds le code ci dessus "ville " par "T_CodesPostaux" et ce qu'il y a entre "[]" par les noms des champs ke tu as mis.
0
zeunz Messages postés 200 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 30 juin 2008
18 janv. 2005 à 12:23
ecoute je te donne mon mail ce sera + simple:
[mailto:zeunz175@yahoo.fr zeunz175@yahoo.fr]

donne moi le nom de ta listbox et le nom de ts tes champs dt tu as besoin.
reponds sur mon mail mnt.
a tout de suite.
0
Pockett Messages postés 10 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005
18 janv. 2005 à 12:32
Ca bloque à .Open
Je crois que je vais laisser tomber en vba et faire une requete.
Merci qd meme de ton aide.

Bye
0
zeunz Messages postés 200 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 30 juin 2008
18 janv. 2005 à 12:40
Private Sub CodePostal_AfterUpdate()

Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("T_CodesPostaux")
if rst!CodePostal= me.CodePostal then
listbox.additem rst!CodePostal
end if
rst.movefirst
rst.close

End Sub

a voir...
0