Ms access 是否将表单OpenArgs错误传递为NULL?

Ms access 是否将表单OpenArgs错误传递为NULL?,ms-access,vba,Ms Access,Vba,我试图以对话框的形式打开表单,并在OpenArgs属性中传递字符串。无论我尝试什么,我都会得到一个无效的空错误用法 表格没有打开。它在设计模式下也不开放。有人能帮我解释一下吗 这是电话线: DoCmd.OpenForm strTmpForm, acNormal, , , , acDialog, "Hi" 这是目标窗体上的窗体打开子窗体 Private Sub Form_Open(Cancel As Integer) MsgBox Me.OpenArgs End Sub 你确定表单没有

我试图以对话框的形式打开表单,并在
OpenArgs
属性中传递字符串。无论我尝试什么,我都会得到一个无效的空错误用法

表格没有打开。它在设计模式下也不开放。有人能帮我解释一下吗

这是电话线:

DoCmd.OpenForm strTmpForm, acNormal, , , , acDialog, "Hi"
这是目标窗体上的窗体打开子窗体

Private Sub Form_Open(Cancel As Integer)
    MsgBox Me.OpenArgs
End Sub

你确定表单没有打开和隐藏吗?这似乎是可能的,因为通常的对话框模式通常涉及隐藏对话框表单,以允许在调用方法中恢复控制

可以肯定的是:

If SysCmd(acSysCmdGetObjectState, acForm, strTmpForm) <> 0 Then
    DoCmd.Close acForm, strTmpForm
End If
如果SysCmd(acSysCmdGetObjectState、acForm、strTmpForm)为0,则
文档关闭acForm、strTmpForm
如果结束

如果这不是问题,那么我会问您是否可以发布整个调用方法,而不是调用线路。

可能还有另一个错误,如数据错误。如果您使用MsgBox Nz(Me.OpenArgs),表单是否正常工作?这里有一些信息:这似乎是一种不可靠的向表单传递信息的方法。您最好在窗体上创建一个属性,并在显示它之前设置它。可能是YAY的重复!!!!在奥利弗和菲欧之间,你救了我!!!!我整天都在搞这个。我一直在关闭表单,所以我仍然认为这不是问题所在。为了以防万一,我添加了“If SysCmd…”逻辑。但我认为真正起作用的是NZ()函数。我不知道为什么会这样,但确实如此!谢谢,谢谢,谢谢。。。。