430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
|
|
1 | |
Комбинация: обязательное поле в конструкторе таблиц и команда закрыть форму, не работает08.08.2016, 18:47. Показов 1250. Ответов 11
Метки нет (Все метки)
Всем привет..)
Так и должно быть, что команда DoCmd.Close acForm, закрывает форму без разговоров, минуя обязательные поля заданные в конструкторе таблиц? Разве данная команда не равнозначна - нажатию на крестик формы?
0
|
08.08.2016, 18:47 | |
Ответы с готовыми решениями:
11
Обязательное поле! Обязательное поле Это обязательное поле Условно-обязательное поле в форме |
39 / 39 / 11
Регистрация: 24.07.2016
Сообщений: 87
|
|
09.08.2016, 00:20 | 2 |
Хм...
см. порядок событий формы MS Access где то в этой ... даже не знаю ... MSDN за последние годы стала бесполезной помойкой ... Добавлено через 12 минут К форме они отношения не имеют ... При закрытии форма оглядывается на эти правила, но они второстепенны - она тупо выдаёт сабж о невозможности сохранения (в лучшем случае) - и дальше выполняет команду пользователя (т.е. закрывается). Можно сделать специальную Функцию проверки "какчества" данных формы -и повесить её на все попытки пользователя "улизнуть" (их несколько). Если функция вернула False = Стоп!!! Назад!!! или Undo или Delate ... Надеюсь был понятен. Успехов!
1
|
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
|
|
09.08.2016, 00:34 [ТС] | 3 |
Как сделать проверку заполнения полей средствами вба, я знаю, спасибо. Интересует больше то, что если форму закрывать штатным крестиком, то сообщения о не заполнении полей выскакивают, а если закрыть своей кнопкой с кодом DoCmd.Close acForm - никаких сообщений, форма просто закрывается...
0
|
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
09.08.2016, 00:43 | 4 | |||||
В ранних версиях последний параметр Close по умолчанию был acSavePrompt. А в 2010 я вижу, что параметр по умолчанию стал acSaveNo, т.е. закрытие без подтверждения. И если хотите чтобы при закрытии кнопкой в случае незаполненных полей было сообщение, то третий параметр должен быть acSavePrompt:
1
|
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
|
|
09.08.2016, 00:52 [ТС] | 5 |
0
|
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
09.08.2016, 01:05 | 6 | |||||
Так попробуйте (код на кнопке)
1
|
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
|
||||||
09.08.2016, 01:11 [ТС] | 7 | |||||
Да так работает, спасибо. Но выводится обобщающее сообщение, без привязки к полю...
Я вот не пойму почему у меня ваш предыдущий вариант не работает:
acSaveNo (выход без сохранения) acSavePrompt (подтверждение, значение по умолчанию) acSaveYes (сохранение без подтверждения)
0
|
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
|
|
09.08.2016, 02:33 [ТС] | 9 |
Понятно, мне это не дано и не только мне...
Добавлено через 37 минут
0
|
39 / 39 / 11
Регистрация: 24.07.2016
Сообщений: 87
|
|||||||||||
09.08.2016, 03:35 | 10 | ||||||||||
Я пишу так:
На всех попытках выйти из формы:
0
|
Мы один, давай на "ты"
3600 / 1328 / 324
Регистрация: 16.06.2016
Сообщений: 3,146
|
|
09.08.2016, 04:58 | 11 |
sana555, на событие выгрузки формы (Form_Unload(Cancel as Integer)) проверяй заполнены ли поля, если нет, то отмени выгрузку (Cancel=-1), форма не закроется.
ЗЫ. И по "крестику" тоже...
1
|
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
|
|
09.08.2016, 13:36 [ТС] | 12 |
Спасибо, но как я уже упомянул ранее, я знаю как сделать проверку, собаку съел на этих обяз. полях..)). Вопрос ведь в другом: обязательные поля, отмеченные в таблице в сочетании с штатным крестиком - работают изумительно(сообщения выводятся перед закрытием формы), а тоже самое, только в сочетании с своей кнопкой закрытия(DoCmd.Close acForm, Me.Name, acSavePrompt) - не работает( форма закрывается без вывода сообщения)
Вот что есть любое действие? - выполнение какой либо команды, я так думаю. Тык вот, получается нажатие на крестик - ни есть команда DoCmd.Close acForm, Me.Name, acSavePrompt, иначе бы работало так же. Ну да ладно, раз уж мудрецам не снилось какая команда скрывается за "крестиком", так уж что взять с нас обычных смертных...
0
|
09.08.2016, 13:36 | |
09.08.2016, 13:36 | |
Помогаю со студенческими работами здесь
12
Как убрать обязательное поле? Обязательное поле для заполнения Необязательное и обязательное поле для заполнения Указать текстовое поле не обязательное для заполнения Как создать обязательное поле на странице checkuot? Закрыть 2 форму при этом не закрыть весь проект Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |