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

Защита от ввода пустого значения при запросе

16.11.2014, 17:04. Показов 2496. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как можно защитить запрос от ввода пустого значения? У меня в бд есть отчет по расписанию группы или преподавателя. Если я ввожу несуществующий табельный номер преподавателя или номер группы, то отчет строится но пустой. И если ничего не ввожу, отчет тоже строится. Можно ли как то защитить от ошибок?

И еще, я когда составляю расписание, в самом низу, номера уроков 7 ноября ввел не попорядку- 3,2,1. Можно ли как то сделать, что если так вводишь, то программа сама исправила и отсортировала?

БД делал частично в 2007 частично в 2010. В 2007 почему то на запросах зависает на минуту или две, незнаю почему. А в 2010 работает без зависаний.
Вложения
Тип файла: 7z БД.7z (251.2 Кб, 5 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.11.2014, 17:04
Ответы с готовыми решениями:

Защита от пустого ввода
Привет всем! Написал программку рассчитывающую возрастные группы(такое было задание). Прога работает, реализована защита от ввода...

Запрет ввода пустого значения в поле формы
Прошу помощи - при формировании формы на основе таблицы - необходимо запретить в форме вводить пустое значения для данного поля, -...

Запрет ввода пустого значения MS SQL 2012
У меня в базе данных в поле стоит запрет ввода пустого значения, то бишь NOT NULL. В делфи работаю с DBNAvigator, при нажатии кнопки...

3
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
16.11.2014, 19:43
1. Защитить запрос от ввода пустого значения как форму или отчет не получится - у запроса нет событий, к которым можно было бы привязать проверку. Но можно, если введено пустое значение, выводить все записи без фильтрации. Вот пример для запроса Расписание преподавателя. Обратите внимание на условие Where. Там проверка на соответствие коду и на "пустоту". Если пусто, то условие Where есть TRUE и выводятся все записи
SQL
1
2
3
4
5
SELECT Лекторы.ФИО, Расписание.ДАТА, Расписание.НОМ_УР, Расписание.КОД_ГР, Расписание.НОМ_АУДИТ, 
      Расписание.КОД_ДИСЦ, Расписание.ТИП_ДИСЦ
FROM Лекторы INNER JOIN Расписание ON Лекторы.ТАБ_НОМ = Расписание.ТАБ_НОМ
WHERE Расписание.ТАБ_НОМ=[Введите табельный номер преподавателя:] 
      OR [Введите табельный номер преподавателя:] IS NULL
2. Источником записей формы вместо таблицы Расписание сделать запрос, отсортированный по полям [ДАТА], [Код_ГР], [НОМ_УР]
SQL
1
SELECT * FROM Расписание ORDER BY [ДАТА], [Код_ГР], [НОМ_УР];
1
73 / 47 / 9
Регистрация: 24.03.2014
Сообщений: 470
17.11.2014, 00:50
каддафи, если запрос вызывается по кнопке на форме, то можно на него повесить проверку поля, в которое должно быть введено значение - сделать сначала проверку на событие, и только если введено не пустое значение - запускать запрос, а в противном случае - выдавать какое-нить предупреждение.
Что-то типа:

Visual Basic
1
2
3
4
5
if isNull (me.Поле1) then ' проверяем поле на наличие знаения
msgbox ("Вы не указали значение!")
exit sub
else
DoCmd... 'имя вашего запроса
Если же хотим проверить на неверно внесенный номер, то достаточно добавить условие на проверку таблицы на наличие такого значения:
Visual Basic
1
2
3
4
5
x = DlookUp ("*", "Название таблицы", "[Поле с номером преподавателя] = ' & me.Поле1 & '")
if x = Null then
msgbox ("Вы указали отсутствующее значение!")
exit sub
else...
Ну а дальше, как предложили - источником формы сделать запрос. Кстати, сам то запрос предложен хороший, можно предложить пользователю также выводить значения без фильтрации, повесив условие на обработку msgbox:
Visual Basic
1
If MsgBox("Не выбрано значение, желаете вывести все записи?.", vbExclamation + vbYesNo) = vbNo Then...
Может, поможет..

Добавлено через 14 минут
опечатка, здесь без пробела перед скобками:
Visual Basic
1
if isNull(me.Поле1)...
1
4 / 4 / 2
Регистрация: 02.10.2012
Сообщений: 188
17.11.2014, 11:07  [ТС]
Спасибо, сделал как в первом варианте. Через второй вариант для меня не понятно и сложновато.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2014, 11:07
Помогаю со студенческими работами здесь

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

Защита от пустого пространства
Добрый вечер, помогите, пожалуйста, как можно избежать ошибки при отсутствии текста, пытался сделать так, но тщетно: private void...

Обработка пустого поля в запросе
Прошу сильно не пинать, только начинаю осваивать этот продукт. Есть запрос и кнопка, по нажитию на которую, спрашивается значение для...

Защита от неправильного ввода при заполнении массива
Хочу чтобы, когда я ввел буквы вышло 'Ошибка', я сделал это через val, без проверки всё работает, 9 цифр ввожу, а вот щас после val...

Вывод пустого поля формата Дата/время в запросе для формы
Добрый день! В форме есть поле с датой последнего занятия (поле из запроса на выборку последней даты). Если такого занятия вообще не было...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru