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

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

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

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как можно сделать проверку вот в каком случае:
чтоб, например, в поле Фамилия (которое должно быть заполнено на русском) нельзя было ввести несколько букв на украинском или английском..внешне то они похожи..
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2013, 02:27
Ответы с готовыми решениями:

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

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

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

13
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
15.04.2013, 06:32
Цитата Сообщение от 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  [ТС]
minob, а с помощью свойств никак нельзя?
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
15.04.2013, 21:00
Цитата Сообщение от Levenyatko Посмотреть сообщение
а с помощью свойств никак нельзя?
Так здесь и задействовано свойство "Нажатие клавиши" (OnKeyPress) поля.

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

Решение

Цитата Сообщение от 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
 Аватар для VinniPuh
9131 / 6141 / 593
Регистрация: 27.03.2013
Сообщений: 20,009
16.04.2013, 12:50
Сложно пока, но думаю пригодтися, дайте пожалуйста ссылку, где об этом можно прочитать поподробнее.
0
 Аватар для Андрэич
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
16.04.2013, 17:22
Цитата Сообщение от Levenyatko Посмотреть сообщение
с помощью свойств никак нельзя?
Язык клавиатуры поля не подойдёт?
0
2 / 2 / 2
Регистрация: 05.07.2012
Сообщений: 99
16.04.2013, 18:47  [ТС]
Андрэич, ?? а по конкретнее можно?
0
 Аватар для Андрэич
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
16.04.2013, 21:26
У поля формы есть (по крайней мере в конструкторе формы) такое св-во: Язык клавиатуры
1
2 / 2 / 2
Регистрация: 05.07.2012
Сообщений: 99
16.04.2013, 22:30  [ТС]
Андрэич, я его искала, но как то не нашла среди свойств..может оно спрятано гдето
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
16.04.2013, 23:46
Цитата Сообщение от 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
Цитата Сообщение от minob Посмотреть сообщение
Действительно, при входе в поле установливается указанный в свойстве язык. Но затем, в любой момент, можно переключиться на другой язык и вводить, что угодно.
Да, кстати, есть такие программы, которые сами переключают язык клавиатуры по совпадению соседних символов. Это тоже надо учитывать.

Как найти нужное св-во: Конструктор форм - Свойства нужного поля - вкладка Все свойства
0
0 / 0 / 0
Регистрация: 24.03.2015
Сообщений: 1
24.03.2015, 01:30
правило проверки поля:"PAR" Like "[A-D]*" какие значения можно вводить? что означает "par"? почему перед like что-либо указывается, если речь идёт о правиле проверки поля в режиме проектирования? помогите, пожалуйста, новичку!!! спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2015, 01:30
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru