2013-05-28 73 views
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。我检查数据表视图,日期以例如28/05/2013的形式显示。我试图通过在上面提到的各个文本框中添加msgbox来进行一些调试。他们显示2 8/5/201 3而不是28/05/201 3.本月有一个缺少的0,这是为什么?

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

回答

0

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

"SELECT [fields] WHERE (DateofIssue >= #" & format(TextBoxStartDate.value,"MM/dd/yyyy") & "# AND DateofIssue <= #" & format(TextBoxEndDate.value, "MM/dd/yyyy") & "#") 
+0

谢谢你们的帮助,感激它! – user2423986

+0

@ user2423986:这是找出你的问题吗? ..如果是的话,最好你投这个答案.. – matzone

0

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

无论您的表格如何显示日期。它们全部保存相同。

前导零并不重要。

我在Access中的理解,查询期望美国格式的日期。尝试使用任何MM/DD/YYYYYYYY-MM-DD的ISO标准