问题描述
我需要更新基于查询的表。查询 (tmp_Assign) 是一个直接的单表查询,用于提取特定于位置和日期的数据。导致错误的代码如下。
Set Assgnrst = CurrentDb.OpenRecordset("tmp_Assign",dbOpenDynaset)
Set SlpOccrst = CurrentDb.OpenRecordset("tmp_Occ",dbOpenDynaset)
Set OpenRms = CurrentDb.OpenRecordset("tmp_Open",dbOpenDynaset)
do while Not Assgnrst.EOF
SleepChoice = Assgnrst.SleepingChoice
Arrive = Assgnrst.Arrival
.
.
.
MemID = Assgnrst.MemberID
RmID = OpenRms.RmNum
'End With
'Add room # to member's gathering record
strsql = "Update [Assgnrst] " _
& "Set [RmNum] = '" & RmID & "' WHERE [GatheringID] = " & GathID & " And " _
& "[EventYr] = " & EvntYr & " And [MemberID] = " & MemID & ";"
DoCmd.Runsql (strsql)
在运行 DoCmd.Runsql 之前,strsql 包含:
Update [Assgnrst] Set [RmNum] = '22A1' WHERE GatheringID = 5 And EventYr = 2021 And [MemberID] = 4290;
我已将 strsql 复制到 Access Create Query sql 中,它按预期工作(使用表所基于的查询名称)。
我将查询作为表打开的原因是因为我尝试在查询上使用更新代码(所有三个都需要更新),但在所有三个上都遇到了类似的错误。我将查询作为表打开,其他两个工作正常。这个没有。
省略号表示执行 FindFirst 选择开放房间的代码。它工作正常。我不理解错误,因为这整个部分是基于 Assgnrst 表的 DO 循环,而 SleepChoice 变量是从 Assgnrst 表设置的。语句中的变量已正确声明和设置。除了 RmID 之外,变量都是数字,并且所有字段都存在于表中。为什么无法识别表?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)