Hier ist ein Ausschnitt aus VBA-Code, den ich verwendet habe, um eine gespeicherte DB2-Prozedur aufzurufen. Die gleiche Technik sollte für jede DDL-Anweisung funktionieren. Erstellen Sie dazu eine Pass-Through-Abfrage und geben Sie CREATE TABLE #tblname...
ein -Anweisung als ihren SQL-Text.
WICHTIG:Öffnen Sie dann das Eigenschaftenblatt der Abfrage und setzen Sie die Eigenschaft 'Returns Records' auf "No".
Dim qdf As QueryDef
Set qdf = CurrentDb.QueryDefs("qry_SP_CHANGE_COLUMN")
qdf.Connect = CurrentDb.TableDefs("SCHEMA_tblName").Connect
qdf.SQL = "call SCHEMA.SP_CHANGE_COLUMN(...)"
qdf.Execute dbFailOnError
qdf.Close
Set qdf = Nothing
Beachten Sie, dass Sie Ihren SQL-Text wahrscheinlich nicht ändern müssen. Sie können das einfach in der Abfragedefinition belassen, wenn sich die Tabellenstruktur nie ändert.
Die Herausforderung für Sie besteht darin, dass Sie für alle Operationen mit der temporären Tabelle dieselbe Verbindung verwenden müssen. Sobald die Verbindung geschlossen wird, verschwindet Ihre temporäre Tabelle, da es sich um eine lokale temporäre Tabelle handelt, die nur für diese eine Verbindung sichtbar ist. Sie können dies vermeiden, indem Sie '##', globale temporäre Tabellen, verwenden, wenn Sie die Rechte dazu haben.