尝试使用ADO查询数据库时,我遇到了此错误。通过搜索我发现这可能意味着我正在使用的SQL存在问题。
Dim rs As Object
Dim varGetRows As Variant
Dim sqlStr As String
sqlStr = "SELECT qryEmpRewardsDetail.PBRID, qryEmpRewardsDetail.ActualReward, qryEmpRewardsDetail.ProratedActual, qryEmpRewardsDetail.Adjust, qryEmpRewardsDetail.Total, qryEmpRewardsDetail.Prorated FROM qryEmpRewardsDetail WHERE qryEmpRewardsDetail.ReviewYearID=8 AND qryEmpRewardsDetail.EmployeeID=30 AND qryEmpRewardsDetail.TypeID=1;"
Set rs = CreateObject("ADODB.Recordset")
rs.Open sqlStr, CurrentProject.Connection
varGetRows = rs.GetRows()
我已经用几种不同的方式重新编写了它,检查了拼写一百次并将其复制并粘贴到一个运行良好的访问查询中。
对于我的生活,我无法弄清楚它可能出现的问题。关于它可能是什么的任何想法或关于如何缩小问题的一些建议?
谢谢!
答案 0 :(得分:0)
这会运行吗?
SELECT * FROM qryEmpRewardsDetail WHERE qryEmpRewardsDetail.ReviewYearID=8 AND qryEmpRewardsDetail.EmployeeID=30 AND qryEmpRewardsDetail.TypeID=1
如果确实如此,那么你可能拼错了一个字段,一个接一个地添加,直到开心。
否则,请尝试删除每个WHERE条件并在每个条件之间进行测试。
完全定义您的记录集只是为了安全:
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.ActiveConnection = CurrentProject.Connection
rst.CursorType = adOpenDynamic
rst.LockType = adLockReadOnly
rst.Open sqlStr
If rst.BOF and rst.EOF Then
'no records returned
End If
Do While Not rst.EOF
'Doing stuff with row
rst.MoveNext
Loop