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")
我正在使用以下 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")