Ограничение ввода строковых данных

Программирование на Visual Basic for Applications
OlafBond
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 08.04.2005 (Пт) 9:35

Ограничение ввода строковых данных

Сообщение OlafBond » 28.04.2005 (Чт) 19:39

Есть формы с кучей полей ввода. Нужно, по возможности, ограничить действия оператора на этом этапе.
Например, поле ввода Адрес. Ему соответствует поле таблицы размером 100 символов. Как сделать так, чтобы форма не давала ввести 101-й символ? Нужно ввести условие на значение поля ввода. Но какое?
Далее: числовые поля - проверять ф-ей IsNumeric? Дату - IsDate?

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 28.04.2005 (Чт) 19:44

OlafBond
У текстового поля есть свойство ограничивающее кол-во введеных символов. А насчет остального сходи на http://vbnet.ru/vbguide/
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

OlafBond
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 08.04.2005 (Пт) 9:35

Сообщение OlafBond » 28.04.2005 (Чт) 20:20

FAKK2 писал(а):OlafBond
У текстового поля есть свойство ограничивающее кол-во введеных символов.

Я забыл уточнить: MS ACCESS - там я нашел только "Условие на значение". Туда можно прописать к.л. выражение. Но как его написать для поличества символов - не понимаю. Еще есть маска ввода и формат поля.
FAKK2 писал(а): А насчет остального сходи на http://vbnet.ru/vbguide/
мне бы пальцем:)

echo
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 26.01.2005 (Ср) 8:25
Откуда: Хабаровск

Сообщение echo » 29.04.2005 (Пт) 2:21

в свойствах поля "формат поля" оставь пустым, а в "Условие на значение" поставь Len$([Поле0])<101
Душа болит... А лечишь её - печень болит!

OlafBond
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 08.04.2005 (Пт) 9:35

Сообщение OlafBond » 29.04.2005 (Пт) 12:32

В этом случае, если ввести в поле данные, а потом, вернувшись, удалить из него все, то возникает ошибка.
Что посоветуете?

echo
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 26.01.2005 (Ср) 8:25
Откуда: Хабаровск

Сообщение echo » 03.05.2005 (Вт) 2:58

ну можно вот так сделать
Код: Выделить всё

Private Sub Поле0_Exit(Cancel As Integer)
Dim text As String
text = Поле0.Value
If Len(text) > 5 Then
MsgBox "Too long text"
End If
End Sub
Душа болит... А лечишь её - печень болит!

OlafBond
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 08.04.2005 (Пт) 9:35

Сообщение OlafBond » 03.05.2005 (Вт) 9:38

Я сделал так же, но через BeforeUpdate.
Объясните, есть ли разница.

Полей много и логика у них разная. Некоторые, например, нужно приводить к верхнему регистру. Проблем никаких, но это еще один оператор. Стало быть, на каждое поле свой кусочек кода.

Немного проще с числовыми полями. Если им задать формат, то аксес сам следит, чтобы введенное значение было числовым.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList