You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS Access查询报错:表达式类型错误或过于复杂的求助

问题描述

在MS Access中运行查询填充报表时,系统返回“表达式类型错误或表达式过于复杂”报错。该查询需要筛选指定日期范围内MRC为TRUE的所有记录:

  • 使用条件dbo_Project_Master.MRC IS NOT NULL时查询可正常运行
  • 为MRC赋值筛选时触发报错,MRC为bit类型,尝试用='1'的写法仍报错

原SQL代码如下:

SELECT 
dbo_Project_Master.ProjectID, dbo_Project_Master.Project_Name, dbo_Project_Master.Permit_Num, dbo_Municipality.Municipality, dbo_Project_Master.MRC, dbo_Project_Master.Date_Received
FROM 
(dbo_Project_Master INNER JOIN dbo_Project_Municipality ON dbo_Project_Master.ProjectID = dbo_Project_Municipality.ProjectID) INNER JOIN dbo_Municipality ON dbo_Project_Municipality.MunicipalityID = dbo_Municipality.MunicipalityID
WHERE 
(dbo_Project_Master.Date_Received >= Forms!frmCriteriaAnnualRpt!txtStartDate) AND (dbo_Project_Master.Date_Received <= Forms!frmCriteriaAnnualRpt!txtEndDate) AND (dbo_Project_Master.MRC = '1');
解决方法
  • 修正bit类型判断写法:Access中bit类型的布尔值存储为-1(True)和0(False),不要用带引号的字符串判断,可改为以下任意一种:
    • dbo_Project_Master.MRC = True
    • dbo_Project_Master.MRC = -1
    • dbo_Project_Master.MRC = 1(部分场景下Access可识别数值1为True)
  • 检查表单控件值:确保Forms!frmCriteriaAnnualRpt!txtStartDate和Forms!frmCriteriaAnnualRpt!txtEndDate控件有有效日期值,空值可能导致表达式复杂报错,可添加非空判断:
    AND (Forms!frmCriteriaAnnualRpt!txtStartDate IS NOT NULL) AND (Forms!frmCriteriaAnnualRpt!txtEndDate IS NOT NULL)
    

内容的提问来源于stack exchange,提问作者Luna8426

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:50:11