我是Visual Basic 6的新手,所以请耐心等待(并详细解答)。
我正在构建一个表单,我需要检查在其中一个字段中输入的信息是否为数字,否则程序必须发出蜂鸣声。
该字段是控件数组的一部分,名为txtMyField(0)
我写的代码中的最后一件事:
Private Sub txtMyField_Change(Index As Integer)
If Not IsNumeric(txtMyField(0).Text) Then
Beep
End If
End Sub
我不知道这段代码是否正确,我不知道如何调用Sub来使用它来在插入数据库之前检查字段的值。
非常感谢你的帮助!
答案 0 :(得分:2)
您可以使用Validate事件执行此操作。您需要确保CausesValidation属性为true,如果是,则将为该控件引发Validate事件。
您的活动可能如下所示:
Private Sub txtMyField_Validate(Index As Integer, Cancel As Boolean)
If Not IsNumeric(txtMyField(Index).Text) Then
Beep
Cancel = True
End If
End Sub
这将确保控件数组中的所有控件都是数字的(假设它们的CausesValidation属性在启动时设置为True)。如果其中一个控件为空或包含非数字字符,则当控件失去焦点时,您将收到蜂鸣声。
请注意这里的一些事情
答案 1 :(得分:1)
而不是发出哔哔声,你也可以让你的texbox只接受某些键
例如一个只接受数字键和退格键的文本框:
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = NrOnly(KeyAscii)
End Sub
Private Function NrOnly(intKey As Integer)
Dim intReturn As Integer
intReturn = intKey
Select Case intKey
Case vbKeyBack
Case vbKey0 To vbKey9
Case Else
intReturn = 0
End Select
NrOnly = intReturn
End Function
您可以为NrOnly函数添加更多智能以允许更多密钥,或检查某些边界
要小心,因为用户仍然可以使用鼠标通过复制和粘贴
输入其他数据