我在选项卡控件中的子表单上有许多计算控件 . 子表单是显示 生产环境 活动截止日期的清单,以及显示活动是否完成的复选框 . 每个子表单都有两个隐藏的文本控件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