0

我正在做一个标记更新数据库系统。我需要将每个文本框的值限制为小于 100,当大于 100 或不是数字时,会弹出一个消息框并且在用户更改错误之前不会保存数据。我该怎么做?

4

2 回答 2

2

我同意 Hiren Pandya 的观点,但我想我也会添加我自己的观点。

请注意,将字符串转换为数值并非易事,但 VB6 中的ValCInt、 CDBl 等函数都可以为您提供接近您想要的行为。(其中一些链接用于 VB.Net,但仍然很有价值)。当您自己验证用户输入时,您要确保正在考虑数字分组、正/负、小数分隔符等。大多数时候,内置功能已经足够好了。

Private Sub Text1_Change()
    On Error GoTo Err_Handler
    Dim text As String
    text = Text1.text
    If IsNumeric(text) = True Then

        'If you only want integers...
        Dim value As Integer
        value = Val(text)
            If value <= 100 And value > 0 Then
            'The value is good so whatever stuff you need to do
            'And then leave the procedure
            Exit Sub
        End If
    End If

    'Let everything else fall through here...
Err_Handler:
    MsgBox "Invalid input."
    'Other stuff to prevent saving
End Sub
于 2013-03-23T18:36:43.480 回答
1

在文本框的属性中,将 MaxLength 设置为 2。

如果您想要一条消息,请在文本框中更改事件中,您可以...

If Len(txtBox.Text)>2 then msgbox...

然后在消息框中添加您的消息。

如果您需要,我可以详细说明。像下面这样的东西......

Private Sub Text1_Change()
If Len(Text1) > 6 Then
    Text1 = " "    
    MsgBox "Not more than six"    
    Text1.SetFocus    
End If
End Sub
于 2013-03-23T18:17:26.457 回答