gpt4 book ai didi

vba - 当子表单绑定(bind)到表时,是否可以在子表单的表单上引发事件?

转载 作者:行者123 更新时间:2023-12-02 02:39:56 27 4
gpt4 key购买 nike

我有一个带有子表单的表单,该子表单绑定(bind)到临时表。临时表包含数据透视表的结果,但我希望用户能够编辑该数据透视表,然后将更改推送到源表。

为此,我想在 AfterInsertAfterUpdateDelete 上触发事件,以便我可以对更改进行操作。据我了解,子窗体的 form 属性是指子窗体绑定(bind)到表时的临时数据表窗体。但是,我无法使用此临时表单来引发任何事件。

MCVE:

我有一个数据库,其中有一个表 Table1、一个表单 Form1,并且该表单有一个未绑定(bind)的子表单控件。

我有一个类,Class1,具有以下代码:

Private WithEvents subformForm As Access.Form

Public Sub Init(subformControl As Access.SubForm)
Set subformForm = subformControl.Form
subformForm.OnCurrent = "[Event Procedure]"
End Sub

Private Sub subformForm_Current()
MsgBox "Current!"
End Sub

表单 Form1 具有以下代码:

Private c1 As Class1

Private Sub Form_Load()
sub1.SourceObject = "Table.Table1"
Set c1 = New Class1
c1.Init sub1
End Sub

但是,当我在该子表单中移动记录、添加记录以及执行任何操作时,subformForm_Current 事件永远不会触发。

最佳答案

这是因为子表单对象不是具有代码模块的表单。因此,事件过程无处可运行。

因此,使用表作为源在 datasheetview 中创建一个表单,没有代码模块,并将其用作子表单:

  • 您的代码将被忽略。

现在,调整表单以具有代码模块:

  • 您的代码按预期运行。

无论如何,这就是我在 Access 2016 中的工作方式。

关于vba - 当子表单绑定(bind)到表时,是否可以在子表单的表单上引发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51855653/

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