Base de données ACCESS & OpenQueryDef

youyou08 Messages postés 8 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 16 octobre 2007 - 16 oct. 2007 à 13:24
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 16 oct. 2007 à 19:32
Bonjour à toutes et à tous

J'ai crée une appli se connectant à une base de données ACCESS. Cette base n'est pas en local, j'utilise une source de données ODBC avec DSN pour réaliser la connexion :

Dim DB as Database

DBEngine.DefaultType = dbUseODBC
Set DB = OpenDatabase("", dbDriverNoPrompt, False, "ODBC;DSN=Consignation;")

La connexion marche, j'arrive à faire des requete SELECT, INSERT, UPDATE ....
Maintenant, je voudrais executer des requetes stockées dans la base :

Dim Qd As QueryDef
Set Qd = DB.OpenQueryDef("Ma_Requete_Stocke")

A l'execution de la méthode OpenQueryDef  j'obtient le message d'erreur : Operation is not supported for this type of object

Après plusieurs teste, j'ai constaté que OpenQueyDef fonctionne correctement sur une base ouverte en local : Set DB = OpenDatabase("D:\consigne.mdb") 

et non avec un lien ODBC : DBEngine.DefaultType = dbUseODBC
Set DB = OpenDatabase("", dbDriverNoPrompt, False, "ODBC;DSN=Consignation;")

De plus sachant que OpenQueryDef est obsoléte, jai utilisé QueryDefs :

Set Qd = DB.QueryDefs("Ma_Requete_Stocke")

Rien n'y fait j'ai toujours le meme message d'erreur, de plus la ligne de code precedentes marche correctement avec une base ouverte en local

La question est comment faire pour utiliser les procédure stocké de ma base ?
Merci pour vos réponse.

1 réponse

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
16 oct. 2007 à 19:32
Salut,
Si ta requete est de type Selection, passes par un objet RecordSet.
Si elle est de type Action (Insertion, Suppression, Mise à jour),
passes par un Objet Command.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
Rejoignez-nous