用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

 

posted @ 2022-01-17 13:40  NightSun  阅读(601)  评论(0编辑  收藏  举报