您好,我在VBA上使用MS JET OLEDB 4.0(MS ACCESS)
SQL = "SELECT COUNT(Date) FROM [Orders] WHERE [Orders].[Date] BETWEEN " & "#" & StartDate & "#" & " AND " & "#" & EndDate & "#"
[日期]的格式类似于f dd / mm / yyyy(法语),而StartDate和EndDate的格式类似于mm / dd / yyyy(两个日期对象)。
我的信念是BETWEEN仅比较格式为mm / dd / yyyy的日期,所以有没有一种方法可以将[日期]格式转换为mm / dd / yyyy,以便函数之间可以正确比较?
编辑:使用字符串代替日期,如下所示:
StartDateFormatted = Format(StartDate,"dd/mm/yyyy") EndDateFormatted = Format(EndDate,"dd/mm/yyyy")
以确保开始日期和结束日期格式。它仍然无法正常工作。
我要承担两件事:
只有BETWEEN会比较mm / dd / yyyy格式
我必须使用一个函数来将[日期]格式化为mm / dd / yyyy
感谢@Maciej Los回答了我的问题。
使用格式化功能。
SQL = "SELECT COUNT(Date)" & vbcr & _ "FROM [Orders]" & vbcr & _ "WHERE [Orders].[Date] BETWEEN #Format(" & StartDate & "], 'MM/dd/yyyy')# AND #Format(" & EndDate & ",'MM/dd/yyyy')#"