Connexion ACCESS VBA et requête ! [Résolu]

Signaler
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Hello all,


Voilou j'essaye d'établir une connexion access via VBA mais ca ne marche pas, en fait la connexion marche, mais pas la requete que je fais derriere, en effet en retour j'ai une erreur du type: 3011, microsoft jet  ne trouve pas l'objet "select nom from...." verifier que vous l'avez bien ecrit etc, alors OUI tout est bien ecrit, la casse est respecté, la table et les champs sont les bons, je pense avoir activé la reference activex et ADO (meme si je ne m'en sers pas)... donc si vous pouviez m'aider, voici mon code:


 Public Sub main()
   
    Dim db As Database
    Dim Rst As Recordset
    Dim StrSql As String

    Set db = OpenDatabase("c:\TEMP\CodageEfv.mdb")
      StrSql "SELECT nom FROM CODAGE WHERE CODAGE!Dossier 03010226"
    Set Rst = db.OpenRecordset(StrSql, dbOpenTable)
    MsgBox Rst.Fields("nom").Value
    
    Rst.Close
    db.Close
    Set Rst = Nothing
    
    MsgBox ("hello") //verifier qu'il arrive au bout du programme


 End Sub
   


ps:
*j'ai fais la requete en SQL direct sous access, elle marche, mais en sql j'ai le droit de mettre des "" pour les chiffres, pas en VBA sinon il croit que c'est la fin de la requete, odnc peut etre qu'il y a une erreur ici ?
*j'ai eu un avis qui m'a dis que pour selectionner mon champs, il fallait mettre table!champs et non table.champs (comme en access) ?

HELP !!!
sinon je vais devoir passer en ado ou dao mais je sais pas la difference ni m'en servir ^^

merci d'avance

3 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu peux pas dire dbOpenTable : tu ne fournis pas le nom d'une table, mais une requete SQL

je mettrais plutôt :
    StrSql = "SELECT [nom] FROM [CODAGE] WHERE [Dossier]= '03010226' "
    Set Rst = db.OpenRecordset(StrSql)

Renfield
Admin CodeS-SourceS- MVP Visual Basic

Renfield tu me degoute la, j'ai apsser une après midi a chercher et toi tu viens tu fais ca en 2 secondes, le monde est injuste

Nan merci sincérement, par contre je ne sais pas d'ou venais la vrai erreur, en effet avant d'essayer ta méthode j'ai decocher les reference ADO de VBA, c'était peut etre du à cela également, car je n'ai aps besoin de reference ici, et puis enlever le dbopentable, je l'avais deja fais mais ca ne marcher pas...bizarre!

enfin merci merci !!!
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Selon la méthode de connexion que tu utilises, c'est DAO que tu dois
utiliser et non pas ADO. Et tu n'as pas le choix que de le déclarer
sinon Database et Recordset ne seront pas reconnus...


à moins que j'ai manqué quelque chose...(?)

MPi