【问题标题】:Setup a linked table in Access for a path which doesn't exist yet?在 Access 中为尚不存在的路径设置链接表?
【发布时间】:2014-02-12 19:14:29
【问题描述】:

我们如何设置一个路径不存在的链接表?

我们需要在 Access 中设置一个链接表,以便最终在没有安装 MS Access 的客户环境中使用(Access 数据库只是通过 Jet 用作后端)。

我们可以在客户站点上使用 Jet 和 DDL 在他们的 .mdb 中创建/编辑/删除表,但据我所知,您无法使用 DDL 创建链接表。

理论上我们可以在这里创建链接表(我们可以访问的地方)并使用 VBA 指定“无效”路径(假设乞力马扎罗山是我们网络上不存在的客户服务器):

Function SetLinkedTablePath(tableName As String)
    Dim cdb As DAO.Database
    Set cdb = CurrentDb
    cdb.TableDefs(tableName).Connect = ";DATABASE=\\Kilimanjaro\Foo-Data.mdb"
    cdb.TableDefs(tableName).RefreshLink
    Set cdb = Nothing
End Function

但是,.RefreshLink 行尝试验证路径,因此在我们的网络上失败了。

如果我们注释掉 .RefreshLink 行并运行它,它会执行得很好,但是在 Access 中检查 Linked Table Manager 并没有采用新路径。

有什么解决办法吗?我们不希望使用映射驱动器。

【问题讨论】:

  • 为什么不删除链接表并重新创建它而不是依赖RefreshLink?
  • @ta.speot.is 那么我们如何使用尚不存在的路径重新创建它......这就是我要问的
  • 我只是在说,如果您正在编辑现有的链接表并且RefreshLink 不起作用,那么您应该尝试删除链接表并重新创建它,这两种方法都不涉及调用@987654327 @。 microsoftaccessexpert.com/Microsoft-Access-Code-LinkTable.aspx
  • @ta.speot.is 我已经测试了您链接到的代码。诚然,您链接到的代码不使用.RefreshLinks,但它肯定会尝试验证myDB.TableDefs.Append 行上的路径,并且如果路径不存在则无法创建链接表
  • 好吧,如果这样做很关键,那么也许您可以弄乱系统表并在那里创建/编辑您的链接表。但是,不能保证它会起作用。 stackoverflow.com/questions/3994956/…

标签: ms-access ddl jet linked-tables


【解决方案1】:

如果您的本地网络上没有名为Kilimanjaro 的实际服务器,那么您可以在您的计算机上编辑hosts 文件,以“愚弄”它以为有一个。我刚刚在 Access 2010 上尝试过,它对我有用:

我以“管理员身份”打开了一个 Windows 命令提示符并发出了命令

notepad C:\Windows\System32\drivers\etc\hosts

我像这样在文件末尾添加了一行

192.168.1.109   Kilimanjaro

192.168.1.109 是我的本地测试服务器的 IPv4 地址(其真实名称有所不同)。我保存了更改并退出了记事本。

然后在 Access 中,我可以调整链接表的 .Connect 属性以指向 \\Kilimanjaro,如下所示:

Dim cdb As DAO.Database, tbd As DAO.TableDef
Set cdb = CurrentDb
Set tbd = cdb.TableDefs("TableX")
tbd.Connect = ";DATABASE=\\Kilimanjaro\Public\Database1.accdb"
tbd.RefreshLink
Set tbd = Nothing
Set cdb = Nothing

因为在那个 UNC 路径上确实有一个名为 Database1.accdb 的文件,所以 Access 没有问题,我可以像往常一样在数据表视图中打开链接表。

【讨论】:

  • 戈德,你的回答看起来是一个很好的解决方案,也许我在做一些愚蠢的事情,但我无法让它发挥作用
【解决方案2】:

最后,我们在我们的网络上使用了一个备用虚拟机并临时将其重命名以匹配我们客户的服务器(例如,称之为\\Kilimanjaro)。然后我们就可以毫无问题地创建链接表了。

令人不满意且不雅。但我会接受这个答案,因为这是我们的解决方案,但如果有人想出一个更巧妙的技巧,我很乐意听到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    相关资源
    最近更新 更多