我试图使用SQL来更新字段[tblServiceSession]。[First prebook]在open form[Forms]![frmNewServiceSessionPopUp]![Service Access ID]
上,如果满足复杂的逻辑序列,则当前记录为TRUE。
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"并查询一系列共享相同[requesttid]的记录,然后只过滤那些[First preebooking] = TRUE的记录。
我想要做的是让上面的SQL查询产生一个true/false值,然后使用结果来确定是否运行下面的更新查询。基本上,如果在上面的查询中返回任何记录(TRUE),那么不执行任何其他操作(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]
字段。任何帮助都非常感谢。
下面的注释帮助我在第二个查询中实现了DCount()函数并引用了第一个查询:"你使用VBA吗?你的代码是什么?对第一个查询进行记录计数,并进行相应的处理。使用DCount()域聚合函数或打开记录集。">
我能够将更新查询的标准设置为DCount(),并且仅在小于1时更新!
谢谢每一个人。