不完全确定如何修复此代码,这会给我一个运行时错误3021:没有当前记录。
目的是单击此按钮,它将使用查询的第一条记录的结果填充几个文本框。然后,它应该使用MoveNext填充另外两个文本框,其中包含查询结果的下一条记录。
Private Sub btnSCC07_Click()
Dim dbs As DAO.Database
Dim rsTable As DAO.Recordset
Dim rsQuery As DAO.Recordset
Set dbs = CurrentDb
Set rsQuery = dbs.OpenRecordset("SELECT * FROM qrySccS2 WHERE PAYORNAME = 'Medicaid' AND OVERRIDECODESALL = 7", dbOpenDynaset)
rsQuery.FindFirst ("[PAYORNAME]='Medicaid'")
num1 = rsQuery!PAYPLANNAME
num2 = rsQuery!Count
txtMedicaid9 = num1
txtMedicaidCount9 = num2
Debug.Print (txtMedicaid9)
rsQuery.MoveNext
Debug.Print ("Test")
num3 = rsQuery!PAYPLANNAME
num4 = rsQuery!Count
txtMedicaid10 = num3
txtMedicaidCount10 = num4
rsQuery.Close
Set rsQuery = Nothing
所以第一部分可以工作,但是当它到达行num3 = rsQuery时!PAYPLANNAME就是它抛出错误的地方。提前感谢您提供的任何见解。
答案 0 :(得分:0)
您应该使用 NoMatch 和 EOF 安全地玩游戏:
Set rsQuery = dbs.OpenRecordset("SELECT * FROM qrySccS2 WHERE PAYORNAME = 'Medicaid' AND OVERRIDECODESALL = 7", dbOpenDynaset)
If rsQuery.RecordCount > 0 Then
rsQuery.FindFirst "[PAYORNAME]='Medicaid'"
If Not rsQuery.NoMatch Then
num1 = rsQuery!PAYPLANNAME.Value
num2 = rsQuery!Count.Value
txtMedicaid9 = num1
txtMedicaidCount9 = num2
Debug.Print txtMedicaid9
If Not rsQuery.EOF Then
rsQuery.MoveNext
Debug.Print "Test"
num3 = rsQuery!PAYPLANNAME.Value
num4 = rsQuery!Count.Value
txtMedicaid10 = num3
txtMedicaidCount10 = num4
End If
End If
End If
rsQuery.Close
Set rsQuery = Nothing