2014-06-20 74 views
-2

我怎樣才能改變我的VBA代碼,以便它會設法在SQL查詢運行臨時表 這是我的VBA代碼(存儲過程包含臨時表)不能在VBA使用SQL臨時表(不能刪除表)

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 
+1

你在問什麼?目前尚不清楚 – MikkaRin

回答

0

真的,它不是您的VBA代碼生成或使用臨時表 - 這是您的存儲過程。同樣,它是您的存儲過程返回臨時表。

舉例來說,如果你想從一個存儲過程返回值的集合你只需選擇它作爲最後的輸出...

SELECT 
    myfield1, 
    myfield2, 
    myfield_n 
FROM 
    @mydefinedtable 
WHERE 
    condition = requirement 

所以,也許你需要確定,首先,什麼您的存儲過程實際上是。

也許Ben Nadel可以比我更好地詳細說明。

0

而不是刪除表格,爲什麼不刪除所有的數據。您不能刪除正在使用的表格。這個解決方案可能不適合你,但是如果你將數據放在表格中但是保留表格,這基本上是一樣的效果。