VBA - 从 Excel 更新 Access 文件的链接表

Posted

技术标签:

【中文标题】VBA - 从 Excel 更新 Access 文件的链接表【英文标题】:VBA - Update Linked Table of an Access file from Excel 【发布时间】:2018-07-25 08:45:17 【问题描述】:

我正在尝试使用 Excel 文件中的 VBA 编码从 Access 文件“Hey.accdb”中更改链接表地址。

我在我的 Excel 文件中编写了下面的脚本,当我运行它时它会提示错误“需要对象”。有人可以帮我解决这个问题。我已经盯着它太久了。谢谢。

Sub RunMacroinAccesswithPara2()

Set Db = CreateObject("Access.Application")
        Db.OpenCurrentDatabase "D:\Database1\Hey.accdb"
        Db.Visible = True
        Db.AutomationSecurity = msoAutomationSecurityLow

    DoCmd.TransferDatabase TransferType:=acLink, _
        DatabaseType:="Microsoft Access", _
        DatabaseName:="V:\Reporting\Quarterly\2018Q2\JP\Data\04\Database\Valuation_Database.mdb", _
        ObjectType:=acTable, _
        Source:="Valuation_Database_Adjusted", _
        Destination:="Valuation_Database_Adjusted"

End Sub

【问题讨论】:

【参考方案1】:

DoCmd 属于 Access 应用程序对象。

所以用

Db.DoCmd.TransferDatabase ' etc.

编辑

要更新链接,您需要TableDef 对象,设置其.Connect 属性并运行.RefreshLink

见Linked table ms access 2010 change connection string

【讨论】:

嗨安德烈!这行得通。但是,它会创建一个重复的表。无论如何我可以更新现有表的链接(不使用删除表然后传输数据库)?

以上是关于VBA - 从 Excel 更新 Access 文件的链接表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用sql语句和vba将数据从MS-Access导入excel power查询?

从 Access 2010 VBA 打开 Excel 2010 文件

VBA - 从 Access (QueryTable) 生成 Excel 文件

VBA 将 Excel 文件从 Access 保存为 .xls

从 Access 2010 VBA 控制 Excel 工作簿

使用 VBA 将数据从 Excel 导出到 Access