在 MS Access 中附加链接表时出现运行时错误

rry*_*anp 5 ms-access vba ms-access-2003

我有一个链接到 Excel 电子表格的数据库。手动添加链接表时,我没有问题(我只是按照小向导,完美地创建了表)。我正在尝试使用 VBA 自动化:

Dim db as DAO.Database
Dim tdf as TableDef

Set db = CurrentDB
Set tdf = db.CreateTableDef("linked_table")
tdf.Connect = "Excel 8.0;HDR=YES;IMEX=2;DATABASE=" & Me.txtExcelFile  ' references form field
db.TableDefs.Append tdf  ' Here's where I get a run time error
Run Code Online (Sandbox Code Playgroud)

不幸的是,我在最后一行收到运行时错误 3264,它说:“没有定义字段——无法附加 TableDefs 或索引。” 我什至不确定为什么需要最后一行(从我发现的文档中似乎是将表添加到数据库的 TableDefs 集合中)。有关解决错误的任何建议?

Fio*_*ala 4

你缺少:

tdf.SourceTableName = "Sheet1$"
Run Code Online (Sandbox Code Playgroud)

或者您希望用作表格的任何范围或工作表名称。

所以,总而言之,这对我有用:

Dim db as DAO.Database
Dim tdf as TableDef

Set db = CurrentDB
Set tdf = db.CreateTableDef("linked_table")
tdf.SourceTableName = "Sheet1$"
tdf.Connect = "Excel 8.0;HDR=YES;IMEX=2;DATABASE=" & Me.txtExcelFile  ' references form field
db.TableDefs.Append tdf
Run Code Online (Sandbox Code Playgroud)

您还可以使用 TransferSpreadsheet 链接 Excel

  • $ 表示使用整个工作表来获取表格,尽管它只选择使用的范围。替代方案是命名范围或“Sheet1$a1:x24” (2认同)