Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Access数据库的更新查询_Sql_Ms Access - Fatal编程技术网

Sql Access数据库的更新查询

Sql Access数据库的更新查询,sql,ms-access,Sql,Ms Access,我维护在Access中开发的应用程序。我必须实现一个更新查询,但我现在很困,我不明白为什么 基本上,查询必须在同一个表中的另一条记录之后更新表X中的一条记录,但我编写的查询不做任何操作,我单独测试了更新和选择,它们都可以工作,但是一起工作,没有 我希望你们中的一些人能发现我的问题 这是我写的查询,我确实删除了一些字段以避免太长,当然,您将看到的查询经过测试,以确保它不是问题中缺少的字段 UPDATE TABLE_X AS recordToUpdate, ( SELECT

我维护在Access中开发的应用程序。我必须实现一个更新查询,但我现在很困,我不明白为什么

基本上,查询必须在同一个表中的另一条记录之后更新表X中的一条记录,但我编写的查询不做任何操作,我单独测试了更新和选择,它们都可以工作,但是一起工作,没有

我希望你们中的一些人能发现我的问题

这是我写的查询,我确实删除了一些字段以避免太长,当然,您将看到的查询经过测试,以确保它不是问题中缺少的字段

UPDATE 
    TABLE_X AS recordToUpdate,
    (
    SELECT 
        DUP_C2B_From_CPL.[NUM-GrpHdr], 
        DUP_C2B_From_CPL.[NUM-LOT], 
        DUP_C2B_From_CPL.[SINGLE-SCENARIO], 
        DUP_C2B_From_CPL.EqvtAmt, 
        DUP_C2B_From_CPL.EqvtAmtCur, 
        DUP_C2B_From_CPL.EqvtAmtCurTft, 
        DUP_C2B_From_CPL.XchgRateInfExchangeRate, 
        DUP_C2B_From_CPL.XchgRateInfRateType, 
        DUP_C2B_From_CPL.XchgRateInfContractId, 
        DUP_C2B_From_CPL.ChqTp

        FROM DUP_C2B_From_CPL
    ) AS originalRecord

SET
    recordToUpdate.EqvtAmt = originalRecord.EqvtAmt, 
    recordToUpdate.EqvtAmtCur = originalRecord.EqvtAmtCur, 
    recordToUpdate.EqvtAmtCurTft = originalRecord.EqvtAmtCurTft, 
    recordToUpdate.XchgRateInfExchangeRate = originalRecord.XchgRateInfExchangeRate, 
    recordToUpdate.XchgRateInfRateType = originalRecord.XchgRateInfRateType, 
    recordToUpdate.XchgRateInfContractId = originalRecord.XchgRateInfContractId, 
    recordToUpdate.ChqTp = originalRecord.ChqTp 

WHERE
    recordToUpdate.[SINGLE-SCENARIO] = 112811
DUP_C2B_From_CPL这里是一个子查询,它正在检索我感兴趣的记录,以便我可以获取它的值来更新另一个记录

在最后一个WHERE闭包中,我对id进行了硬编码,以提高可读性,是的,它存在:

而且设计器的渲染正确,因此这方面没有错误。但正如我所说,它似乎没有更新任何东西


如果您需要更多信息,请随时告诉我。

您可以尝试以下方法

UPDATE 
  Table1 AS t1 
  INNER JOIN Table1 AS t2 
    ON t1.Field1 = t2.Field2
SET 
  T1.Field1 = t2.field1
如果没有任何连接,那么您可以像下面这样尝试

UPDATE Table1 t1 , Table1 t2
SET T1.Field1 = t2.field1
where t1.field1 = 'aa' and t2.field1 = 'bb'

嗯,出于某种原因,我不得不重新启动我的笔记本电脑,而查询现在正在运行


谢谢您的帮助。

recordToUpdate和originalRecord之间不应该有连接吗?i、 e.我想你需要一个查询才能更新。它似乎没有更新任何东西运行查询时会发生什么情况?Access是否显示0条记录已更新,或者是否有其他消息?嗨,Andre,我无法加入,因为它们之间没有唯一标识符。我第一次尝试这样做,但我被卡在了on上,因为这可能会导致更新错误的记录@编辑:运行查询时会发生什么?Access是否显示0条记录已更新,或者是否有其他消息?当我运行查询时,它会显示所有应该更新的列,但其中没有数据。当我刷新表时,应该更新的记录不会被更新。当我运行查询时,它会显示所有应该更新的列,但其中没有数据。-要实际执行操作查询,您必须单击“执行”或“运行”按钮红色感叹号,而不是“数据表”按钮。感谢Jatin的输入,但它不起作用,结果仍然相同,没有任何更改,我尝试从您的第二个查询中选择,我得到了正确的结果,但随着更新,没有。