问题描述
我希望在主页上显示一些关键数据……例如,打开 1 天的不符合项、超过 7 天的 7 天……或者昨天应该完成但仍然打开的作业数量等. 等
收效甚微,我正在尝试进行记录集搜索以根据 2 个不同的条件返回一个字段计数......然后我打算合并这两个条件......但我无法得到它工作
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
这两种情况下的 fieldcount 都返回为空 (逻辑是如果我不能让它们单独工作,我就没有希望嵌套它们)
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") & "#"
'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
当 fieldcount 返回为空时有什么建议吗?
解决方法
不要将日期转换为日期常量。我不确定为什么第二个不起作用,但您可以将两者结合为:
SELECT SUM(IIF([Date] < NOW() AND [Date] >= DATEADD("d",-7,NOW()),1,0)) as cnt1,SUM(IIF([NCR Clsd?],1)) as cnt2
FROM tblNonConformance;