Zde je úryvek kódu VBA, který jsem použil k volání uložené procedury DB2. Stejná technika by měla fungovat pro jakýkoli příkaz DDL. Chcete-li to provést, vytvořte předávací dotaz a vložte svůj CREATE TABLE #tblname...
příkaz jako jeho text SQL.
DŮLEŽITÉ:Poté otevřete list vlastností dotazu a nastavte vlastnost 'Return Records' na "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
Všimněte si, že pravděpodobně nebudete muset měnit text SQL. Pokud se struktura tabulky nikdy nezmění, můžete to nechat v dotazu def.
Výzvou pro vás je, že musíte použít stejné připojení pro všechny operace s dočasnou tabulkou. Ve chvíli, kdy je připojení uzavřeno, vaše dočasná tabulka zmizí, protože je to místní dočasná tabulka a je viditelná pouze pro toto jedno připojení. Tomu se můžete vyhnout použitím '##', globálních dočasných tabulek, pokud k tomu máte oprávnění.