如何更改我的vba代码,以便它能够在sql查询中运行临时表 这是我的VBA代码(存储过程包含临时表)
Sub a()
Dim connection As ADODB.connection
Dim recordset As ADODB.recordset
Dim command As ADODB.command
Dim strProcName As String 'Stored Procedure name
Dim strConn As String ' connection string.
Dim selectedVal As String
Set connection = New ADODB.connection
Set recordset = New ADODB.recordset
Set command = New ADODB.command
strConn = "Provider=SQLOLEDB.1;Persist Security Info=true;Data source =1.1.2.7\B;User ID = sa; password=a;Initial catalog=A"
connection.ConnectionString = strConn
connection.Open
command.ActiveConnection = connection
command.CommandText = "pLOAN_LIST"
command.CommandType = adCmdStoredProc
command.Parameters.Refresh
'command.Parameters(1).Value = "3"
Set recordset = command.Execute()
ThisWorkbook.Sheets("Sheet1").Cells(1, 1).CopyFromRecordset recordset
recordset.Close
Set recordset = Nothing
connection.Close
Set connection = Nothing
End Sub
答案 0 :(得分:0)
实际上,生成或使用临时表的不是您的VBA代码 - 它是您的存储过程。同样,它是您的存储过程返回临时表。
例如,如果要从存储过程返回值集,只需将其选为最后一个输出...
SELECT
myfield1,
myfield2,
myfield_n
FROM
@mydefinedtable
WHERE
condition = requirement
因此,您可能需要首先确定存储过程实际执行的操作。
也许Ben Nadel可以比我更好地详细说明这一点。
答案 1 :(得分:0)
为什么不删除所有数据,而不是删除表。您不能删除正在使用的表。此解决方案可能不适合您,但如果您将数据放在表中但保留表,它基本上是相同的效果。