1

DLookupの内部からクエリ パラメータを設定したいクエリがあります。

checkDate_Count_ForDangerousTickets のクエリ:

SELECT count(*) AS numRelatedTickets
FROM DangrousTicketList
WHERE DateValue(backUpDate)>=DateValue(StartDate) And DateValue(backUpDate)<=DateValue(EndDate)
GROUP BY backUpDate;

dlookupクエリ パラメータを設定してクエリを呼び出しますbackUpDate

DLookUp("[numRelatedTickets]", "[checkDate_Count_ForDangerousTickets]", _ 
"[backUpDate]=" & Format("01-27-2013", "\#mm\/dd\/yyyy\#"))

そして、私はエラーが発生します:

Run-time Error '2471'
The expression you entered as a query parameter produced this error: 
'backUpDate'

backUpDate何らかの理由でクエリ パラメータが設定されていないようです。

4

1 に答える 1

3

HansUp のコメントと私自身のいじくり回しに基づいて、パラメーター クエリを実行するには、小さな VBA 関数を使用する必要があると思います。

Public Function LookupDangerousTicketCount(backUpDate As Date) As Variant
    Dim qdf As DAO.QueryDef, rst As DAO.Recordset
    Set qdf = CurrentDb.QueryDefs("checkDate_Count_ForDangerousTickets")
    qdf!backUpDate = backUpDate
    Set rst = qdf.OpenRecordset(dbOpenSnapshot)
    If rst.BOF And rst.EOF Then
        LookupDangerousTicketCount = Null
    Else
        LookupDangerousTicketCount = rst!numRelatedTickets
    End If
    rst.Close
    Set rst = Nothing
    Set qdf = Nothing
End Function

次に、呼び出しの代わりにDLookup()使用できます

LookupDangerousTicketCount(#2013-01-27#)
于 2013-10-29T21:10:23.657 に答える