用Excel VBA 修改Access链接表的链接
用Excel作为前端,Access作为后端储存数据。
Access数据库拆分后,引用的Table是以链接的方式储存在一个Access中。
开发Excel过程中,希望以本地的数据库开发,这样修改时不影响使用者的正常使用,这就需要备份迁移数据库的操作。
复制过来的数据库,链接是不会变的,所以希望迁移后,用Excel的VBA修改Access链接表的链接。
申请变量时,个人习惯使用后期绑定,即CreateObject,但是经过多番查找,发现网上对此信息很少,最后终于查到了。需要DAO。DBEngine.120。详情如下:
Sub ChangeTableConnect() Dim DBE As Object, DB As Object Dim i As Long Set DBE = CreateObject("DAO.DBEngine.120") Set DB = DBE.OpenDatabase(Path & "\xxxx.accdb") '查看所有Table的链接 For i = 0 To DB.TableDefs.Count - 1 Debug.Print i, DB.TableDefs(i).Name, DB.TableDefs(i).Connect Next '修改链接并刷新 With DB.TableDefs("Name") .Connect = ";DATABASE=" & Path & "\Target.accdb" .RefreshLink End With DB.Close Set DB = Nothing Set DBE = Nothing End Sub