如何检查桌上的数量是多少?

时间:2019-02-26 18:36:25

标签: vba ms-access

我需要检查我是否有足够数量的特定产品。如何使它检查的数量成为文本框(txtIdProd)中的产品之一。

这是我的代码:

Private Sub Cantidad_LostFocus()
Set myDatabase = CurrentDb()
Set myRs = myDatabase.OpenRecordset("TblProductos", dbOpenDynaset)
Dim cant As Integer
cant = txtCantidad
myRs.FindFirst "IDProducto=" & Me.txtIdProd
If myRs.NoMatch = False Then
    If cant > myRs("CantidadDisponible") Then
        Me.Label27.Visible = True
    End If
End If
Exit Sub
Me.Label27.Visible = False

End Sub

1 个答案:

答案 0 :(得分:1)

FindFirst代码应完全满足您的要求。但是,可能更有效地筛选记录集。

Private Sub Cantidad_LostFocus()
    Dim cant As Integer
    If Not IsNull(Me.txtIDProd) Then
        Set myDatabase = CurrentDb()
        Set myRs = myDatabase.OpenRecordset("SELECT CantidadDisponible FROM TblProductos WHERE IDProducto=" & Me.txtIdProd, dbOpenDynaset)
        cant = rs!CantidadDisponible
    End If
    Me.Label27.Visible = Me.txtCantidad <= cant
End Sub

另一种不使用记录集的方法:

Me.Label27.Visible = Me.txtCantidad <= Nz(DLookup("CantidadDisponible", "TblProductos", "IDproducto=" & Nz(Me.txtIDProd,0)), 0)

请注意使用<=,并假设txtCantidad不会为0。