基于条目日期的 Microsoft Access DLookup
Microsoft Access DLookup based on Entry Date
我是 Microsoft Access 的新手,一直在努力解决一个问题。
我正在使用基于 table (UpdatedFiles).
的表格来搜索申请号
我正在尝试让表格显示给定申请号的最新输入状态。但是,当我尝试这样做时,结果总是调出给定申请号上最早输入的状态。
我的表单包含在保存记录后更新输入日期 (ENTRYDT) 的代码。
我基本上是在搜索申请号(APPID)时尝试使用最新的ENTRYDT。 APPID 是 table 的主键。
我的代码如下所示:
Private Sub SearchCommand_Click()
Dim strfilapp As String
Dim strcheck As Variant
strfilapp = "[APPID] = " & "'" & Me!APPID & "'"
strcheck = DLookup("[APPID]", "UpdatedFiles", strfilapp)
If Not IsNull(strcheck) Then
On Error Resume Next
[APPID] = DLookup("[APPID]", "UpdatedFiles", strfilapp)
[LN] = DLookup("[LN]", "UpdatedFiles", strfilapp)
[FN] = DLookup("[FN]", "UpdatedFiles", strfilapp)
[PAPERAPP] = DLookup("[PAPERAPP]", "UpdatedFiles", strfilapp & "[ENTRYDT]" >= # LATEST #)
On Error GoTo 0
Else
Me.APPID = ""
MsgBox ("No file with an hyperlinked paper application found for your search. Searching for a file without...")
strcheck = DLookup("[APPID]", "InitialFiles", strfilapp)
If Not IsNull(strcheck) Then
On Error Resume Next
[APPID] = DLookup("[APPID]", "InitialFiles", strfilapp)
[LN] = DLookup("[LN]", "InitialFiles", strfilapp)
[FN] = DLookup("[FN]", "InitialFiles", strfilapp)
On Error GoTo 0
Else
Me.APPID = ""
MsgBox ("No file found for your search. Try again.")
Me.SearchField.SetFocus
End If
End If
End Sub
当我执行 APPID 搜索时,我一直在获取第一个输入数据库的应用程序,而不是最新的(基于 ENTRYDT)。
我试过将 ENTRYDT 添加到 [PAPERAPP] 行,作为 DLookup 中的参数,但似乎无法弄清楚该怎么做。你能帮帮我吗?
谢谢!
如果您希望 PAPERAPP 与最近的关联 - 如 Max() - 给定 APPID 的日期,那可能需要另一个域聚合函数。
[PAPERAPP] = DLookup("[PAPERAPP]", "UpdatedFiles", strfilapp & " AND [ENTRYDT] = #" & _
DMax("ENTRYDT", "UpdatedFiles", "APPID='" & [APPID] & "'") & "#")
我是 Microsoft Access 的新手,一直在努力解决一个问题。
我正在使用基于 table (UpdatedFiles).
我正在尝试让表格显示给定申请号的最新输入状态。但是,当我尝试这样做时,结果总是调出给定申请号上最早输入的状态。
我的表单包含在保存记录后更新输入日期 (ENTRYDT) 的代码。
我基本上是在搜索申请号(APPID)时尝试使用最新的ENTRYDT。 APPID 是 table 的主键。
我的代码如下所示:
Private Sub SearchCommand_Click()
Dim strfilapp As String
Dim strcheck As Variant
strfilapp = "[APPID] = " & "'" & Me!APPID & "'"
strcheck = DLookup("[APPID]", "UpdatedFiles", strfilapp)
If Not IsNull(strcheck) Then
On Error Resume Next
[APPID] = DLookup("[APPID]", "UpdatedFiles", strfilapp)
[LN] = DLookup("[LN]", "UpdatedFiles", strfilapp)
[FN] = DLookup("[FN]", "UpdatedFiles", strfilapp)
[PAPERAPP] = DLookup("[PAPERAPP]", "UpdatedFiles", strfilapp & "[ENTRYDT]" >= # LATEST #)
On Error GoTo 0
Else
Me.APPID = ""
MsgBox ("No file with an hyperlinked paper application found for your search. Searching for a file without...")
strcheck = DLookup("[APPID]", "InitialFiles", strfilapp)
If Not IsNull(strcheck) Then
On Error Resume Next
[APPID] = DLookup("[APPID]", "InitialFiles", strfilapp)
[LN] = DLookup("[LN]", "InitialFiles", strfilapp)
[FN] = DLookup("[FN]", "InitialFiles", strfilapp)
On Error GoTo 0
Else
Me.APPID = ""
MsgBox ("No file found for your search. Try again.")
Me.SearchField.SetFocus
End If
End If
End Sub
当我执行 APPID 搜索时,我一直在获取第一个输入数据库的应用程序,而不是最新的(基于 ENTRYDT)。
我试过将 ENTRYDT 添加到 [PAPERAPP] 行,作为 DLookup 中的参数,但似乎无法弄清楚该怎么做。你能帮帮我吗?
谢谢!
如果您希望 PAPERAPP 与最近的关联 - 如 Max() - 给定 APPID 的日期,那可能需要另一个域聚合函数。
[PAPERAPP] = DLookup("[PAPERAPP]", "UpdatedFiles", strfilapp & " AND [ENTRYDT] = #" & _
DMax("ENTRYDT", "UpdatedFiles", "APPID='" & [APPID] & "'") & "#")