【问题标题】:Problems in converting an SQL query into vba rowsource将 SQL 查询转换为 vba 行源的问题
【发布时间】:2014-02-28 20:37:02
【问题描述】:

所以我在尝试使用 SQL 查询填充 Access 中的列表框时遇到了一些问题。我仍在学习 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 "**";

我已经为此绞尽脑汁了一段时间,如果有人能给我建议或解决方案,我将不胜感激!

【问题讨论】:

    标签: sql vba ms-access


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢!它可以按需要工作!我没有意识到 ""*" 部分也影响了我的陈述。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    相关资源
    最近更新 更多