2017-10-13 56 views
0

不断获取错误更新使用金额 - 错误

you tried to execute a query that does not include the specified expression

我的SQL如下所示:

UPDATE TblField LEFT JOIN TblTempStats ON TblField.DomainCatID = TblTempStats.DomainCatID 
SET TblTempStats.EmptyFields = Sum(IIf([fieldname] Is Null,1,0)); 

任何想法,为什么?

+1

缺少从TblField? – QHarr

回答

1

你应该在我看来,使用域聚合了这一点,它避免了错误:

UPDATE TblTempStats 
SET TblTempStats.EmptyFields = 
    DSum(
     "IIf([fieldname] Is Null,1,0)", 
     "TblField", 
     IIf(
      TblTempStats.DomainCatID Is Null, 
      "TblField.DomainCatID Is Null", 
      "TblField.DomainCatID = " & TblTempStats.DomainCatID 
     ) 
    ) 
+0

嗨,得到错误,我需要使用可更新的查询 - 任何其他想法?谢谢 – Jext

+0

尝试当前编辑 –

+0

适用于所有值 - 除非DomainCatID为空,我可以忍受,但您认为有一种方法可以包含空域猫iD - 它出现在tbltempstats中(domaincatid为null值) – Jext

0

像下面这样,你有一个from子句

UPDATE TblField 
SET TblTempStats.EmptyFields = Sum(IIf([fieldname] Is Null,1,0)) 
FROM TblField 
LEFT JOIN TblTempStats ON TblField.DomainCatID = 
TblTempStats.DomainCatID 
; 
+0

嗨,我现在得到以下错误 - 查询表达式中的语法错误缺少运算符sum(iif([fieldname]为null,1,0))tblfield,LEFT JOIN tbltemstats on tbleField.domaincatID – Jext

+0

提到发生此错误字段名称以双字节阿拉伯字符开头,尽管我必须承认不知道这些字符是什么样的:https://support.microsoft.com/en-gb/help/932994/you-receive-an -error-message-when-run-a-query-in-microsoft-access – QHarr

+0

这严重超过了我的编码水平。感谢您的帮助。我所要做的就是从查询中更新一个表,无论是在VBA中还是在查询中,并且不知道为什么没有任何工作。 – Jext