0

我目前正在研究 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. 我检查了数据表视图,日期以 example 的形式显示28/05/2013。我尝试通过为上面提到的各个文本框添加 msgbox 来进行一些调试。他们显示 2 8/5/2013 而不是28/05/2013。这个月缺少 0,这是原因吗?

任何建议可能是什么问题,我该如何补救?任何帮助将不胜感激,在此先感谢您。

4

2 回答 2

0

您确实需要日期周围的 # 符号。

您的表格如何显示日期并不重要。都是一样的存储。

前导零无关紧要。

我对 Access 的理解是,查询需要美国格式的日期。尝试使用mm/dd/yyyy或yyyy-mm-dd的 ISO 标准

于 2013-05-28T03:19:44.233 回答
0

是的,你需要 # 符号 .. 所以试试这个

"SELECT [fields] WHERE (DateofIssue >= #" & format(TextBoxStartDate.value,"MM/dd/yyyy") & "# AND DateofIssue <= #" & format(TextBoxEndDate.value, "MM/dd/yyyy") & "#")
于 2013-05-28T03:52:57.877 回答