Ausführen der SQL Server Pass-Through-Abfrage Aus Access VBA
Ich habe eine UPDATE
pass-through-Abfrage gespeichert, in Access 2007. Wenn ich Doppelklick auf die pass-through-Abfrage erfolgreich ausgeführt. Wie kann ich diese Abfrage zum ausführen von VBA? Ich möchte es laufen, wenn meine "splash-screen" geladen.
Derzeit bin ich über den folgenden code:
CurrentDb.Execute "Q_UPDATE_PASSTHROUGH", dbSQLPassThrough
Aber ich bekomme die folgende Meldung:
Pass-through-Abfrage enthält alle Verbindungsinformationen und ich habe bestätigt die SQL-syntax korrekt ist, indem Sie es mehrmals, so dass nicht sicher, was ich vermisst in meinem VBA-Aufruf.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die QueryDef
Execute
Methode:Ich glaube nicht, sollten Sie brauchen, um explizit die dbSQLPassThrough option hier, aber Sie können versuchen, wenn Sie es wollen:
Ich bestätigen, dass die QueryDef
Execute
ist die empfohlene Methode, um Ihr Ziel zu erreichen.Jedoch, ich weisen darauf hin, dass in einem ähnlichen Fall mit Access 2010 unter Verwendung
dbSQLPassThrough
für dieOptions
parameter verursacht eineRun-time error '3001': Invalid Argument
.Ich habe vor kurzem lief in das gleiche problem. Während die oben genannten
Execute
Methode funktioniert für die meisten Fälle, einige Leute (mich eingeschlossen) erleben eineRun-time error '3001': Invalid Argument
bei Verwendung der parameter dbSQLPassThrough. Dies war auch Gegenstand der Antwort über mir und passiert selbst in der einfachsten SQL-Anweisungen.Für diejenigen, die das gleiche problem haben, empfehle ich die
OpenQuery
Methode als alternative.Einen gültigen Ersatz für den folgenden code
wäre
Ich weiß, dieser thread ist 4 Jahre alt, aber die Suche nach einer Lösung für das nicht funktionierende
Execute
Methode auf Google bringt Sie direkt zu diesem thread, die ist, warum ich dachte, es wäre nützlich, fügen Sie eine alternative Lösung, die dieses problem gelöst für mich.Execute
- Anweisung funktioniert, wenn ich das weglassen der dbSQLPassThrough - parameter, aber aus meiner noch sehr begrenzten Verständnis von Access-VBA ich dachte es ist notwendig, es zu benutzen, weil sonst die schwere SQL-Anweisung ausgeführt werden, auf meinem lokalen Rechner statt auf dem SQL-Server..Execute
eine gespeicherte Abfrage, die eine PT-Abfrage (d.h. hat Sie einen Connect-string), müssen Sie nicht den parameter - Zugriff kennt, es ist ein PT-Abfrage und wird nicht versuchen, führen Sie es mit dem Access-DB-engine. In den meisten Fällen wäre es nicht trotzdem funktionieren, da die SQL-Dialekte unterscheiden Zugreifen und die server-DB.