1

我是 Microsoft Access 的新手,一直试图解决一个问题。
我正在使用表单来搜索基于表(UpdatedFiles)的申请号。

我试图让表格显示给定申请号的最新输入状态。但是,当我尝试这样做时,结果总是会提取给定申请号上最早输入的状态。

我的表单有在保存记录后更新输入日期 (ENTRYDT) 的代码。

当我搜索应用程序编号(APPID)时,我基本上是在尝试使用最新的 ENTRYDT。APPID 是表的主键。

这是我的代码的样子:

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 作为 DLookup 中的参数添加到 [PAPERAPP] 行,但似乎无法弄清楚如何去做。你能帮帮我吗?

谢谢!

4

1 回答 1

1

如果您希望 PAPERAPP 与给定 APPID 的最新日期相关联 - 如 Max() - 日期,则可能需要另一个域聚合函数。

[PAPERAPP] = DLookup("[PAPERAPP]", "UpdatedFiles", strfilapp & " AND [ENTRYDT] = #" & _
            DMax("ENTRYDT", "UpdatedFiles", "APPID='" & [APPID] & "'") & "#")
于 2021-02-22T23:28:21.763 回答