MS Access VBA - 不知何故没有通过 OpenArgs,总是 NULL
Posted
技术标签:
【中文标题】MS Access VBA - 不知何故没有通过 OpenArgs,总是 NULL【英文标题】:MS Access VBA - somehow not getting OpenArgs passed, always NULL 【发布时间】:2020-04-08 13:01:59 【问题描述】:这似乎是一件非常简单的事情,我相信我的编码是正确的 - 但出于某种原因,我将 me.openargs 设置为 NULL。
在 form1 上的按钮点击事件中调用代码:
Private Sub Command0_Click()
DoCmd.OpenForm "frmGetLetter", , , , , , "CA14-09"
End Sub
被调用代码上的表单打开事件:
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
strLetterName = Me.OpenArgs
Else
strLetterName = "MISC-02"
End If
me.Openargs 始终为 NULL - 我在这里缺少什么?
【问题讨论】:
您是否确保在调用此表单之前已关闭表单? 改用Form_Load()
。
Open 和 Load 事件都对我有用。如果表单 2 已经打开,将执行 OpenForm 命令,但不会填充 OpenArgs,并且无论如何都不会执行 Load 和 Open 事件。
我无法复制问题;你的代码在我的机器上工作。我建议微软修复从头开始重建表单。
感谢 Erik A 和 June7 的回答,问题是我在打电话时已经打开了表单!我不知道那个怪癖。
【参考方案1】:
正如 Erik A 和 June7 所怀疑的那样,我调用的表单已经打开。如果我之前没有打开 DoCmd.Openform,一切都会按预期工作。
非常感谢!
【讨论】:
以上是关于MS Access VBA - 不知何故没有通过 OpenArgs,总是 NULL的主要内容,如果未能解决你的问题,请参考以下文章
通过 VBA 在 MS Access 中自动链接/刷新 ODBC 链接表