次の関数は、プロシージャ 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 ' 目的 : プロセス ロジックに従っていることを確認します。これは順序付けをチェックします '--------------------- -------- Function CheckEventDataIntegrity(fl1 As Boolean) On Error GoTo CheckEventDataIntegrity_Error
Do While fl1 = True
'イベント タイプ #1a If Me!EventTypeSelected = "1a Assign - To Checker Queue" Then If EvaluateDates("1 Receive NEW from Detailer") = False Then ' ラッパーは Checker に割り当てられていません CheckEventDataIntegrity = False Exit Function Else ' CheckEventDataIntegrity = True Exit Do End If End If 'イベント タイプ #2 If Me!EventTypeSelected = "2 ReV - Assignment" Then If EvaluateDates("1 Receive NEW from Detailer") = False Then ' ラッパーはレビュアーに割り当てられていません CheckEventDataIntegrity = False Exit関数 Else 終了 Do 終了 If 終了 If
----
------
-----
fl1 = False Loop '何もテストに失敗しません CheckEventDataIntegrity = True
On Error GoTo 0 Exit Function CheckEventDataIntegrity_Error: MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure CheckEventDataIntegrity of VBA Document Form_frmEventLog_Input" End Function
評価された関数で次のように部品番号を追加できます。
Private Function EvaluateDates(et As String, pn As String)
varx = DLookup("[EventDate]", "tblEventLog", "[TrackingNumber] = '" & Me!TrackingNumber & "' And [EventTypeSelected] = '" & et & "' And [PartNumber] = '" & Pn & "'")
しかし、CheckEventDataIntegrity プロシージャでどのように実装できますか??