Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/35: Рейтинг темы: голосов - 35, средняя оценка - 4.94
2 / 2 / 2
Регистрация: 05.07.2012
Сообщений: 99
1

Проверка вводимого текста

15.04.2013, 02:27. Показов 6963. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста как можно сделать проверку вот в каком случае:
чтоб, например, в поле Фамилия (которое должно быть заполнено на русском) нельзя было ввести несколько букв на украинском или английском..внешне то они похожи..
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2013, 02:27
Ответы с готовыми решениями:

Проверка вводимого значения в поле Дата
Здравствуйте.. Как можно в таблице при вводе значения в поле Дата рождения проверять количество...

Изменение цвета вводимого текста
Всем Добрый день! Есть база клиентов. каждый менеджер имеет доступ лишь к своей части базы. но...

Проверка вводимого текста
Есть программа, в которую операторы вносят информацию о людях. Нужна программа, которая работает в...

Проверка вводимого текста
Добрый день уважаемые форумчане. Подскажите пожалуйста решение такого вопроса. Есть Edit для...

13
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
15.04.2013, 06:32 2
Цитата Сообщение от Levenyatko Посмотреть сообщение
Подскажите пожалуйста как можно сделать проверку вот в каком случае:
чтоб, например, в поле Фамилия (которое должно быть заполнено на русском) нельзя было ввести несколько букв на украинском или английском..внешне то они похожи..
В общем модуле объявление
Visual Basic
1
2
Public Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" _
                                        (ByVal pwszKLID As String) As Long
Процедура обработки события "Нажатие клавиши" (KeyPress) поля Фамилия
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Фамилия_KeyPress(KeyAscii As Integer)
Dim KLN$
  If ChrW(KeyAscii) Like "*[A-ZА-ЯїЇєЄіІёЁґҐ]*" Then
    KLN = String(9, 0)
    GetKeyboardLayoutName KLN
    If CLng(Left$(KLN, InStr(1, KLN, Chr(0)) - 1)) <> 419 Then KeyAscii = 0
  End If
End Sub
1
2 / 2 / 2
Регистрация: 05.07.2012
Сообщений: 99
15.04.2013, 19:29  [ТС] 3
minob, а с помощью свойств никак нельзя?
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
15.04.2013, 21:00 4
Цитата Сообщение от Levenyatko Посмотреть сообщение
а с помощью свойств никак нельзя?
Так здесь и задействовано свойство "Нажатие клавиши" (OnKeyPress) поля.

Чем приведенный вариант не угодил?
0
2 / 2 / 2
Регистрация: 05.07.2012
Сообщений: 99
15.04.2013, 22:12  [ТС] 5
minob, да я просто только начинаю это изучать поэтому не особо поняла что там написано..мы sql только немного прошли, а меня тут таким вопросом озадачили.. и вот не пойму как это осуществить. Получается что при создании таблиц, это сделать нельзя..
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
16.04.2013, 08:23 6
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Levenyatko Посмотреть сообщение
мы sql только немного прошли, а меня тут таким вопросом озадачили
Это не SQL, а VBA.
Цитата Сообщение от Levenyatko Посмотреть сообщение
Получается что при создании таблиц, это сделать нельзя..
Можно, но прийдется кое-чем пожертвовать.
Одним из условий задачи является недопустимость ввода букв в украинской раскладке, даже если они совпадают по начертанию с буквами русской раскладки. Но такие буквы (совпадающие), чего не скажешь о буквах английской раскладки, имеют также и совпадающие коды (ASCII, Unicode), т.е они совершенно идентичны, как с точки зрения человека, так и компьютера. Поэтому, если условие сформулировать, так: запретить ввод всех латинских букв, а также украинских, не совпадающих по начертанию с буквами русской раскладки, то отпадает необходимость определения раскладки клавиатуры. В этом случае объявление API-функции GetKeyboardLayoutName можно убрать и соответствующая процедура Фамилия_KeyPress будет таковой
Visual Basic
1
2
3
Private Sub Фамилия_KeyPress(KeyAscii As Integer)
  If ChrW(KeyAscii) Like "*[A-ZїЇєЄіІґҐ]*" Then KeyAscii = 0
End Sub
Кроме того, теперь предоставляется возможность проверять значение поля непосредственно в таблице. Для этого в свойство "Условие на значение" нужного поля таблицы поместить выражение Not Like "*[A-ZїЇєЄіІґҐ]*". Для информативности в свойство "Сообщение об ошибке" поместить текст, например, Ошибка.
Вуаля! Радуемся, хлопаем в ладоши, ведь обошлись без форм и VBA. Но давайте посмотрим, какой ценой.

При вводе символов в поле формы процедура выполняет проверку каждого введенного символа и, если символ запрещен, то он отсекается (не попадает в поле ввода). Таким образом условие задачи о недопустимости ввода запрещенных символов полностью выполнено.

При вводе символов непосредственно в поле таблицы можно будет вводить какие угодно символы, в том числе и запрещенные. Сообщение же об ошибке появится только тогда, когда буде выполнена попытка покинуть поле. Теперь, чтобы нас "выпустили" из поля, необходимо найти (глазками) и удалить (ручками) все запрещенные символы.

Вот эти, мягко говоря, неудобства проистекают из-за того, что нарушен один из принципов работы с БД:
Таблицы предназначены для хранения данных. Обработка же данных должна выполняться через интерфейс пользователя
Цитата Сообщение от Levenyatko Посмотреть сообщение
я просто только начинаю это изучать поэтому не особо поняла что там написано..
Не думаю, что лучше будут обстоять дела и с предложенным для свойства таблицы выражением.
Разберетесь позже, когда освоите VBA.
4
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
16.04.2013, 12:50 7
Сложно пока, но думаю пригодтися, дайте пожалуйста ссылку, где об этом можно прочитать поподробнее.
0
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
16.04.2013, 17:22 8
Цитата Сообщение от Levenyatko Посмотреть сообщение
с помощью свойств никак нельзя?
Язык клавиатуры поля не подойдёт?
0
2 / 2 / 2
Регистрация: 05.07.2012
Сообщений: 99
16.04.2013, 18:47  [ТС] 9
Андрэич, ?? а по конкретнее можно?
0
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
16.04.2013, 21:26 10
У поля формы есть (по крайней мере в конструкторе формы) такое св-во: Язык клавиатуры
1
2 / 2 / 2
Регистрация: 05.07.2012
Сообщений: 99
16.04.2013, 22:30  [ТС] 11
Андрэич, я его искала, но как то не нашла среди свойств..может оно спрятано гдето
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
16.04.2013, 23:46 12
Цитата Сообщение от Levenyatko Посмотреть сообщение
я его искала, но как то не нашла
Для вашей задачи свойство "Язык клавиатуры" (KeyboardLanguage) по-моему не подходит. Вот, что о нем написано в справке
Цитата Сообщение от Help
You can use the KeyboardLanguage property to specify or determine the keyboard language on entry into a control.
Действительно, при входе в поле установливается указанный в свойстве язык. Но затем, в любой момент, можно переключиться на другой язык и вводить, что угодно.
0
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
17.04.2013, 23:07 13
Цитата Сообщение от minob Посмотреть сообщение
Действительно, при входе в поле установливается указанный в свойстве язык. Но затем, в любой момент, можно переключиться на другой язык и вводить, что угодно.
Да, кстати, есть такие программы, которые сами переключают язык клавиатуры по совпадению соседних символов. Это тоже надо учитывать.

Как найти нужное св-во: Конструктор форм - Свойства нужного поля - вкладка Все свойства
0
0 / 0 / 0
Регистрация: 24.03.2015
Сообщений: 1
24.03.2015, 01:30 14
правило проверки поля:"PAR" Like "[A-D]*" какие значения можно вводить? что означает "par"? почему перед like что-либо указывается, если речь идёт о правиле проверки поля в режиме проектирования? помогите, пожалуйста, новичку!!! спасибо.
0
24.03.2015, 01:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2015, 01:30
Помогаю со студенческими работами здесь

Проверка вводимого текста в bat
Как создать проверку вводимого текста в bat? К примеру мне нужно чтобы человек ввёл 123, там будет...

Проверка вводимого числа.
Необходимо выполнить проверку вводимой информации. Пользователь должен вводить целое число и не...

Проверка вводимого символа
Привет.Помогите,надо сделать так ,чтобы в консольной программе при вводе цифр,вместо букв,выдавало...

Проверка вводимого значения
Добрый день. Прошу посмотрите код. ::ИНТЕРАКТИВНОЕ ЗАДАНИЕ HEX :WRITE set /p hex=&quot;Enter new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru