通过ADO Access连接查询excel文件,表存储在哪里?

时间:2015-10-14 21:19:09

标签: vba ms-access access-vba

虽然之前我使用Access ADO连接查询了Excel工作表,但我只想到ADO连接是抽象的 - 也就是说,Access实际上并没有用我的工作表创建一个表,一旦我关闭了,所有内容都“消失了”连接。

当我第一次尝试显式创建一个唯一的表时,我的想法发生了变化,即使在关闭连接并退出子表后,该表仍然存在于某个地方。在我的目录中存储此表的位置除了通过另一个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

1 个答案:

答案 0 :(得分:1)

当您打开与Excel工作簿的ADO连接,然后执行CREATE TABLE语句时,您创建的“表”是一个新的工作表。

打开 Book1.xlsx ,查看代码创建的工作表。

当我使用Access 2010和我的工作簿运行代码时,新工作表名为 _tbl 。我不明白为什么这个名字以下划线为前缀。如果这是一个问题,您可以在以后重命名该表。