【问题标题】:Ms Access vba to open datasheet view of table in another databaseMs Access vba 在另一个数据库中打开表的数据表视图
【发布时间】:2020-07-19 14:21:36
【问题描述】:

此语句将打开当前数据库中命名表的数据表视图:

DoCmd.OpenTable sTablename, acViewNormal

有没有办法为另一个数据库中的表实现相同的结果?

我有一个表单,我可以在其中选择一个 Access 数据库,然后在下拉菜单中填充该数据库中的所有表。我希望能够从该列表中选择一个表,并在普通视图和设计视图中打开所选表的数据表视图。

任何帮助将不胜感激。

迈克尔

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    可以通过以下方式完成。

    1. 创建到另一个数据库的链接表。
    2. 打开链接表。
    Private Sub OpenTableInAnotherDatabase()
        Dim sDatabasePath As String
        sDatabasePath = "another_database.accdb"
        
        Dim sTablename As String
        sTablename = "foo"
        
        Dim db As Database
        Dim tbl As TableDef
        
        ' Create link table
        Set db = CurrentDb
        Set tbl = db.CreateTableDef(sTablename)
        
        tbl.Connect = ";DATABASE=" & sDatabasePath
        tbl.SourceTableName = sTablename
        db.TableDefs.Append tbl
    
        ' Open link table
        DoCmd.OpenTable sTablename, acViewNormal
    End Sub
    

    您可以使用DeleteObject删除创建的链接表。

    DoCmd.DeleteObject acTable, "foo"
    

    如果你打算在另一个窗口中打开表格,下面的代码可以工作。

    ' Note this variable is public so that the opened window doesn't disappear when the procedure exits. 
    Public app As New Access.Application
    
    Sub OpenAnotherDatabaseTable()
        ' Open another database in a new Access process
        app.Visible = True
        app.OpenCurrentDatabase "another_database.accdb"
        
        Dim sTablename As String
        sTablename = "foo"
        
        app.DoCmd.OpenTable sTablename, acViewNormal
    End Sub
    

    【讨论】:

    • @MiguelVelez 你应该接受答案。把它打勾,让访问者知道,这个答案解决了你的问题。
    猜你喜欢
    • 2013-06-30
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多