2013-03-23 1 views
0

Я делаю маркировку, обновляющую систему баз данных. Мне нужно ограничить каждое из моих текстовых полей значением менее 100, когда его более 100 или когда его номер не появится, появится окно с сообщением, и данные не будут сохранены до тех пор, пока пользователь не изменит ошибку. Как мне это сделать?Как ограничить значение текстового поля в vb 6.0

ответ

2

Я согласен с Hiren Pandya, но я думал, что добавлю свой собственный подход.

Помните, что преобразование строки в числовое значение не является тривиальным, но функции Val, CInt, CDBl и т. Д. В VB6 могут дать вам поведение, близкое к тому, что вы хотите. (некоторые из этих ссылок относятся к 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 
+0

Thanks для вашей помощи, миссия решена, спасибо кучу !!! – WaiShyang

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 
+0

Могу ли я спросить, что такое использование SetFocus, можете ли вы перейти к более подробным сведениям? Спасибо :) – WaiShyang

+0

SetFocus установит фокус (курсор) в текстовое поле. Означает, что после появления окна сообщения, когда пользователь возвращается к форме, курсор будет находиться в текстовом поле, на которое был применен SetFocus. –

Смежные вопросы