Excel VBA Type ODBC Mismatch dans l'expression

J'ai 2 feuilles de calcul Excel:

  1. GUI.xlsm
  2. Database.xlsm

Database.xlsm est utilisé comme database et GUI.xslm contient des formulaires, etc. et des requêtes Database.xlsm utilisant ADO / SQL pour get des données.

J'exécute le SQL suivant à partir de GUI.xlsm pour interroger les tables dans Database.xlsm:

SELECT * FROM (([Repair_Items$] ri INNER JOIN [RefData_Job_Groups$] jg ON ri.RI_JG_ID = jg.JG_ID) INNER JOIN [RefData_Products$] prd ON ri.RI_PRD_ID = prd.PRD_ID) INNER JOIN [RefData_Vat_Rates$] vr ON ri.RI_VR_ID = vr.VR_ID WHERE ri.RI_REP_ID = 8 

Lorsque vous exécutez le SQL ci-dessus, j'ai l'erreur suivante:

entrez la description de l'image ici

Après avoir étudié plus loin cette erreur se produit dans le scénario suivant:

  1. Lorsque le file Database.xlsm est FERME et il n'y a PAS d'loggings dans la table Repair_Items (feuille de calcul), c'est-à-dire que la table est vide
  2. Lorsque le file Database.xlsm est OUVERT et il n'y a PAS d'loggings de données (en dehors des en-têtes) dans la table Repair_Items (feuille de calcul), c'est-à-dire que la table est vide

Fait intéressant, la requête SQL ci-dessus s'exécute bien sans aucune erreur, dans le scénario suivant:

  1. Lorsque le file Database.xlsm est FERMÉ et qu'il existe des loggings qui correspondent aux critères (RI_REP_ID = 8) dans la table Repair_Items (feuille de calcul)
  2. Lorsque le file Database.xlsm est FERME et il n'y a aucun critère correspondant aux loggings dans la table Repair_Items (feuille de calcul), mais il existe au less 1 rangée de données non correspondant aux critères
  3. Lorsque le file Database.xlsm est OUVERT et qu'il existe des loggings qui correspondent aux critères (RI_REP_ID = 8) dans la table Repair_Items (feuille de calcul)

Quelqu'un peut-il aider et expliquer pourquoi cela se produit? J'ai besoin d'exécuter le code sans avoir besoin d'ouvrir le file Database.xlsm.

Merci