Connexion ACCESS VBA et requête !

Résolu
Utilisateur anonyme - 22 sept. 2006 à 08:37
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 22 sept. 2006 à 11:50
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 sept. 2006 à 09:07
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
3
Utilisateur anonyme
22 sept. 2006 à 09:18
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 !!!
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
22 sept. 2006 à 11:50
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
0
Rejoignez-nous