我创建了一个包含3个子表单的表单,以显示用户的详细信息和用户拥有的库存。该表单使用户能够更新显示的详细信息。因此,每个子表单都有一个“保存”和“撤消”按钮。我正在尝试在父窗体上创建一个“全部清除”按钮,撤消所有3个子窗体中的所有更改。
我真的不想重新输入3“撤销”按钮中使用的相同代码,那么有没有办法利用3个按钮的Onclick功能?
我首先尝试了以下一个子表单:
Private Sub ClearAllParentForm_Click()
Me.Subform1.Form.clearButton_Click
End Sub
但是,表单会调用子表单的beforeupdate事件(一个提示用户保存更新记录的消息框)。我也尝试将代码更改为Me.Subform1.Form.Undo,这会产生同样的问题。是否有某些地方我做错了或者我的概念错了?
很抱歉,最近才刚开始使用Microsoft Access 2007,所以很困惑。
答案 0 :(得分:1)
您需要三个与按钮的click事件分开的子例程。让每个按钮调用各自的子程序或功能。然后单个按钮就可以调用这三个按钮。
答案 1 :(得分:0)
如果您在工作表模块中有以下内容:
Private Sub ClearButton_Click()
'ClearButton code here.
End Sub
您需要将ClearButton代码移动到常规模块中的Sub。因此,在新模块中,您需要以下内容:
Sub clearbtn()
'ClearButton code here.
End Sub
现在,回到Worksheet模块中,您可以通过一行按钮来调用此代码:
Private Sub ClearButton_Click()
Call clearbtn
End Sub
对事件触发器进行这些更改将允许您在代码中的其他位置使用它们。这里隐含的教训是你不能从VBA中的其他地方调用事件触发器子,但是可以从事件触发器中调用其他子。