SQL 条件突然出错

Sudden error in SQL criteria

我正在使用以下 SQL - 这很好用

Set rs1 = CurrentDb.OpenRecordset("SELECT Count(Advisors) AS TotalNumber FROM tbl_ComplaintsCoded WHERE Advisors = '" & Forms!frm_Central_Reporting_ops!Text52.Value & "' AND Year([Mail Date]) = " & Me.Text48.Value & " AND month([Mail Date]) =4")

我对:

做了一点改动
Set rs1 = CurrentDb.OpenRecordset("SELECT Count(PolicyComplaints) AS TotalNumber FROM tbl_ComplaintsCoded WHERE PolicyComplaints = '" & Forms!frm_Central_Reporting_ops!Text52.Value & "' AND Year([Mail Date]) = " & Me.Text48.Value & " AND month([Mail Date]) =4")

错误是:

Data type mismatch in expression

我完全想不通是什么地方出了这么大的问题?

帮助

计算字段不能用单引号引起来。删除引号,它应该可以工作。这是一个例子:

Private Sub showQueryData()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sqlStr As String

sqlStr = "SELECT COUNT(CalculatedField) AS TotalNumber FROM table1 AS tbl WHERE CalculatedField = '2'"

Set db = CurrentDb
Set rs = db.OpenRecordset(sqlStr)

Dim result As String
result = rs!TotalNumber

End Sub

由于查询参数“2”,上述方法将出错。当您删除引号时它将起作用,如下所示:

Private Sub showQueryData()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sqlStr As String

sqlStr = "SELECT COUNT(CalculatedField) AS TotalNumber FROM table1 AS tbl WHERE CalculatedField = 2"

Set db = CurrentDb
Set rs = db.OpenRecordset(sqlStr)

Dim result As String
result = rs!TotalNumber

End Sub

我已经重写了你的代码,没有引用对我有效:

Set rs1 = CurrentDb.OpenRecordset("SELECT Count(PolicyComplaints) AS TotalNumber FROM tbl_ComplaintsCoded WHERE PolicyComplaints = " & Forms!frm_Central_Reporting_ops!Text52.Value & " AND Year([Mail Date]) = " & Me.Text48.Value & " AND month([Mail Date]) =4")