微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决运行时错误“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 举报,一经查实,本站将立刻删除。