VBA筛选日期范围时触发Error 3075错误求助
解决Access VBA日期筛选的Error 3075问题
我一眼就看出你遇到的是Access里典型的日期语法错误——Error 3075本质是SQL筛选语句的格式不对,咱们来快速修复它:
问题出在哪?
Access的日期常量必须用#(井号)包裹,而你代码里用了单引号',而且BETWEEN的拼接还缺了闭合的符号,导致数据库无法正确解析你的日期范围。
修复后的完整代码
Private Sub btnHwEOLNext2_Click() Dim filterString As String Dim startDate As Date Dim endDate As Date startDate = Date endDate = Date + 730 ' 计算两年后的日期 ' 用#包裹日期,同时统一格式避免区域设置问题 filterString = "[HW End of Support] BETWEEN #" & Format(startDate, "mm/dd/yyyy") & "# AND #" & Format(endDate, "mm/dd/yyyy") & "#" Me.Filter = filterString DoCmd.SetOrderBy "[HW End of Support] ASC" Me.FilterOn = True End Sub
核心修改说明
- 替换日期包裹符号:把单引号
'换成Access识别的#,这是日期筛选的标准语法 - 统一日期格式:用
Format函数把日期转为mm/dd/yyyy格式,避免因系统区域差异导致的日期解析失败 - 修正BETWEEN结构:确保前后两个日期都被正确包裹,并且
AND前后保留空格(原代码里的小写And其实不影响,但大写更符合SQL规范)
如果修改后还是有问题,可以检查[HW End of Support]字段是否确实是日期/时间类型,或者字段名有没有拼写错误哦。
内容的提问来源于stack exchange,提问作者Raul Gonzales
相关产品推荐
相关产品推荐

