MS Access Pass-Through-Abfrage mit "Rückgabewerte: Nein" trennt ODBC Connect Str

Dies ist eine sehr seltsame und ich kann nicht scheinen, jemanden im Web zu finden, der es erlebt hat, aber ich versuche, eine SQL server UPDATE gespeicherte Prozedur (gibt 0 datasätze) über eine MS Access 2010 Pass-Through-Abfrage auszuführen , aber wenn ich Returns Records: No setze Returns Records: No es scheint, meine ODBC Connect String zu schneiden und wirft einen Fehler!

(sanitized Strings in parens, keine parens in tatsächlichen String verwendet)

ODBC Connect Str: ODBC;DSN=(dsn name);Description=(description);Trusted_Connection=Yes;DATABASE=(example database name)

Zuerst die Einstellung Returns Records: Yes erlaubt es, die Abfrage erfolgreich auszuführen (bestätigt durch SQLserver Mgt Studio), aber Throws-Fehler: Pass-through query with ReturnsRecords property set to True did not return any records.

Dann setzen Returns Records: No wirft Fehler The Microsoft Access database engine cannot find the input table or query 'ODBC;DSN=(dsn name);Description=(description);Trusted_Connection=Yes;DA'. Make sure it exists and that its name is spelled correctly. The Microsoft Access database engine cannot find the input table or query 'ODBC;DSN=(dsn name);Description=(description);Trusted_Connection=Yes;DA'. Make sure it exists and that its name is spelled correctly.

Weil es wahrscheinlich zählt, ist meine DSN 8 character lang, Beschreibung ist 8 character, und database ist 21 character. Ich glaube nicht, dass sie übermäßig lang sind, und die DB ist in der Produktion und wird von mehreren Klienten verwendet, so dass die Veränderung / Verkürzung an diesem Punkt unmöglich ist.

Hat jemand anderes das erlebt oder kann jemand anderes reproduzieren?

Ich habe gehört, dass MS Access hat eine eingebaute harte Grenze von 255 character für die ODBC verbinden str, aber meine ist sicherlich <100!

Ich habe eine gespeicherte Abfrage namens qryPass . Es wird gesetzt, um datasätze zurückzugeben = nein.

Um das oben zu verwenden, können wir in Code gehen:

 With CurrentDb.QueryDefs("qryPass") .SQL = "Exec myStoreProc" .Execute End With 

In oben habe ich natürlich die Pass-obwohl sql, aber wenn Sie nicht brauchen, um die SQL / t-SQL auf der Fliege, dann können Sie die oben gespeicherten Pass-obwohl wie folgt ausführen:

 CurrentDb.QueryDefs("qryPass").Execute 

Da Sie nicht die 2-3 Zeilen Code, wie Sie diese gespeicherte Prozedur aufrufen, dann können wir nur erraten, wie auf Ihre Fragen. Versuche aber den obigen Ansatz.

Auch vor dem Ausführen der Abfrage in Code, verwenden Sie 100% der Benutzeroberfläche, erstellen Sie die PT-Abfrage und versuchen Sie es auszuführen (mit returns records = no).