【问题标题】:Link two Microsoft Access tables via vba通过 vba 链接两个 Microsoft Access 表
【发布时间】:2016-02-15 16:28:51
【问题描述】:

我正在尝试链接不同数据库中的两个表。我所做的是创建一个新表,然后尝试将DESCRIPTION 属性更改为另一个数据库中特定表的路径。

Set dbs = CurrentDb
thepath = "DATABASE=P:\Cadworx P&ID Implementation\3 Piping\P&IDs Jesus Test\Testproject\myTest.mdb;TABLE=Service"

Set tdf = dbs.TableDefs("ThisTable")

On Error Resume Next

tdf.Properties("Description") = "DATABASE=P:\Cadworx P&ID Implementation\3 Piping\P&IDs Jesus Test\Testproject\myTest.mdb;TABLE=Service"

If Err.Number = 3270 Then
Set prp = tdf.CreateProperty("Description", _
    dbText, thepath)
tdf.Properties.Append prp
End If

这并没有给我想要的结果,因为链接从未建立。有人可以告诉我这是正确的方法还是有更好的方法?感谢您的帮助。

【问题讨论】:

  • 描述无关,真的和你的问题描述无关!
  • 思科,我明白了。有没有办法做我想做的事?
  • Link Table via DAO的可能重复
  • 如果你只搜索那么一点,你就会发现,所以我投票赞成关闭。

标签: ms-access vba


【解决方案1】:

您可以使用 Access 的内置功能相当轻松地链接到其他 Access 数据库中的表。

根据您使用的 Access 版本,应该可以选择导入/链接到其他数据源,包括另一个 Access 数据库:

这将启动导入/链接向导。浏览到要链接到的数据库文件:

指定是否要导入或链接到您浏览到的数据库文件中的数据对象(在本例中为链接):

选择要链接的对象:

链接对象将出现在您的导航窗格中,并带有一个蓝色箭头,表示它们是链接对象,而不是本地存储到当前数据库的内容:

然后,您应该能够像使用数据库中的任何其他类型的表一样使用链接表。

【讨论】:

  • Matt,感谢您的回复,但我想在用户表单中执行此操作,以便用户可以选择源数据库文件,然后它会为他做所有事情。我能够通过 VBA 做到这一点。
【解决方案2】:

这是问题的解决方案。

Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim strDbFile As String
Dim strConnect As String
Dim strSourceTableName As String
Dim strLinkName As String
Dim f As Object
Dim varfile As Variant

Set f = Application.FileDialog(3)   'Windows Explorer, 3 means file picker.  4 Is for folder, 1 to open dialog box, 2 to save as
f.show                              'Show Windows explorer

With f
f.allowmultiselect = False
For Each varfile In .selecteditems
    strDbFile = varfile                     'File selected assigned to   source database file
Next
End With

strSourceTableName = "Service"                                                                      'Source Table
strLinkName = "Service"                                                                          'Final table name once link has been established

strConnect = "MS Access;PWD=" & strPassword & ";DATABASE=" & strDbFile

Set dbs = CurrentDb
Set tdf = dbs.CreateTableDef

tdf.Connect = strConnect                                                                           'Establish link between databases
tdf.SourceTableName = strSourceTableName
tdf.Name = strLinkName
dbs.TableDefs.Append tdf

正如古斯塔夫所说,解决方案就是他发布的内容。刚接触,所以我真的不知道 DAO 库是什么。无论如何感谢您的帮助!

【讨论】:

    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多