You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在运行的Database2.accde中打开Database1.mda的外部窗体?

解决ACCDE中打开MDA插件窗体的问题

问题分析

你的代码创建了新的Access应用实例,插件窗体在这个新实例中运行,当前ACCDE的Forms集合无法访问到它,且新实例默认隐藏,导致看不到窗体。另外,.mda作为旧格式Access加载项,应使用OpenDatabase而非OpenCurrentDatabase来关联。

修正后的代码

直接在当前ACCDE进程中打开MDA的窗体,无需创建新实例:

Private Sub btnMostrarFormularioExterno_Click()
    Dim extDb As DAO.Database
    Dim frm As Access.Form
    
    ' 打开外部MDA数据库
    Set extDb = OpenDatabase(CurrentProject.Path & "\AA.mda")
    
    ' 在当前Access实例中打开外部窗体
    DoCmd.OpenForm "Formulario2", acDialog, , , , , extDb.Name
    
    ' 遍历当前实例的窗体集合验证
    For Each frm In Forms
        MsgBox frm.Name
    Next frm
    
    ' 关闭外部数据库连接
    extDb.Close
    Set extDb = Nothing
End Sub

关键说明

  • 使用DAO.Database打开MDA,避免创建新的Access进程,确保窗体在当前ACCDE界面显示
  • DoCmd.OpenForm的最后一个参数指定外部数据库名称,让Access从该库加载窗体
  • 若需要非模态显示,将acDialog改为acNormal即可

内容的提问来源于stack exchange,提问作者pfigueredo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 23:51:04