2014-02-28 48 views
0

因此,我尝试使用SQL查询尝试在Access中填充列表框。我仍然在学习VBA,但这是困扰我的一个问题。我已经尝试修复我的代码,但它的AND-date-BETWEEN部分似乎不能与我的其他AND-columnname-LIKE部件一起使用。在将SQL查询转换为vba行源时的问题

我能够让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 "**"; 

我一直令人头大我的大脑在这一段时间,如果有的话,你可以给我建议或解决方案,我肯定会感激!

回答

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) & "*""" 

注意,我删除了“*”“后,立即关闭#您的结束日期。

+0

非常感谢你!它可以根据需要!我没想到的是,‘’*”的一部分也影响了我的发言。 –

+0

很高兴听到它! – Jeremy