Erreur de compilation: Membre de méthode ou de données introuvable [Résolu]

Signaler
Messages postés
20
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
3 novembre 2011
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,
j'ai un soucis en VB Access, voilà le code :

Option Compare Database
Public TComptes(1 To 3000, 1 To 2) As Variant
Public Sub chargement_Tableaux()
'ATTENTION : vérifier que le composant recordset est ADO 2.1  et  pas DAO 3.6

'chargement de la table access Plan_Comptable dans le tableau TComptes
'***********************************************************
Dim numcompte As Integer
Dim libcompte As String  'libelle_compte
'déclaration d'un recordset sur la table Plan_Comptable
Dim rscompte As Recordset
Set rscompte = New ADODB.Recordset
rscompte.Open "select * from Plan_Comptable", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
....etc...


Et l'arrêt (avec le message [Erreur de compilation: Membre de méthode ou de données introuvable]) se positionne sur le ".Open" avant la requête.
J'aimerais donc savoir quel est le problème s'il-vous-plait..
(sachant qu'au niveau des références, je suis normalement comme il faut [avec l'ADO 2.1 entre autres])
Merci d'avance à ceux qui répondront et qui m'aideront à comprendre ce qu'il se passe!

12 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut

Recordset, sans autre précision, s'adresse à DAO (obsolète)
Dim rscompte As ADODB.Recordset

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
20
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
3 novembre 2011

Merci jack!

..j'avais trouvé dans la nuit (peu avant ta réponse tiens en fait..) après de longues recherches sur le net et en effet, cela fonctionne maintenant.
Merci encore pour ta réponse mister!

Khenat
Bonjour,
J'ai le même message qui s'affiche mais avec ce code :

Private Sub Commande3_Click()
Dim rs As ADODB.Recordset
SQL = "SELECT CODENAF FROM NAF WHERE" & Modifiable1 & " LIKE LIBELLE"
Set rs = New ADODB.Recordset
rs.Open SQL, ActiveConnection
rs.Close
Texte4.Value = rs.Fields(0)
End Sub

Le problème se positionne sur le private sub... Je suis donc bloquée !
Merci d'avance pour votre aide !
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Bonjour,

Affiche ta requete SQL avant de l'exécuter pour vérifier qu'elle est correcte, je pense qu'il manque un espace.
à quoi est initialisé "Modifiable1" ?

Tu fermes ton rs avant de l'utiliser.


L'expérience, c'est une connerie par jour, mais jamais la même..
Option Compare Database

Private Sub Commande3_Click()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.ActiveConnection = CurrentProject.Connection
MsgBox ("SELECT CODENAF FROM NAF WHERE CODENAF= " & Modifiable1)
rs.Open "SELECT CODENAF FROM NAF WHERE CODENAF= " & Modifiable1
rs.Close
Texte4.Value = rs.Fields(0)
End Sub


J'ai exécuté ce code, mais j'ai maintenant le message : "Erreur de syntaxe (opérateur absent) dans l'expression "CODENAF=46.35Z".
Est-ce parce qu'il y a un point dans le résultat du modifiable ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
WHERE CODENAF= " & Modifiable1

déjà : un espace manque
et de quel type est CODENAF ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
CODENAF est de type texte
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
et donc ===>> puisque dans la requête, la valeur texte doit être mise entre guillemets ===>>
Tu as le choix entre :
"SELECT CODENAF FROM NAF WHERE CODENAF = '" & Modifiable1) & "'"

et
"SELECT CODENAF FROM NAF WHERE CODENAF = """ & Modifiable1) & """"

Puis-je te faire remarque que tu aurais vu seul cette erreur si tu avais suivi le conseil de lolokun ? , à savoir :
Affiche ta requete SQL avant de l'exécuter pour vérifier qu'elle est correcte

Belle perte de temps.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Merci mais j'avais affiché ma requete, mais je comprenais toujours pas...
J'ai fait ce que tu m'as dit mais maintenant ça bloque au niveau du Texte4.Value=rs.Fields(0)...

Option Compare Database

Private Sub Commande3_Click()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.ActiveConnection = CurrentProject.Connection
MsgBox ("SELECT CODENAF FROM NAF WHERE LIBELLE = """ & Modifiable1 & """")
rs.Open "SELECT CODENAF FROM NAF WHERE LIBELLE = """ & Modifiable1 & """"
rs.Close
Texte4.Value = rs.Fields(0)
End Sub
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Re,

et si tu lisais ma seconde remarque aussi?
Tu cherches à utiliser ton recordset alors que tu l'as fermé avant..


L'expérience, c'est une connerie par jour, mais jamais la même..
Ok merci !! quelle idiote je suis, j'avais complètement zapé ta remarque...
En tout cas, ça marche, merci :)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Tout cela paraitrait incroyable. C'est pourtant vrai !
Je vais dormir de ce pas.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ