首页 > 解决方案 > MS Access:使用列表框从不同的 Access 数据库中选择和导入表

问题描述

我有一个主 Access db,它将某些表导出到不同的 Access db(称为 Results_backup)。我希望有一种方法可以将其中一个表从 Results_backup 导入主数据库,而不是期望用户转到外部数据等等。

理想情况下,我的表单上有一个列表框,向用户显示 Results_backup 中名称中包含“ETR”的所有表。然后用户可以在列表框中选择一个表,单击一个按钮,然后将该表导入主数据库。

到目前为止,我的工作是这样的:

Private Sub Form_Load()
Dim AccObject as Access.AccessObject
For each accObject in CurrentData.AllTables
If accObject like "*ETR*" then
me.listobjects.additem "ETR: " & accobject.name
End if
Next
End Sub

这只会从当前数据库 (CurrentData.AllTables) 中引入表。那么有没有办法在不同的数据库上做到这一点,而不是活动数据库?

提前感谢您的任何指导!

标签: ms-access

解决方案


有几种方法: 1.可以从系统表中查询

SELECT [name]
FROM msysObjects IN 'b:\Results_backup.mdb'
WHERE [name] Like '*ETR*' AND Type=1;
  1. 您可以修改示例代码

    Private Sub Form_Load()
        Dim tdTable As TableDef
        Dim DB as Database
        Set DB = OpenDatabase("b:\Results_backup.mdb")
        For Each tdTable In DB.TableDefs
            If tdTable.Name like "*ETR*" then
                me.listobjects.additem "ETR: " & tdTable.Name
            End if
        Next
        ' clean up
        DB.close
        Set DB = nothing
    End Sub
    

推荐阅读