【发布时间】:2010-10-12 14:27:25
【问题描述】:
以下函数用于评估由过程 CheckEventDataIntegrity 调用的日期。这仅适用于事件,但现在我想添加部件号和事件类型。意味着它应该使用事件和零件号评估日期。我该怎么做??
'-----------------------------
'-----------------------------
' Function : EvaluateDates
' Purpose : flags date sequencing errors, called by CheckEventDataIntegrity
'-----------------------------
Private Function EvaluateDates(et As String)
Dim varx As Variant
On Error GoTo EvaluateDates_Error
varx = DLookup("[EventDate]", "tblEventLog", "[TrackingNumber] = '" & Me!TrackingNumber & "' And [EventTypeSelected] = '" & et & "'")
If IsNull(varx) Then ' predecessor event does not exist
displayMsgBox = _
MsgBox("No '" & et & "' event has been Recorded. Please correct.", _
vbCritical)
EvaluateDates = False
Exit Function
End If
If varx > Me!EventDate Then ' predecessor event exists but date is after date being posted
displayMsgBox = _
MsgBox("Chronological Error. Previously posted '" & et & "' event has date stamp that is later than date stamp of completion event you are now attempting to post. Please verify date of event you are now posting. If it is correct than contact admin.", _
vbCritical)
EvaluateDates = False
Exit Function
End If
EvaluateDates = True
On Error GoTo 0
Exit Function
EvaluateDates_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure EvaluateDates of VBA Document Form_frmEventLog_Input"
End Function
由 CheckEventDataIntegrity 过程调用如下:
'-------------- '----------------------------- ' 过程:CheckEventDataIntegrity ' 目的:验证是否遵循流程逻辑,这会检查排序 '----------------------------- 函数 CheckEventDataIntegrity(fl1 作为布尔值) On Error GoTo CheckEventDataIntegrity_Error
Do While fl1 = True
'事件类型#1a If Me!EventTypeSelected = "1a Assign - To Checker Queue" 然后 If EvaluateDates("1 Receive NEW from Detailer") = False Then ' wrapper 尚未分配给 Checker CheckEventDataIntegrity = False 退出函数 别的 ' CheckEventDataIntegrity = True 退出做 万一 万一 '事件类型#2 If Me!EventTypeSelected = "2 ReV - Assignment" 那么 If EvaluateDates("1 Receive NEW from Detailer") = False Then ' 包装器尚未分配给审阅者 CheckEventDataIntegrity = False 退出函数 别的 退出做 万一 结束如果
----
--------
-----
fl1 = 假 环形 '没有失败的测试 CheckEventDataIntegrity = True
错误转到 0 退出函数 CheckEventDataIntegrity_Error: MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure CheckEventDataIntegrity of VBA Document Form_frmEventLog_Input" 结束函数
我可以在评估函数中添加零件编号如下:
Private Function EvaluateDates(et As String, pn As String)
varx = DLookup("[EventDate]", "tblEventLog", "[TrackingNumber] = '" & Me!TrackingNumber & "' And [EventTypeSelected] = '" & et & "' And [PartNumber] = '" & Pn & "'")
但是如何在 CheckEventDataIntegrity 过程中实现呢?
【问题讨论】:
-
今晚我会做噩梦,因为这些事件类型字符串中的代码。
-
第二个代码 sn-p 不完整,因为没有适用于 Exit Do 的循环。如果没有完整的代码上下文,我们无法真正回答您的问题。
-
循环更新....请查看
-
这不是一个关于具体问题的问题,用一个简化的例子来展示问题。更多的是尝试让其他人修复您的生产代码。
-
如果你想让我看看你的代码,至少要学会格式化它。我懒得自己格式化。