gpt4 book ai didi

ms-access - 将替代 OpenArgs 传递给使用 'New' 创建的 Access 表单

转载 作者:行者123 更新时间:2023-12-04 21:39:09 24 4
gpt4 key购买 nike

场景:我尝试根据 Rubberduck 的建议使用此代码创建替代 OpenArgs 属性。 ,但我无法让它发挥作用。我想我在这里遗漏了一些东西,但不知道是什么。

代码:

Public varAltOpenArgs As Variant
Dim FormX as form

Public Property Let AltOpenArgs(value As Variant)
varAltOpenArgs = value
End Property

Public Property Get AltOpenArgs() As Variant
AltOpenArgs = varAltOpenArgs
End Property

使用以下命令从此表单 ( form1 ) 打开表单的新实例:
Set frmX = New 
frmX.AltOpenArgs = "abcde"
frmX.SetFocus

问题:属性(property) AltOpenArgsForm_Open 中调用时包含一个空字符串 ("") .

有人能指出我正确的方向吗?我正在使用 Access 2010 (32)。

最佳答案

问题是,在您设置 AltOpenArgs 值的下一行代码运行之前创建新实例 ( Set frmX = New Form_MyExampleForm ) 后,所有事件都会触发。

这永远不会起作用,因为 Access 表单是由应用程序实例化的,而您实际上无法控制事件。如果你绝对不能使用内置OpenArgs ,那么你可以做这样的事情,你从 Property Let 运行一个例程:

Public Property Let AltOpenArgs(value As Variant)
varAltOpenArgs = value
FancyRoutine
End Property

Private Sub FancyRoutine()
'Do whatever fancy stuff you want to do
MsgBox AltOpenArgs
End Sub

我按照您正在尝试的方式(虽然不使用 Form_Open 事件)为子表单做一些事情。它可能看起来像这样:
Dim frm As Form_MyExampleForm
Me.SubformControl.SourceObject = "MyExampleForm"
Set frm = MainSubform.Form
frm.AltOpenArgs = "whatever you want"

关于ms-access - 将替代 OpenArgs 传递给使用 'New' 创建的 Access 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31186355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com