虽然之前我使用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
答案 0 :(得分:1)
当您打开与Excel工作簿的ADO连接,然后执行CREATE TABLE
语句时,您创建的“表”是一个新的工作表。
打开 Book1.xlsx ,查看代码创建的工作表。
当我使用Access 2010和我的工作簿运行代码时,新工作表名为 _tbl 。我不明白为什么这个名字以下划线为前缀。如果这是一个问题,您可以在以后重命名该表。