有没有办法检查选项卡中的字段是否已更改值?

时间:2013-09-09 15:33:38

标签: vba ms-access

我在表单上有几个标签,每个标签有几个字段。如果只更改了特定选项卡中的一个或多个字段,我希望执行一个过程。

详细说明,在子表单SubForm上有一个日期字段Date1和几个标签,其中一个是Tab2。在Tab2上有几个字段,包括日期字段Date2。我想要做的是复制Date1 Date2的值Date2如果Tab2已空白并且{{1}}中的至少一个字段已更改值,即用户输入了数据。我在想OnDirty事件,只是当整个表单变脏时才需要触发它,但只有当特定标签中的那些字段变得脏时才会触发它。

1 个答案:

答案 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