Sau rất nhiều Googling, tôi đã kết thúc với macro sau mà tôi hy vọng sẽ kết nối với cơ sở dữ liệu, thả bảng tạm thời hiện có và sau đó tạo cái mới (điền vào nó, và xem kết quả).Tạo bảng tạm thời trong SQL Server 2008 bằng cách sử dụng Excel Macro (ADODB)
Dim adoCn As ADODB.Connection
Dim adoRs As ADODB.Recordset
Dim adoCm As ADODB.Command
Dim strSQL As String
Set adoCn = New ADODB.Connection
With adoCn
.ConnectionString = "Provider=SQLOLEDB;" & _
"Initial_Catalog=XXX;" & _
"Integrated Security=SSPI;" & _
"Persist Security Info=True;" & _
"Data Source=XXX;" & _
"Extended Properties='IMEX=1'"
.CursorLocation = adUseServer
.Open
End With
Set adoCm = New ADODB.Command
With adoCm
Set .ActiveConnection = adoCn
.CommandType = adCmdText
.CommandText = "IF OBJECT_ID('tempdb..#AgedProducts') IS NOT NULL DROP TABLE #AgedProducts"
.Execute
.CommandText = "CREATE TABLE #AgedProducts " & _
"(Source_Order_Number VARCHAR(255)) " & _
"INSERT INTO #AgedProducts VALUES ('AB-123-456') " & _
"SELECT * FROM #AgedProducts (NOLOCK) "
.Execute
End With
Set adoRs = New ADODB.Recordset
With adoRs
Set .ActiveConnection = adoCn
.LockType = adLockBatchOptimistic
.CursorLocation = adUseServer
.CursorType = adOpenForwardOnly
.Open "SET NOCOUNT ON"
End With
adoRs.Open adoCm
MsgBox "Recordset returned...", vbOKOnly
While Not adoRs.EOF
Debug.Print adoRs.Fields(0).Value
adoRs.MoveNext
Wend
adoCn.Close
Set adoCn = Nothing
Set adoRs = Nothing
Khi tôi chạy truy vấn tôi nhận được thông báo lỗi sau:
Run-time error '-2147217887 (80040e21)':
The requested properties cannot be supported
Dòng NOCOUNT
đến từ http://support.microsoft.com/kb/235340 (cũng như hầu hết các mã trên). Tôi đã thêm IMEX=1
để đưa vào số thứ tự tài khoản có thể có nhiều loại trong đó nhưng tôi nghi ngờ đó là nơi xảy ra sự cố.
Bất kỳ trợ giúp nào được đánh giá cao!
Cảm ơn điều này - làm việc một điều trị. Bạn có biết tại sao điều này hoạt động thay vì nỗ lực đầu tiên của tôi? –
Recodset cần biết những gì cần có trong nó, vì vậy bạn phải cung cấp mã SQL. Có một cái nhìn, ví dụ tại đây http://support.microsoft.com/kb/168336. Có nhiều phương pháp khác nhau làm thế nào để mở recodset. Chúc một ngày tốt lành. – dee