Aqui está um trecho de código VBA que usei para chamar um procedimento armazenado do DB2. A mesma técnica deve funcionar para qualquer instrução DDL. Para fazer isso, crie uma consulta de passagem e coloque seu
CREATE TABLE #tblname...
instrução como seu texto SQL. IMPORTANTE:Em seguida, abra a folha de propriedades da consulta e defina a propriedade 'Retorna registros' como "Não".
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
Observe que você provavelmente não precisará alterar seu texto SQL. Você pode simplesmente deixar isso na consulta def se a estrutura da tabela nunca mudar.
O desafio para você é que você deve usar a mesma conexão para qualquer operação na tabela temporária. No minuto em que a conexão for fechada, sua tabela temporária desaparecerá porque é uma tabela temporária local e só é visível para essa conexão. Você pode evitar isso usando '##', tabelas temporárias globais, se tiver direitos para fazer isso.