Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/43: Рейтинг темы: голосов - 43, средняя оценка - 4.77
9 / 9 / 0
Регистрация: 08.04.2012
Сообщений: 219

Проверка корректности ввода данных или "защита от дурака"

05.01.2013, 03:37. Показов 8111. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно во всех формах реализовать контроль правилньости ввода данных. Не подскажете на примере, как это вообще делается? Например, справочник Предметы. Что нужно сделать?
Вложения
Тип файла: rar Преподаватели.rar (129.3 Кб, 26 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2013, 03:37
Ответы с готовыми решениями:

Проверка ввода числа. Защита от дурака
Как сделать, чтобы я мог проверять число которое я ввожу, к примеру мне надо, чтобы в переменную х вводили именно 4-х значное число, это...

GUI. Проверка на ввод массива или «Защита от дурака»
Доброго времени суток! Осталось внести в приложение последние штрихи – проверку вводимых данных. Для понимая вот основная часть...

"Защита от дурака" ввода данных в форму HTML, как сделать несколько вариантов ввода текста?
Здравствуйте. Скажите, пожалуйста, как можно сделать при вводе текста в форму возможность ввода нескольких разных слов? Допустим, есть...

11
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
05.01.2013, 09:28
Сначала нужно выбрать ограничения, которым должны удовлетворять данные (какие поля обязательные, какие - уникальный индекс, какие числа положительные, какие - из определенного интервала), задать эти ограничения в таблицах, а в формах ввода/коррекции обеспечить понятный для пользователя вывод сообщений об ошибках. Во вложении Предметы изменены (и таблица и форма). И одна Информатика удалена (связи поставлены на первую) - зачем их было две? См. вложение.
Вложения
Тип файла: rar Копия Преподаватели1.rar (92.8 Кб, 45 просмотров)
0
9 / 9 / 0
Регистрация: 08.04.2012
Сообщений: 219
05.01.2013, 15:47  [ТС]
ltv_1953, у меня было так: каждый предмет относится к определенной кафедре, чтобы потом можно было выбирать при вводе расписания для преподавателя конкретной кафедры только его предметы, а не все подряд. в Вашем варианте просто ушло распределение предметов по кафедрам.

И по поводу основного вопроса: например, нельзя в названии предмета использовать цифры, только буквы русские и латинские. Как именно такое ограничение сделать?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
05.01.2013, 16:14
Цитата Сообщение от Shelty Посмотреть сообщение
каждый предмет относится к определенной кафедре, чтобы потом можно было выбирать при вводе расписания для преподавателя конкретной кафедры только его предметы, а не все подряд
Предмет - это предмет, не может быть две информатики, даже если ее ведут разные кафедры. Если нужно указать, какие предметы могут вести кафедры, то для этого можно использовать дополнительную таблицу, типа Кафедры_Предметы. Кстати, а где у Вас указывается, что предмет ведет конкретная кафедра? В таблицах такого нет, по крайней мере в той версии, которая была выложена.

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

Что касается ввода только буквенных символов - то используйте шаблоны, проверки введенного в событии Form_BeforeUpdate или Поле111_BeforeUpdate.
1
9 / 9 / 0
Регистрация: 08.04.2012
Сообщений: 219
05.01.2013, 16:36  [ТС]
Чтокасается двух информатик - только сейчас увидела, про что Вы говорите - это просто моя опечатка, спасибо, что указали. Конечно, такого быть не должно.

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

Цитата Сообщение от ltv_1953 Посмотреть сообщение
Что касается ввода только буквенных символов - то используйте шаблоны, проверки введенного в событии Form_BeforeUpdate или Поле111_BeforeUpdate.
а можно чуть подробнее про это? мне нужен один пример, как правильно написать и куда именно, а то что-то нигде не могу найти(( Вот сюда надо вводить (см. скриншот)? и какое выражение?
Миниатюры
Проверка корректности ввода данных или "защита от дурака"  
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
05.01.2013, 16:57
Цитата Сообщение от Shelty Посмотреть сообщение
Где указывается, что предмет ведет конкретная кафедра: в таблице Предметы три поля - Код предмета, Название и Кафедра. Вот как раз третье поле и говорит о том, к какой кафедре предмет относится.
Если один и тот же предмет не могут вести разные кафедры, то годится.

Там, где Вы указали на картинке, нужно выбрать процедура обработки событий, нажать постриоть (...) и в созданной заготовке процедуры обработки события написать соответствующие проверки введенного/измененного поля.
0
9 / 9 / 0
Регистрация: 08.04.2012
Сообщений: 219
05.01.2013, 17:02  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Там, где Вы указали на картинке, нужно выбрать процедура обработки событий, нажать постриоть (...) и в созданной заготовке процедуры обработки события написать соответствующие проверки введенного/измененного поля.
это всё понятно, вопрос в том, что надо написать? вот этого как раз не понимаю(( вводить можно только буквы русские и латинские. Как это описать, не подскажете?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
06.01.2013, 00:16
Для каждого символа из введенного поля проверить, что это либо цифра, либо буква русская, либо пробел можно так
Visual Basic
1
2
3
4
5
If Not ((Символ Like "[0-9]") Or (Символ Like "[А-Я]") Or (Символ Like " ")) Then
    Call MsgBox("Неверный символ" _
        , vbOKOnly + vbExclamation, Me.Caption)
    Cancel = True
End If
Переребор символов - выражением Left(Поле, номер символа)
2
9 / 9 / 0
Регистрация: 08.04.2012
Сообщений: 219
06.01.2013, 00:41  [ТС]
добавила код, но теперь, чтобы я не ввела в форму, выводит сообщение об ошибке. что не так??
Вложения
Тип файла: rar Преподаватели.rar (136.0 Кб, 17 просмотров)
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
06.01.2013, 00:59
Полный текст должен быть таким (Вы не выбрали символ из Названия, не сделали цикла перебора, ...)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Название_BeforeUpdate(Cancel As Integer)
    Dim Символ_Названия As String
    Dim Символ_Номер As Integer
    
        For Символ_Номер = 1 To Len(Me.Название)
            Символ_Названия = Mid(Me.Название, Символ_Номер, 1)
            If Not ((Символ_Названия Like "[0-9]") Or (Символ_Названия Like "[А-Я]") Or (Символ_Названия Like " ")) Then
                Call MsgBox("Неверный символ" _
                    , vbOKOnly + vbExclamation, Me.Caption)
                Cancel = True
                Exit For
            End If
        Next Символ_Номер
 
End Sub
1
9 / 9 / 0
Регистрация: 08.04.2012
Сообщений: 219
06.01.2013, 01:02  [ТС]
к сожалению, с vba практически не знакома(( кстати, не посоветуете что-то для чайников, где примеров побольше?

за подробный ответ большое спасибо и прошу прощения за дотошность)
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
06.01.2013, 01:22
Да все нормально. Вы же стараетесь разобраться, в том, что делаете. По поводу VBA - не могу посоветовать конкретную книгу (каюсь - ни одной не читал), но список здесь на форуме есть, а это - знакомая серия Литература по Access, другие книги (которые я читал) в ней очень достойны.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.01.2013, 01:22
Помогаю со студенческими работами здесь

Проверка корректности ввода данных
На форме 3 поля. 1 поле: Кол-во груза на складе 2 поле: Кол-во увезенного груза 3 поле: (вычисляемое: 1 поле-2 поле) Кол-во...

Проверка корректности ввода данных
Нужно обеспечить контроль корректности ввода данных. using System; using System.Collections.Generic; using System.Linq; using...

Циклическая проверка корректности ввода данных (по типу)
Реализовать циклическую проверку корректности ввода данных (по типу) с использованием строкового потока (stringstream) Как в данном...

Проверка корректности ввода данных в свойстве экземпляра класса
Привет. Подскажите плз. Если нужно при вводе значения в свойство класса проверить его корректность set ...

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru