sql - ACCESS - 如何根据 SQL SELECT ANY 语句为 false 更新特定记录中的字段
问题描述
[Forms]![frmNewServiceSessionPopUp]![Service Access ID]
如果满足一系列复杂的逻辑,我正在尝试使用 SQL 将打开表单上当前记录的字段 [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 是一个简单的更新查询,带有一些限定条件,用于更新[First Prebooked]
同一个打开表单上当前记录的字段[Forms]![frmNewServiceSessionPopUp]![Service Access ID]
很感谢任何形式的帮助。
解决方案
以下评论帮助我在第二个查询中实现 DCount() 函数并引用第一个查询:“您使用 VBA 吗?您的代码是什么?对第一个查询进行记录计数并相应地继续。要么使用 DCount()域聚合函数或打开记录集。”
我能够将更新查询的条件设置为 DCount() 并且仅在小于 1 时更新!
感谢大家。
推荐阅读
- java - 使用 SpringBoot 外部化 Spring Kafka 配置
- python - 如何使用 selenium / python 让网站中的所有下拉箭头显示其内容
- javascript - toLocateString 没有给我正确的输出
- sql - 审核 SSRS 报告以获取 SQL Server 上的最后运行时和状态
- python - Django Djoser 令牌身份验证不起作用
- javascript - JavaScript 菜单箭头问题
- javascript - 更改 HTML 拖放光标
- nix - 如何在本地 tar 文件中构建 nix 表达式?
- powershell - 使用 Powershell Core 枚举 Excel 数据透视表中的数据字段
- apache-spark - 配置javax.jdo.option.ConnectionURL有什么用?