在表单中嵌入另一个Access DB

时间:2013-07-08 09:01:41

标签: forms ms-access

我有许多从主数据库查询的从属数据库。我希望能够通过主数据库的形式监视并快速访问从属DB及其表单。

我希望我可以在主数据库中的表单上创建一个选项卡控件,每个从数据库的MS Access窗口都嵌入到该选项卡的每个页面中。

这可能吗?

2 个答案:

答案 0 :(得分:1)

您必须设计一些方法来创建一个表单,显示您感兴趣的内容,并将表单实例连接到每个Slave DB,并将其放在每个选项卡上。

答案 1 :(得分:0)

您无法在子窗体内插入应用程序窗口。 要使用其他dbs的形式,您可以在其中创建标准模块并插入返回表单对象的公共函数。因此,如果您在slave db中有一个表单“frmTest”,您想直接在master db中打开,那么您可以编写一个这样的公共函数:

Public Function GetFrmTest1() As Form_frmTest
   Set GetFrmTest1 = New Form_frmTest
End Function

此方法仅在模块中包含代码时才有效,如果不是这种情况,则可以使用通用“Access.Form”作为类型而不是“Form_frmTest”。

在主数据库中,您现在可以打开此表单。为此,您可以在VBA编辑器中打开参考窗口,然后单击“浏览”,然后搜索从属数据库的位置并将其添加为参考。

在主数据库中,您现在可以使用以下命令打开它:

Dim frm As Access.Form  ' Here you can only use the generic Form object
Set frm = GetFrmTest1
frm.Visible = True

这将打开主数据库中的外部表单。但是,当然您需要一个函数将表单对象返回到任何从属数据库中的主数据库。您还可以使用以下一个函数返回任何表单:

Public Function GetForm(strFormName As String) As Access.Form
   Select Case strFormName
      Case "frmTest1"
         Set GetForm = Form_frmTest1
      Case "frmTest2"
         Set GetForm = Form_frmTest2
   ...
   End Select
End Function

因此,您可以在主数据库中使用每个从数据库的表单,但您必须自己进行导航。

另一种可能性是在主数据库中创建新表单,并仅将链接表添加到从数据库,因此您只能监视某些数据。这里的优点是你可以自己决定在显示数据时你想做什么 - 另一个解决方案意味着你在奴隶数据库中打开包含所有“主页功能”的表单,而无需控制内容。