Занимаюсь обновлением оценок системы баз данных. Мне нужно ограничить каждое из моих текстовых полей значением менее 100, когда его больше 100 или когда это не номер, появится окно сообщения, и данные не будут сохранены, пока пользователь не изменит ошибку. Как я могу это сделать?
Как ограничить значение текстового поля в vb 6.0
Ответы (2)
Я согласен с Хиреном Пандьей, но подумал, что добавлю и свой собственный вариант.
Имейте в виду, что преобразование строки в числовое значение нетривиально, но 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
В свойствах текстового поля установите 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