Erreur 3078 dans requête SQL [Résolu]

Signaler
Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
-
Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
-
Bonjour,

J'utilise le code (abrégé pour l'exemple) suivant :

Global comptes_mdb As Database
Global tb_détail_22104g As Recordset
Global tb_libel As Recordset
Global tb_sql As Recordset
Global zone As String
Global champs As String
...........
Set comptes_mdb = OpenDatabase(App.Path & "\comptes.mdb") 
Set tb_détail_22104g = comptes_mdb.OpenRecordset("tb_détail_22104g")
Set tb_libel = comptes_mdb.OpenRecordset("libel")
............
tb_libel.MoveFirst
MsgBox tb_libel("dest")

'  ---> erreur 3078 : tb_libel non trouvé

zone = "SELECT dest FROM tb_libel WHERE dest LIKE '" & _
    champs & "'" & " GROUP BY " & "dest"
Set tb_sql = comptes_mdb.OpenRecordset(zone)
If tb_sql.RecordCount = 0 Then Exit Sub

'  ---> correct, table tb_détail_22104g trouvée

zone = "SELECT libel FROM tb_détail_22104g WHERE libel LIKE '" & _
    champs & "'" & " GROUP BY " & "libel"
Set tb_sql = comptes_mdb.OpenRecordset(zone)
If tb_sql.RecordCount = 0 Then Exit Sub



J'utilise une base de données Access. Dans la première clause SQL, la table tb_libel n'est pas trouvée (erreur 3078). Pourtant elle existe et est prouvée par le Movefirst et la Msgbox. Le champ "dest" s'affiche bien. Si je remplace la table "tb_libel" par la table "tb_détail_22104g" et les champs "dest" par "libel", ça marche.

Je n'arrive pas à trouver l'erreur.

Merci de vos lumières.

Notpa

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
1
Merci à un modérateur de déplacer ce sujet du forum Visual Basic vers Visual Basic 6 si nécessaire.
Merci
Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
1
Ne cherchez plus ! J'ai trouvé !

J'ai confondu le controle table (tb_libel) avec le nom de la table elle même (libel). Donc, si je code :

zone = "SELECT dest FROM libel WHERE dest LIKE '" & _
champs & "'" & " GROUP BY " & "dest"


ça fonctionne parfaitement.

Sujet résolu.

Bon dimanche à tous !

Notpa