将SQL查询转换为vba rowsource的问题

时间:2014-02-28 20:37:03

标签: sql vba ms-access

所以我在尝试使用SQL查询填充Access中的Listbox时遇到了一些问题。我还在学习VBA,但这是一个困扰我的问题。我已经尝试修复我的代码,但 AND-date-BETWEEN 部分似乎不适用于我的其他 AND-columnname-LIKE 部分。

我能够让BETWEEN部件独立工作,LIKE部件可以自己工作但不能一起工作。这是我一直在尝试修改的主要vb代码。此外,DQ是另一个有助于查询的双引号的函数。

Me.lstGngSheets.RowSource = _
 "SELECT gangID, fileName, date, crossStreets FROM tblgangSheets " & _
 "WHERE borough LIKE ""*" & DQ(Me.cboBoro.Value) & _
 "*"" AND date BETWEEN #" & txtDtBeg.Value & "# and #" & txtDtEnd.Value & "#" & _
 "*"" AND onStreet LIKE ""*" & DQ(Me.cboOnStr.Value) & _
 "*"" AND yard LIKE ""*" & DQ(Me.cboYrd.Value) & _
 "*"" AND safeStreets LIKE ""*" & DQ(Me.chkSenior.Value) & "*"""

这是一个SQL输出,我正试图填充我的列表框。

SELECT gangID, fileName, date, crossStreets
FROM tblgangSheets
WHERE borough LIKE "Queens"
AND date BETWEEN #01/1/2013# and #1/1/2014#
AND onStreet LIKE "**"
AND yard LIKE "**"
AND safeStreets LIKE "**";

我一直在讨论这个问题,如果有人能给我建议或解决方案,我一定会很感激!

1 个答案:

答案 0 :(得分:0)

你的SQL在日期和类似之间有一些奇怪的间距。试试这个。

Me.lstGngSheets.RowSource = "SELECT gangID, fileName, date, crossStreets FROM tblgangSheets " & _
 "WHERE borough LIKE ""*" & DQ(Me.cboBoro.Value) & _
 "*"" AND date BETWEEN #" & txtDtBeg.Value & "# and #" & txtDtEnd.Value & "#" & _
 " AND onStreet LIKE ""*" & DQ(Me.cboOnStr.Value) & _
 "*"" AND yard LIKE ""*" & DQ(Me.cboYrd.Value) & _
 "*"" AND safeStreets LIKE ""*" & DQ(Me.chkSenior.Value) & "*"""

请注意,我在#结束你的结束日期后立即删除了“*”。