我在表单上有几个标签,每个标签有几个字段。如果只更改了特定选项卡中的一个或多个字段,我希望执行一个过程。
详细说明,在子表单SubForm
上有一个日期字段Date1
和几个标签,其中一个是Tab2
。在Tab2
上有几个字段,包括日期字段Date2
。我想要做的是复制Date1
Date2
的值Date2
如果Tab2
已空白并且{{1}}中的至少一个字段已更改值,即用户输入了数据。我在想OnDirty事件,只是当整个表单变脏时才需要触发它,但只有当特定标签中的那些字段变得脏时才会触发它。
答案 0 :(得分:0)
我通过标记星号Tab2
标识了标签"*"
中的字段。然后我通过调用表单BeforeUpdate事件来检查标记字段中是否有更改。
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As Control
Dim myForm As Form
Set myForm = Forms!frm_MainForm!subfrm_subForm.Form
For Each ctl In myForm
If InStr(1, ctl.Tag, "*") <> 0 Then
If ctl.Value <> ctl.OldValue Then
If IsNull(myForm!Date2) Then
myForm!Date2 = Format(myForm!Date1, "Short Date")
End If
End If
End If
Next
End Sub