我在选项卡控件中的子表单上有许多计算控件 . 子表单是显示 生产环境 活动截止日期的清单,以及显示活动是否完成的复选框 . 每个子表单都有两个隐藏的文本控件txtAllDone和txtActionDate,它们保存下一个活动的截止日期和活动名称 . 这些是在子窗体的onCurrent事件期间计算的 . 如果子窗体上的所有活动都已完成,则txtAllDone控件设置为“Yes”,txtActionDate设置为null .

在父选项卡控件上有两个可见的文本控件,显示到期的下一个活动(txtNextAction)和它的截止日期(txtDueDate) .
这是通过检查每个子表单并计算父表单的OnCurrent事件中的数据来计算出来的 . 但是,父窗体上的txtdueDate中显示的日期通常是1900日期,因为它完成并加载子窗体完成加载之前的日期 . 我试图重新查询清单作为父窗体OnCurrent的一部分,以确保子窗体已加载并具有正确的数据,但这没有任何区别 .

在计算计算控件时,有什么方法可以指示吗?这是父表单OnCurrent事件中的代码 -

'update the checklists
Me.Contract_Sales_Checklist.Requery
Me.Contract_Eng_Checklist.Requery
Me.Contract_Production_Checklist.Requery
Me.Contract_Client_Checklist.Requery

'update the Next Action box on the checklist
If Me.ContractStatus = "Cancelled" Or IsNull(Me.ContractNo) Then
Me.txtNextAction = Null
Me.txtDueDate = Null
Else

If (Me.[contract sales checklist].Form.txtAllDone = "Yes" And
    Me.[Contract Eng Checklist].Form.txtAllDone = "Yes" And
    Me.[Contract Production Checklist].Form.txtAllDone = "Yes" And
    Me.[Contract Client Checklist].Form.txtAllDone = "Yes") Then
    Me.txtNextAction = "All actions completed"
    Me.txtDueDate = Null
Else
    If Me.[Contract Client Checklist].Form.txtAllDone <> "Yes" Then
    Me.txtNextAction = Me.[Contract Client Checklist].Form.txtAllDone
    Me.txtDueDate = Me.[Contract Client Checklist].Form.txtActionDate
    End If

    If Me.[Contract Production Checklist].Form.txtAllDone <> "Yes" And
    (Me.[Contract Production Checklist].Form.txtActionDate < Me.txtDueDate Or
    IsNull(Me.txtDueDate)) Then
        Me.txtNextAction = Me.[Contract Production Checklist].Form.txtAllDone
        Me.txtDueDate = Me.[Contract Production Checklist].Form.txtActionDate
    End If

    If Me.[Contract Eng Checklist].Form.txtAllDone <> "Yes" And
    (Me.[Contract Eng Checklist].Form.txtActionDate < Me.txtDueDate Or
    IsNull(Me.txtDueDate)) Then
        Me.txtNextAction = Me.[Contract Eng Checklist].Form.txtAllDone
        Me.txtDueDate = Me.[Contract Eng Checklist].Form.txtActionDate
    End If

    If Me.[contract sales checklist].Form.txtAllDone <> "Yes" And
    (Me.[contract sales checklist].Form.txtActionDate < Me.txtDueDate Or
    IsNull(Me.txtDueDate)) Then
        Me.txtNextAction = Me.[contract sales checklist].Form.txtAllDone
        Me.txtDueDate = Me.[contract sales checklist].Form.txtActionDate
    End If
End If
End If
me.repaint