运行时错误“3078”:Microsoft Access 数据库引擎找不到输入表

问题描述

我需要更新基于查询的表。查询 (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 (将#修改为@)