0

在继续我的应用程序开发过程中,我遇到了另一个有趣的问题。

在我的 MS Access 应用程序中,我使用的表单只包含两个控件 - 一个文本框和一个命令按钮。这种形式被命名为HEADER FORM

HEADER FORM用作各种其他表单的标题部分的子表单。

下图显示了子窗体及其在主窗体之一中的使用。

在此处输入图像描述

现在,我想要的是,当用户单击子表单的注销按钮时,将发生注销操作(这很好,我能够弄清楚)并且在该时间点打开的所有表单都将关闭/卸载。

我尝试使用以下代码无济于事。

Option Compare Database

Private Sub cmdHeaderLogout_Click()
    If (loggedIn = 1) Then
        loggedIn = 0
        DoCmd.Close acForm, Parent.Form
    End If
End Sub

当我尝试单击注销按钮时,控制到达上面的 DoCmd.Close 语句。并在给出以下错误消息后停止执行:

运行时错误:2498。您输入的表达式是其中一个参数的错误数据类型。

它指向Parent.Form文本。

我无法弄清楚如何引用父表单并卸载它?

4

1 回答 1

1

您应该参考当前表单的父级名称,即:

DoCmd.Close acForm, Me.Parent.Name

DoCmd.Close 的第二个参数接受一个字符串。

您还可以遍历表单集合。

FormsCount = Forms.Count - 1

For i = FormsCount To 0 Step -1
    If Forms(i).Name <> Me.Name Then
        DoCmd.Close acForm, Forms(i).Name
    End If
Next
于 2012-11-06T11:52:38.060 回答