2 votes

Requête Access - Format correct pour une déclaration dans la requête MS Access

J'ai des codes VBA dans une base de données Access. Je reçois un message d'erreur "Run Time Error 3464 - Data Type Mismatch in Expression" avec les lignes suivantes dans mes codes. Quel est le format correct de cette ligne ? Je suis sûr qu'il s'agit d'un simple guillemet ou de quelque chose qui manque dans la ligne.

Dans la base de données, il y a une colonne appelée Membres de l'APIC. Je veux seulement les enregistrements qui ont "1" dans les cellules.

Table$ = "SELECT * From WHY_Open_Cases_YTD WHERE WHY_Open_Cases_YTD.[APIC Member] = 1;"
Set RST = myDB.OpenRecordset(Table$)

Veuillez me conseiller sur ce que je fais de mal. Lorsque je débogue le message, j'obtiens le message suivant Set RST = myDB.OpenRecordset (Table$) est mis en évidence.

1voto

HansUp Points 53234

Sur mes systèmes Access 2003 et 2007, la description complète de l'erreur #3464 est " Mauvaise correspondance du type de données dans l'expression des critères. " Le moteur de la base de données se plaint de l'instruction SQL que vous lui demandez d'utiliser.

Si [APIC Member] est un type de données texte au lieu d'un type de données numériques, ajoutez des guillemets autour de la valeur à comparer.

Table$ = "SELECT * From WHY_Open_Cases_YTD WHERE [APIC Member] = '1';"

0voto

Christian Specht Points 15907

Le message "Data Type Mismatch" me fait penser que vous ouvrez le mauvais type de Recordset.
myDB.OpenRecordset() s'attend à ce qu'un DAO.Recordset et votre RST est probablement un ADODB.Recordset .

Voir cette réponse pour une explication plus approfondie :
Ouvrir un Recordset dans Access 2003/2007

0voto

Essayez

Table$ = "SELECT * From WHY_Open_Cases_YTD WHERE '[APIC Member]' = '1';"

J'ai eu le même problème avec DAO, et il s'avère qu'il n'accepte pas la requête SQL tant que le nom du champ n'est pas cité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X