leubaa
Messages postés24Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention20 mai 2005
-
19 août 2003 à 14:09
leubaa
Messages postés24Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention20 mai 2005
-
22 août 2003 à 13:58
Bonjour,
J'ai un petit problème Access-VBA.
Dans un formulaire, j'ai une liste (liste de nom), et un champ qui permet de "chercher" un enregistrement
ex si je tape "c" dans le champ et que je clique sur mon boutton "positionner" le premier enregistrement commencant par C devrait etre selectionner ...
Cependant mon ode VBA ne fonctionne pas et je n'en trouve pas la cause ...
le voici
Function Positionner(num)
Dim bds As Database
Dim donnees As DAO.Recordset
Dim Formulaire As Form, critere, champ
Set bds = CurrentDb()
Set donnees = bds.OpenRecordset("Adresses")
Set Formulaire = Forms![Maintenance Adresses]
critere = "donnees![Adr_nom] >= '" & Formulaire![Nom] & "'"
donnees.FindFirst (critere)
If Not (donnees.NoMatch) Then
num = donnees("Cod_Adresses")
Formulaire![Politesse] = donnees("Cod_Pol")
Formulaire![Nom] = donnees("Adr_Nom")
Formulaire![Prenom] = donnees("Adr_Prenom")
Formulaire![Adresse1] = donnees("Adr_Adresse1")
Formulaire![Adresse2] = donnees("Adr_Adresse2")
Formulaire![Localite] = donnees("Cod_Localite")
Formulaire![Telephone] = donnees("Adr_Telephone")
Formulaire![Portable] = donnees("Adr_Portable")
Formulaire![Fax] = donnees("Adr_Fax")
Formulaire![E-Mail] = donnees("Adr_E-Mail")
Formulaire![SiteWeb] = donnees("Adr_SiteWeb")
Formulaire![Statut] = donnees("Cod_Statut")
Formulaire![Manifestations] = donnees("Cod_Manifestations")
Formulaire![Participation] = donnees("Adr_ManifParticipants")
Formulaire![Nombre] = donnees("Adr_ManifNbre")
Formulaire![DateNaissance] = donnees("Adr_DateNaissance")
Formulaire![DateEntree] = donnees("Adr_DateEntree")
Formulaire![DateSortie] = donnees("Adr_DateSortie")
End If
donnees.Close
End Function
Le paramètre de la fonction est le nom de la liste
EddiePonpon
Messages postés33Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention31 août 2005 19 août 2003 à 15:16
bonjour,
Le Problème vient sûrement de formulaire![Nom] qui ne doit pas te renvoyer le champ de ton recordset mais plutôt les nom de ton formulaire. Essaie de modifier le nom de ton controle par Formulaire![NomCritere] par exemple.
leubaa
Messages postés24Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention20 mai 2005 20 août 2003 à 11:49
Exemple si je tape dans mon champ de recherche "MONNET"
Le critere a la valeur suivante :
Critere = "donnees![Adr_nom] >= 'MONNET'"
donnees![Adr_Nom] fait reference aux element Adr_Nom de ma table adresses. Dans les autres parties du code cela fonctionne, mais dans ce cas du critere cela ne fonctionne pas et je ne comprends pas pourquoi !!!!
EddiePonpon
Messages postés33Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention31 août 2005 20 août 2003 à 12:02
Je viens de recréer ton cas dans une base Access 2002 et si j'enlève le nom de la table dans le critère ça passe, alors que si je le laisse ça plante
critere="[Adr_nom] >= '" & Formulaire![Nom] &"'"
EddiePonpon
Messages postés33Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention31 août 2005 20 août 2003 à 13:50
Désolé je n'es pas d'ACCESS 2000
mais je viens de tester sous 97 et ça passe comme ça :
Function Positionner(num)
Dim bds As Database
Dim donnees As Recordset
Dim Formulaire As Form, critere, champ
Set bds = CurrentDb()
Set donnees = bds.OpenRecordset("Adresses",DB_OPEN_DYNASET)
Set Formulaire = Forms![Maintenance Adresses]
critere = "[Adr_nom] >= '" & Formulaire![Nom] & "'"
donnees.FindFirst (critere)
leubaa
Messages postés24Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention20 mai 2005 20 août 2003 à 14:35
Sous access 2000 il y a la versionDAO 3.6 ... donc si tu tapes simplement recordeset il ne reconnait pas le type. De meme pour OpenRecordset("Adresses", db.OpenDynaset)
Donc cela ne fonctionne pas .. et ca uniquement sous access 2000