我目前正在开发ms access 2010并在vba中编码。我想在给定的开始和结束日期之间进行搜索,但它根本不进行查询。
我的sql查询将是这样的,我从日历中获取了起始值和结束值。
"SELECT [fields] WHERE (DateofIssue BETWEEN" & TextBoxStartDate.value & " AND " & TextBoxEndDate.value)
我已经包含了()因为我还有其他条件要检查,是否可以这样使用?
我看到有人加入#并尝试过失败,例如:
"SELECT [fields] WHERE (DateofIssue BETWEEN #" & TextBoxStartDate.value & "# AND #" & TextBoxEndDate.value & "#")
我已将数据表和表单中的日期格式更改为dd/mm/yyyy
。我在数据表视图中查看,日期以示例28/05/2013
的形式显示。我尝试通过在上面提到的各个文本框中添加msgbox来进行一些调试。他们显示2 8/5/201
3而不是28/05/201
3。这个月有一个缺失0,这是为什么?
任何建议可能是什么问题,我该如何解决?任何帮助将不胜感激,谢谢你。
答案 0 :(得分:0)
你需要围绕日期的#符号。
表格显示日期并不重要。它们都存储相同。
领先的零并不重要。
我在Access中的理解,查询期望美国的日期格式。尝试使用 mm / dd / yyyy 或ISO标准 yyyy-mm-dd
答案 1 :(得分:0)
是的,你需要#符号..所以试试这个
"SELECT [fields] WHERE (DateofIssue >= #" & format(TextBoxStartDate.value,"MM/dd/yyyy") & "# AND DateofIssue <= #" & format(TextBoxEndDate.value, "MM/dd/yyyy") & "#")