结果因0

时间:2017-03-08 07:47:27

标签: vba ms-access access-vba msgbox

我有这段代码:

DM.OnUpdate="CalculDiferenta"
DM.OnInsert="CalculDiferenta"

Sub CalculDiferenta

If Dsrid.Value=50000 Then

stl.first
Do While Not Stl.Eof
Diferenta.Value=Cantv.Value-Cantc.Value


Stl.Next
Loop

end if
End Sub

它计算文档中2个数量列之间的差异。 现在,如果存在任何差异(Cantv.Value-Cantc.Value<> 0),我想要收到警报。代码应该检查文档的每一行是否有任何差异,当它找到第一行时,停止并显示msgbox。

我这样做了,但我不确定它没问题。它显示的是当最后一行有差异时弹出。

DM.OnUpdate="VerificareDiferente"
DM.OnInsert="VerificareDiferente"

Public Sub VerificareDiferente

If Dsrid.value=50000 and Cantv.Value-Cantc.Value <> 0  then

stl.first
             Do  While Not Stl.Eof
       MsgBox "Exista diferente intre cantitate comandata si cantitate verificata.", vbInformation, "Atentie !!!"
             Stl.Next
             Loop
       end if
End Sub
你可以帮帮我们吗?谢谢。

1 个答案:

答案 0 :(得分:2)

你错放了If语句,它应该在循环中:

DM.OnUpdate = "VerificareDiferente"
DM.OnInsert = "VerificareDiferente"

Public Sub VerificareDiferente()
    Stl.first
    Do While Not Stl.EOF
        If Dsrid.Value = 50000 And Cantv.Value - Cantc.Value <> 0 Then
            MsgBox "Exista diferente intre cantitate comandata si cantitate verificata.", _
                vbInformation, "Atentie !!!"
        Else
        End If
        Stl.Next
    Loop
End Sub