2012-09-12 54 views
4

我有一个链接到Excel电子表格的数据库。当手动添加链接表时,我没有任何问题(我只是按照小向导创建完美的表)。我想自动执行使用VBA:在MS Access中附加链接表时的运行时错误

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 

不幸的是我得到运行时的最后一行错误3264和它说,“没有定义字段 - 不能追加TableDefs或索引。”我甚至不知道为什么需要最后一行(从文档中我发现它是将表添加到数据库的TableDefs集合中)。任何关于解决错误的建议?

回答

4

你缺少:

tdf.SourceTableName = "Sheet1$" 

或者任何范围或工作表的名称,你想作为表来使用。

所以,在所有的,这对我的作品:

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 

您也可以使用TransferSpreadsheet的

+0

@ Remou链接的Excel - 你已经做了一遍!我觉得我应该把你加入我的节日贺卡名单。 :) 我很感激。出于好奇,表格名称末尾的“$”是什么?我用它,它的工作 - 只是好奇。 – rryanp

+1

$表示使用整张表格来获取表格,尽管它只选择使用的范围。替代方案将是一个命名范围,或者说'Sheet1 $ a1:x24' – Fionnuala