Recordset affiche ville d'apres cp

Signaler
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
18 janvier 2005
-
Messages postés
200
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
30 juin 2008
-
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

Messages postés
200
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
30 juin 2008

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
Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
5
rst est un recordset, donc un objet.
Par conséquent; si tu veux le détruire :
Set rst = Nothing ou rst.Close
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
18 janvier 2005

Merci car il y avait effectivement une erreur ici aussi.
Messages postés
200
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
30 juin 2008

as tu pu resudre ton pb?
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
18 janvier 2005

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
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
18 janvier 2005

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
Messages postés
200
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
30 juin 2008

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?
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
18 janvier 2005

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.
Messages postés
200
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
30 juin 2008

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.
Messages postés
200
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
30 juin 2008

'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.
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
18 janvier 2005

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 .
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
18 janvier 2005

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.

@+
Messages postés
200
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
30 juin 2008

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.
Messages postés
200
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
30 juin 2008

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.
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
18 janvier 2005

Ca bloque à .Open
Je crois que je vais laisser tomber en vba et faire une requete.
Merci qd meme de ton aide.

Bye
Messages postés
200
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
30 juin 2008

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...