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的主要内容,如果未能解决你的问题,请参考以下文章

MS ACCESS---全部通过VBA刷新

PHP ODBC 数据类型不匹配 (MS Access)

通过 VBA 在 MS Access 中自动链接/刷新 ODBC 链接表

MS Access 2013:通过 VBA 使用 MS Word 的语法检查

MS Access:导入规范无法通过 VBA

MS-Access 获取字段值,通过 VBA 函数运行,并发送到 SQL