Ms access 使用vba循环访问Access中所有记录的代码

Ms access 使用vba循环访问Access中所有记录的代码,ms-access,vba,Ms Access,Vba,我需要检查表中的每一条记录,如果p 0弹出警告,记录数不好,我将使用此代码,但我在没有do的情况下得到错误循环 Private Sub Command142_Click() Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("ppp-pd") Do While rs.EOF = True rs.MoveFirst p1 = (Round(rs!brutoprihod - (rs!brutoprihod * rs!ProcPrizTros)

我需要检查表中的每一条记录,如果p 0弹出警告,记录数不好,我将使用此代码,但我在没有do的情况下得到错误循环

Private Sub Command142_Click()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("ppp-pd")
Do While rs.EOF = True
rs.MoveFirst
p1 = (Round(rs!brutoprihod - (rs!brutoprihod * rs!ProcPrizTros) - rs!osnovicazaporez))
If p1 = 0 Then
rs.MoveNext
Loop
Else
MsgBox ("not good")
End If
MsgBox ("all records are good")
End Sub

不能让If语句在循环外交叉。另外,我认为只有当记录集为空时,代码才会进入循环。试试这个:

Private Sub Command142_Click()

    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("ppp-pd")

    Do While Not rs.EOF
        p1 = (Round(rs!brutoprihod - (rs!brutoprihod * rs!ProcPrizTros) - rs!osnovicazaporez))
        If p1 <> 0 Then
            MsgBox ("not good")
        End If
        rs.MoveNext
    Loop
End Sub
Private子命令142_Click()
将遥感器作为记录集
Set rs=CurrentDb.OpenRecordset(“ppp pd”)
做而不做
p1=(四舍五入(rs!布鲁托普里霍德-(rs!布鲁托普里霍德*rs!普罗普里兹特罗斯)-rs!奥斯诺维卡扎波雷斯))
如果p10那么
MsgBox(“不好”)
如果结束
下一个
环
端接头

我注意到我做了类似的设置,但不知道如何在某些MSGNOXI中指出哪一行是p1 0。如果您有一个id字段,您可以执行类似rs的操作!艾德菲尔德。或者
rs.AbsolutePosition+1
将为您提供行号(需要添加1,因为它是基于零的索引)。