Ms access 使用Update和aggregate sum()函数更新MS Access数据库表

Ms access 使用Update和aggregate sum()函数更新MS Access数据库表,ms-access,Ms Access,我的access数据库中有两个表 表1(员工姓名、Emp编号、Emp工资) 表2(员工姓名、Emp编号、工资总额) 使用“员工姓名”和“Emp编号”将这些表关联在一起,如何使用第一个表“包含聚合函数的查询或使用不可更新聚合函数的查询”中的值总和(Emp Salary)更新表2中的“总薪资”。因此,您可以使用以下方法更新现有表中的数据: 临时表。将聚合结果保存在临时表中,然后使用此临时表中的数据更新工作表 如果聚合很简单,并且聚合查询函数可以被域聚合函数(如DSum或CDount)替换,则生成的查

我的access数据库中有两个表 表1(员工姓名、Emp编号、Emp工资) 表2(员工姓名、Emp编号、工资总额)
使用“员工姓名”和“Emp编号”将这些表关联在一起,如何使用第一个表“

包含聚合函数的查询或使用不可更新聚合函数的查询”中的值总和(Emp Salary)更新表2中的“总薪资”。因此,您可以使用以下方法更新现有表中的数据:

  • 临时表。将聚合结果保存在临时表中,然后使用此临时表中的数据更新工作表
  • 如果聚合很简单,并且聚合查询函数可以被域聚合函数(如DSum或CDount)替换,则生成的查询将是可更新的,并且可以避免使用临时表
  • 使用域函数的查询可能如下所示:

    UPDATE Result
    SET Result.[Total Salary] = DSum("Emp Salary", "Emp", "Employee Name='" & Replace(Result.EmpName, "'", "''") & _
        "' and [Emp Number]=" & Result.[Emp Number])
    WHERE Result.[EmpName] = 'Mohan'
        AND Result.[Emp Number] = 1;
    

    感谢您的回复,Sergey…请您查看下面的查询,哪个iam使用DSum..更新结果集结果。[总薪资]=DSum(“Emp薪资”、“Emp”、“员工姓名='Mohan'”&Result.EmpName&“”),其中结果。[EmpName]='Mohan'和结果。[Emp编号]=1;当iam使用上面的查询时,它将在设置字段处更新为0。请检查一次,并让我知道更新的查询。DSum条件参数中有错误。此外,如果名称包含单引号,我还添加了重复的单引号。感谢您的查询…但当iam使用相同的查询时,在再次单击“是”后,它显示的1行将更新。iam获得另一条弹出消息为“Microsoft Access无法更新更新查询中的所有记录”Microsoft Access未更新1个字段,原因是类型转换失败,0个记录因密钥冲突,0个记录因锁定冲突,0个记录因验证规则冲突请检查一次…非常感谢advacneThanks Sergey…现在它按预期工作…再次非常感谢:):)如果答案帮助您解决问题,请将其标记为已接受,它将帮助其他用户