2015-10-14 27 views
1

雖然我之前查詢過使用Access ADO連接的Excel工作表,但我只想到ADO連接爲抽象 - 也就是說,Access實際上並未用我的工作表創建表,並且一旦關閉連接,所有內容都「消失」 。通過ADO Access連接查詢excel文件,表存儲在哪裏?

當我第一次嘗試明確創建一個唯一表時,即使在關閉連接並退出子表後,表仍然存在於某處,我的想法發生了變化。在我的目錄中,這個表存儲在哪裏,除了通過另一個VBA連接刪除表之外,還有其他方式來查看/刪除它嗎?

你可以看到我的意思,如果你運行這個子兩次。第一次工作正常,並且第二次出現消息說表已經存在。

Sub stquestion() 

Dim acctcon As New ADODB.Connection 
Dim acctrec As New ADODB.Recordset 

With acctcon 
    .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\name\Documents\Book1.xlsx;" & _ 
          "Extended Properties=" & Chr(34) & "Excel 12.0 Xml;HDR=YES" & Chr(34) & ";" 
    querystr = "CREATE TABLE [tbl1] (cost Numeric(10));" 
    .Open 
    .Execute querystr 
    .Close 
End With 

End Sub 
+0

打開Book1.xlsx查看由您的代碼創建的新工作表。 – HansUp

+0

哈哈!哦,哇!我不會猜到的,謝謝!沿着這些線......你知道如何在這個連接中創建一個臨時表,因爲我通常在SQL中使用的'#'語法給出了一個語法錯誤,就像'CREATE TEMPORARY [tbl1]' MSDN頁面https://msdn.microsoft.com/en-us/library/bb177893(v=office.12).aspx – apdm

+0

實際上,似乎Access根本不支持臨時表,與MSDN頁面相反讓我相信 – apdm

回答

1

當您打開一個ADO連接到一個Excel工作簿,然後執行CREATE TABLE聲明中,「表」創建一個新的工作表。

打開Book1.xlsx查看您的代碼創建的工作表。

當我使用Access 2010和我的工作簿運行代碼時,新工作表被命名爲_tbl。我不明白爲什麼這個名字前面加了下劃線。如果這是一個問題,您可以在之後重新命名該表。