将VBA(Excel)传输到Microsoft Access Expression Builder

将VBA(Excel)传输到Microsoft Access Expression Builder,excel,vba,ms-access,expression,Excel,Vba,Ms Access,Expression,我试图在Access verbatim中将下面的Excel代码翻译成Expression Builder,但我一直收到一条错误消息,告诉我缺少一个结束括号/括号 Excel代码(正确):=IFERROR(如果($DH3=0,0,如果($CM3=“Live”),$CM3=“Policy Adjustment”),($AY3/VLOOKUP($AM3,Maintenance!$A$3:$B$14,2,FALSE))*($VLOOKUP($AM3,Maintenance!$A$3:$B$14,2,FA

我试图在Access verbatim中将下面的Excel代码翻译成Expression Builder,但我一直收到一条错误消息,告诉我缺少一个结束括号/括号

Excel代码(正确):
=IFERROR(如果($DH3=0,0,如果($CM3=“Live”),$CM3=“Policy Adjustment”),($AY3/VLOOKUP($AM3,Maintenance!$A$3:$B$14,2,FALSE))*($VLOOKUP($AM3,Maintenance!$A$3:$B$14,2,FALSE))-DATEDIF($BC3,TODAY(),“M”)),0)

访问代码(不正确):
IIf(iError([Input-Altus]![Months Resisting]=0,0,IIf([Input-Altus]![Status]=“Live”或[Input-Altus]![Status]=“Policy Adjustment”,([Input-Altus]![Input-Commission Type]![赔偿期(月)]*[Input-Commission Type]![赔偿期(月)]-DateDiff(“m”,[Input-Altus]![Expected Payment Date YTD],Date(),2),0)

我是新来的,所以任何帮助都将不胜感激


谢谢!

很难在一行连续的代码中破译。我真的希望你没有一个名为[赔偿期(月)]的字段?也许用简单的英语描述一下你想要实现的目标?看起来你有8个
和6个
。缺少括号。有两件事。首先,将其分解为更小的部分并单独进行测试,而不是尝试转换整个内容。第二,不要使用
iError
来解释
NULL
值或被零分割或格式错误的字段。使用
Nz
进行
NULL
测试,
IIF([expression]=0)
以避免在任何其他测试中被零除法和特定规则。此外,如上所述,您的括号不匹配,可能的示例:
DateDiff(“m”),[Input-Altus]![Expected Payment Date YTD],Date(),2)
DateDiff
仅对
“m”
(月)使用3个参数结尾的
,2
不应该出现。我假设它是作为以前的
IIF
的一部分出现的。在字段名或表名中使用特殊字符、空格和保留字会让你的生活更加艰难。使用括号例如(月)而字段名中的保留名称会让您头痛不已,因为当access误键入函数名时,它会认为您正在使用函数名寻址数组。这也意味着您一直在键入非常长的名称,并且必须用[]环绕字段名。请阅读此处的一些提示和此处的内容