Base de données ACCESS & OpenQueryDef

Signaler
Messages postés
8
Date d'inscription
jeudi 28 avril 2005
Statut
Membre
Dernière intervention
16 octobre 2007
-
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
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

Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
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 />