-2

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

详细地说,一个子表单SubForm上有一个日期字段Date1和几个选项卡,其中一个是Tab2. 上Tab2有几个字段,包括一个日期字段Date2。我想要做的是复制Date1on Date2IF的值Date2已留空并且至少其中一个字段Tab2已更改值,即用户已输入数据。我在想一个 OnDirty 事件,只是我不需要在整个表单变脏时触发它,而只有在特定选项卡中的那些字段变脏时才需要触发它。

4

1 回答 1

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
于 2013-09-10T02:17:59.040 回答