【问题标题】:How to create a correlated update subquery in MS-Access?如何在 MS-Access 中创建关联更新子查询?
【发布时间】:2010-07-23 21:26:40
【问题描述】:

我正在对一些表进行规范化,并且我已将代理主键添加到名为 Exams 的表中,该表包含考试标题。

以前,子表只会使用考试的全名作为 FK 条目。

现在我已经在表格中添加了一个自动编号的字段,我想更新使用它的条目,例如问题所在的表格,因为有超过一千个问题。

每次找到名称后,通过修改后的更新完成每项考试需要一段时间,因此我决定在 UPDATE 查询中编写相关子查询。查询如下所示:

UPDATE tblExamQuestion
SET ExamID = (SELECT ExamID FROM tblExam WHERE ExamName = tblExamQuestion.ExamName);

不幸的是,一旦我编写了子查询部分,Access 拒绝给我Run 选项,只显示设计视图数据表视图SQL查看该查询的。但是,它仍然在对象资源管理器中显示 Update Query 图标。

是否有适当的方法来编写此内容以使 Access 不会感到不安?

使用:Access 2007 与 Access 2003 MDB 数据库。

【问题讨论】:

    标签: ms-access correlated-subquery


    【解决方案1】:

    为什么不:

    UPDATE tblExamQuestion
    INNER JOIN tblExam 
    ON tblExam.ExamName = tblExamQuestion.ExamName
    SET tblExamQuestion.ExamID = tblExam.ExamID 
    

    【讨论】:

    • 是的,确实如此。您应该检查您的索引以查看您是否在 tblExamQuestion 中的 ExamID 上设置了唯一索引。如果这不是问题,您会收到什么错误消息?
    • 没有错误信息,和以前一样——没有Run按钮。这是一个包含所有相关信息的屏幕截图。 imgur.com/k1Tly.png 看到什么遗漏了吗?
    • 单击“设计”选项卡,这是运行按钮所在的位置。
    • 不是设计视图,功能区上的设计选项卡。您发布的视图位于“主页”选项卡上。
    • 哦,太棒了。 XD 现在我知道了关于 Access 的另一个怪癖!感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多