我们怎样才能建立一个链接表所在的路径不存在了吗?
我们需要建立一个链接表在在客户环境中不具备的MS Access安装(Access数据库简单地用作喷气通过后端)最终使用的接入。
我们可以使用在客户现场射流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
线并运行它,它执行罚款,但检查链接表管理器中访问新的路径没有采取。
任何解决这个? 我们不希望使用映射驱动器。
如果你没有一个名为实际的服务器Kilimanjaro
您的本地网络上,那么你可以编辑hosts
您的机器上的文件,以“傻瓜”它以为有一个。 我只是想这与Access 2010和它的工作对我来说:
我打开Windows命令提示符“以管理员身份”,并发出命令
notepad C:\Windows\System32\drivers\etc\hosts
我添加了一行在像这样的文件的末尾
192.168.1.109 Kilimanjaro
其中192.168.1.109
是我的本地测试服务器的IPv4地址(本名是不同的东西)。 我保存更改并退出记事本。
然后在访问我能调整的.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
由于真有一个文件名为Database1.accdb
对UNC路径的访问没有任何问题有了它,我可以在数据表视图像往常一样打开链接的表。
最后,我们把我们的网络上的备用虚拟机并暂时改名为符合我们客户的服务器(称为\\Kilimanjaro
为例)。 然后,我们可以没有任何问题创建链接的表都没有。
这是不能令人满意,不雅。 但我会接受这个答案,因为它是我们的解决方案,但如果有谁有整洁的把戏来了,我很乐意听到它。