【问题标题】:Access - recordset search to return a fieldcount with 2 different criteria访问 - 记录集搜索以返回具有 2 个不同条件的字段计数
【发布时间】:2021-04-06 01:04:59
【问题描述】:

我希望在主页上显示一些关键数据。例如,打开不符合项 1 天、7 天超过 7 天……或者昨天应该完成但仍处于打开状态的作业计数等.等

收效甚微,我试图让记录集搜索返回基于 2 个不同条件的字段计数。然后我打算合并这两个条件......但我无法得到它工作

第一个查询试图计算日期范围从现在到 -7 天

之间的记录
vSQL = "SELECT count(*) AS FieldCount FROM tblNonConformance WHERE [Date] =" & "[Date] Between #" & Format(Now(), "mm\/dd\/yyyy hh\:nn\:ss") & "# And #" & Format(Now() - 7, "mm\/dd\/yyyy hh\:nn\:ss") & "#"

第二个查询是计算仍然打开的记录数(来自数据库中的是/否字段)

vSQL = "SELECT count(*) AS FieldCount FROM tblNonConformance WHERE [NCR Clsd?]=" & False

两种情况下的字段计数都返回为空(逻辑是如果我不能让它们单独工作,我就没有希望嵌套它们)

Public Sub Tester124()
Dim vSQL As String
Dim rs As Recordset

'Creating a count SQL statement for the Date Range
   vSQL = "SELECT count(*) AS FieldCount FROM tblNonConformance WHERE [Date] =" & "[Date] Between #" & Format(Now(), "mm\/dd\/yyyy hh\:nn\:ss") & "# And #" & Format(Now() - 7, "mm\/dd\/yyyy hh\:nn\:ss") & "#"
'Create a count SQL statement for the closed status
   'vSQL = "SELECT count(*) AS FieldCount FROM tblNonConformance WHERE [NCR Clsd?]=" & False
   
'Set the recordset to variable rs and have it return the query
    Set rs = CurrentDb.OpenRecordset(vSQL)

'Displaying the results.. i will do more with this when i have a usable result
    With rs
      MsgBox (FieldCount)
      End With
End Sub

当字段计数返回为空时有什么建议吗?

【问题讨论】:

    标签: sql vba ms-access recordset


    【解决方案1】:

    不要将日期转换为日期常量。我不确定为什么第二个不起作用,但您可以将两者结合为:

    SELECT SUM(IIF([Date] < NOW() AND [Date] >= DATEADD("d", -7, NOW()), 1, 0)) as cnt1,
           SUM(IIF([NCR Clsd?], 0, 1)) as cnt2
    FROM tblNonConformance;
    

    【讨论】:

    • 嗨,戈登。感谢您抽出宝贵时间帮助我,我仍然无法正常工作。如果我用建议的代码替换原始代码 vSQL = Select count 它会变红并给出编译错误:说预期的情况
    • 已编辑。再试一次。
    • @sambob_628 。 . .鉴于 MS Access 不支持case,这似乎是一个奇怪的消息。我修正了答案中的几个错别字。
    • 正如 HansUp 所说,我已将 select 语句加载到 Vsql 变量中,并且修复了大小写错误,但我仍在努力,我得到了预期的编译错误)并突出显示“d " 就在 DATEADD 之后...我检查了属性,一切对我来说都有意义... -7, NOW()), 1, 0)) as cnt1 FROM tblNonConformance;")
    • @sambob_628 。 . .您的所有错误都表明您没有使用 MS Access。
    猜你喜欢
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多