【发布时间】:2021-03-05 06:06:35
【问题描述】:
如果满足一系列复杂的逻辑,我正在尝试使用 SQL 将打开表单 [Forms]![frmNewServiceSessionPopUp]![Service Access ID] 上的当前记录的字段 [tblServiceSession].[First Prebooked] 更新为 TRUE。
这是我迄今为止生成的 SQL:
SELECT tblServiceSession.REQUESTID, tblServiceSession.[FIRST PREBOOKED]
FROM tblServiceSession
WHERE (((tblServiceSession.[FIRST PREBOOKED])=True) AND (((([tblServiceSession].[RequestID])=[Forms]!
[frmNewServiceSessionPopup]![RequestID]))=
Any (SELECT tblServiceSession.[FIRST PREBOOKED]
FROM tblServiceSession
WHERE tblServiceSession.[FIRST
PREBOOKED] = true)));
因此,上述 SQL 使用“ANY”并查询一系列共享相同 [requestID] 的记录,然后仅过滤 [First Preebooked] = TRUE 的记录。
我想要做的是让上面的 SQL 查询产生一个真/假值,然后使用结果来确定是否运行下面的更新查询。基本上,如果上述查询中返回任何记录(TRUE),则不执行任何操作(ELSE)(FALSE),运行以下 SQL:
UPDATE tblServiceSession SET tblServiceSession.[FIRST PREBOOKED] = True
WHERE (((tblServiceSession.[SERVICE ACCESS ID])=Eval("Forms!frmNewServiceSessionPopUp!cboServiceAccessID"))
AND ((tblServiceSession.ATTENDED)<>"counsellor rescheduled"
Or (tblServiceSession.ATTENDED)<>"counsellor cancellation")
AND ((tblServiceSession.[SERVICE TYPE])="scheduled") AND ((tblServiceSession.[SERVICE PROVIDED])="individual"
Or (tblServiceSession.[SERVICE PROVIDED])="Family"
Or (tblServiceSession.[SERVICE PROVIDED])="Couple"));
上面的 SQL 是一个简单的更新查询,带有一些限定条件,用于更新同一打开表单 [Forms]![frmNewServiceSessionPopUp]![Service Access ID] 上当前记录的 [First Prebooked] 字段
非常感谢任何帮助。
【问题讨论】:
-
您在使用 VBA 吗?你的代码是什么?对第一个查询进行记录计数并相应地进行。使用 DCount() 域聚合函数或打开记录集。
-
为什么需要 UPDATE 查询来编辑显示在表单上的记录?为什么不只是
Me.[First Prebooked] = True?
标签: sql ms-access sql-update any