vb中判断库存量的问题

Private Sub txtCount_Change()
On Error GoTo ErrorHandle
If (txtStoreCount.Text <> "") And (txtCount.Text <> "") Then
If (CLng(txtCount.Text) > CLng(txtStoreCount.Text)) Then
Err.Description = "交易数目大于库存量!"
Err.Number = 3000
Err.Raise 3000
End If
End If
IfCanAddOutput
Exit Sub
ErrorHandle:
ShowErr
txtCount.Text = ""
End Sub
以上是代码,目的是判断输入框的数量是否小于实际库存量。但是我运行出来不管实际库存量是几,我输入的数量只要大于1,它都会提示"交易数目大于库存量!"除非输入0.*似乎才可以。
不知道为什么会出现这样的错误。请高手指明!
你们说的2种方法都试了,不行。有没有可能是数据库里面字段设置有问题?按理说这语句应该是对的呀。
对了,我的store表中的s_count列的数据类型是int。
但是它不是输入大于0就报错,而是输入大于1的数就报错,输入0点几没有错误提示。

你从数据库输入的txtStoreCount.Text是如何输入的?
根据你的说明有一种情况:
CLng(txtStoreCount.Text))得到的结果为0,也就是说txtStoreCount.Text里面不是一个正确数字。有可能是数字前面带有空格,或者是0字符而你没发现,这样都将导致CLng返回的结果为0,那么无论你的库存实际是多少,只要输入了大于0的数就报错了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-16
这里只是数量判断,没必要用 错误捕获,直接比较就可以。

Private Sub txtCount_Change()

If (txtStoreCount.Text <> "") And (txtCount.Text <> "") Then
If Val(txtCount.Text) > Val(txtStoreCount.Text) Then
MsgBox "交易数目大于库存量!"
Exit Sub
End If
End If

IfCanAddOutput

End Sub
第2个回答  2009-09-16
把Clng换成Val试试
相似回答