我已经在这行代码上工作了三天,以多种不同的方式对其进行了配置,但错误不会消失。目前,代码为:
FindFirststr = " '(" & [AssignRms]![GatheringID].Value & " = " & GathID & vbNewLine
FindFirststr = FindFirststr & " AND '" & SlpCh & "' = '" & OpnDesc & "'" & vbNewLine
FindFirststr = FindFirststr & " AND Nz(#" & OpnArr & "#))" & vbNewLine
FindFirststr = FindFirststr & " OR (#" & [AssignRms]![Arrival].Value & "# > #" & OpnDep & "#);'"
Debug.Print FindFirststr
.FindFirst FindFirststr
错误开启.FindFirst
。我在With rs
这段代码之前有一个声明。所有变量均已定义,所有记录集均已正确打开。
产品Debug.Print
:
'(6 = 5 AND '4 人带浴室的房间' = '4 人带浴室的房间' AND Nz(#8/20/2021#)) OR (#9/15/2020# > #8/ 22/2021#);'
显然,该记录与标准不匹配,但我假设FindFirst
它将用于查找匹配的记录。我找不到丢失的操作员。我错过了什么?
好的...经过多次审查,我发现我的 FindFirststr 配置不正确。我在寻找常量而不是变量。我已将其更正为以下内容:
FindFirststr = ".[GatheringID] = GathID "
FindFirststr = FindFirststr & " AND [Assgnrst]![SleepingChoice] = .[Desc] "
FindFirststr = FindFirststr & " AND ((IsNull (.[Arrival]))"
FindFirststr = FindFirststr & " OR ([Assgnrst]![Arrival] > .[Departure]))"
现在,此更改会生成 FindFirst 将使用的语句,但是,我仍然收到缺少运算符错误。
我在 FindFirst 处理之前放入了 Debug.Print 以查看 FindFirststr 文本,一切看起来都不错:
.[GatheringID] = GathID AND [Assgnrst]![SleepingChoice] = .[Desc] AND ((IsNull (.[Arrival])) OR ([Assgnrst]![Arrival] > .[Departure]))
我没有看到错误。我没看到吗?