0

我已经在这行代码上工作了三天,以多种不同的方式对其进行了配置,但错误不会消失。目前,代码为:

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]))

我没有看到错误。我没看到吗?

4

0 回答 0