Query Access paramétrée avec ADODB
-
lundi 27 février 2012 08:26
Bonjour à tous,
un étrange phénomème se présente :
je me connecte à une base de données Access avec ADODB, dans cette DB il y a une query paramétrée que j'execute avec ADODB.
Quand j'exécute cette query directement dans ACCESS, j'ai un résultat correct (clause where), mais lorsque je l'exécute via ADODB on dirait que la clause where est zappée (le filtre n'est pas appliqué).voici le code :
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & DBSource Set cmd.ActiveConnection = cnn cmd.CommandType = adCmdTable cmd.Parameters.Append cmd.CreateParameter("[Date ? (xx/xx/xxxx)]", adDBDate, adParamInput, 8, MyDate) cmd.CommandText = "[Query 01 Help Consolidation per Goods Recipient]" Set rst = cmd.Execute()J'ai essayé d'exécuter cette même query avec DAO et là, ça fonctionne très bien mais c'est beaucoup plus lent que ADODB.
Pouvez-vous m'aider à résoudre ce mystère ?
Merci beaucoup
Greg
Toutes les réponses
-
mercredi 29 février 2012 13:21personne n'a une petite idée ?
-
mercredi 7 mars 2012 11:42
Si j'ai bien compris, ta requête est en fait définie comme cela:
cmd.CommandText = "[Query 01 Help Consolidation per Goods Recipient]"
"Query 01 ...." est le nom que tu as donné à ta "vue" ACCESS.
J'imagine que la clause WHERE paramétrée est incluse dans ta table "Query 01".
Si mes suppositions sont correctes, alors ACCESS peut résoudre ta commande parce qu'il a accès à la définition de "Query 01", et qu'il peut y injecter la valeur choisie pour tes paramètres.
En revanche, depuis l'extérieur d'ACCESS, cela ne marche pas parce que ADODB ne transmet pas les paramètres. La raison est que la requête "[Query 01 Help Consolidation per Goods Recipient]" est une requête directe de table, donc non paramétrée.
- Marqué comme réponse Ciprian DuduialaOwner mercredi 21 mars 2012 08:52

