Microsoft Access基于SELECT查询创建报表提示缺少运算符语法错误
报错核心原因
- 你提供的SQL存在冗余语法:末尾重复了一遍
FROM...WHERE...子句,单独运行时可能被Access容错忽略,但报表解析时会触发语法错误。 - Access报表的查询解析器对多级嵌套数据源路径+含特殊字符(#、/、空格)的字段名兼容性差:你用到了
[Load DSE in Paddocks Currently].Livestock.[Mob Name/#]这种多级嵌套字段,报表解析时没有正确包裹完整方括号,误将路径中的点识别为运算符,就出现了Livestock>Mob Name/#的报错提示。
修复步骤
- 第一步:清理并简化查询SQL,给长表名、特殊字段加别名,避免报表解析异常,修改后的参考SQL如下:
SELECT LDSE.Livestock.[Mob Name/#] AS MobName, Paddock.Paddock, Paddock.[Stocking rate], LDSE.Livestock.[Load(DSE)] AS DSELoad FROM Paddock LEFT JOIN [Load DSE in Paddocks Currently] AS LDSE ON Paddock.[Paddock] = LDSE.[Livestock Movement].[Moved In Paddock(s)].[Value] WHERE LDSE.[Livestock Movement].[Moved In Paddock(s)].Value IS NOT NULL;
- 第二步:将修改后的SQL保存为独立的Access查询对象,不要直接把SQL粘贴到报表的记录源属性中。
- 第三步:基于保存的查询创建报表,进入设计视图后添加分组级别,选择
Paddock作为分组字段,在Paddock组的页脚区域添加汇总文本框,控件来源设置为=Sum([DSELoad])即可实现每个牧场的DSE总负载统计。
内容的提问来源于stack exchange,提问作者Madison Read
相关产品推荐
相关产品推荐

