带日期参数的MS Access交叉表查询运行报错问题咨询
交叉表查询参数报错解决方案
你遇到的报错核心诱因大概率是Access保留字冲突,可按以下步骤排查修复:
- 第一步:修正保留字引用
Date是Access内置函数的保留字,你直接用作字段名时,查询解析阶段会优先识别为系统函数而非你表中的字段,导致类型匹配错误。将SQL中所有[DA Attendance].Date的写法修改为[DA Attendance].[Date],给字段名Date单独加方括号,明确标识为字段对象。 - 第二步:校验表单控件属性
确认表单上DA_Attendance_Date控件的格式属性设置为「日期/时间」类型,避免控件返回文本值和你声明的DateTime参数类型不匹配。 - 调整后可直接使用的SQL参考:
PARAMETERS [Forms]![DA Attendance Form]![DA_Attendance_Date] DateTime; TRANSFORM Count([DA Attendance].[Attendance ID]) AS [CountOfAttendance ID] SELECT [DA Attendance].DA FROM [DA Attendance] WHERE [DA Attendance].[Date] = [Forms]![DA Attendance Form]![DA_Attendance_Date] GROUP BY [DA Attendance].DA PIVOT [DA Attendance].[Attendance Record];
如果修改后仍有报错,可在WHERE条件中增加显式类型转换确保两边类型一致:
WHERE CDate([DA Attendance].[Date]) = CDate([Forms]![DA Attendance Form]![DA_Attendance_Date])
内容的提问来源于stack exchange,提问作者jbarr
相关产品推荐
相关产品推荐

