【问题标题】:Access SQL Editor - "You may have entered an operand without an operator"访问 SQL 编辑器 - “您可能输入了没有运算符的操作数”
【发布时间】:2018-10-30 01:29:10
【问题描述】:

我在 JET/Access SQL 方面非常糟糕,这让我很沮丧。输入下面的代码时出现上述错误,我不明白为什么 - 这基本上只是一个大的 IIf/then 语句。如果有任何帮助,它似乎正在突出显示“PB”部分:

REQUIREMENT_TYPE_DESCRIPTION: IIf([REQUIREMENT_TYPE]="01","Warehouse Sales Orders",IIf([REQUIREMENT_TYPE]="04","Warehouse Sales Orders",IIf([REQUIREMENT_TYPE]="TB","Warehouse Sales Orders",IIf([REQUIREMENT_TYPE]="KE","Dedicated Sales Orders",IIf([bal]=0,"Warehouse Sales Orders",
IIf([REQUIREMENT_CATEGORY] = “A60380029”, "Warehouse Sales Orders,
IIf([REQUIREMENT_CATEGORY] = “A60380021”, “Warehouse Sales Orders,
IIf([REQUIREMENT_CATEGORY] =  “A60380020”, “Warehouse Sales Orders,
IIf([REQUIREMENT_CATEGORY] =  “A60380007”, “Warehouse Sales Orders,
IIf([REQUIREMENT_CATEGORY] =  “A60380001”, “Warehouse Sales Orders,
IIf([REQUIREMENT_TYPE]="PB","Forecast","Excess")))))))))))

【问题讨论】:

  • 您那里似乎有一些弯弯的双引号,Access 不会接受。修复它,然后再次尝试运行它。
  • 它们也被称为“智能引号”,Access 无法识别它们。如果您在 Word 等应用程序中键入代码,然后复制/粘贴,则可以拾取这些字符。从网页复制/粘贴也会导致相同的结果。
  • 如果您是从 VBA 代码进行此调用,请考虑使用 switch 函数 see here
  • 在查询中也可以使用 Switch() 函数。
  • "Warehouse Sales Orders, 字符串的一部分也没有右引号

标签: sql ms-access jet iif


【解决方案1】:

在 cmets 中应用建议,考虑:

REQUIREMENT_TYPE_DESCRIPTION: Switch([REQUIREMENT_TYPE] IN("01","04","TB") OR [bal]=0 OR
[REQUIREMENT_CATEGORY] IN("A60380029","A60380021","A60380020","A60380007","A60380001"),"Warehouse Sales Orders",
[REQUIREMENT_TYPE]="KE","Dedicated Sales Orders",
[REQUIREMENT_TYPE]="PB","Forecast", 
TRUE,"Excess")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-16
    • 2014-07-13
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多