|
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
|
||||||
Блокировка входа в подчиненную форму, если в главной не заполнены основные поля10.01.2016, 19:51. Показов 2833. Ответов 17
Метки нет (Все метки)
Доброго времени суток!
Бьюсь над таким вопросом: как заблокировать вход в Подчиненную форму, если в Главной форме (на которой размещена Подчиненная в режиме таблице) не заполнены основные поля и они ключевые? Что сделал: повесил на событие Вход в подчиненную форму проверку IsNull через If, но это работает только один раз. А у меня шесть ключевых полей в Главной. Заполняю первое и делаю попытку входа в Подчиненную (это могут делать мои пользователи) и выходит сообщение: "Индекс или ключ не могут содержать пустое значение", что понятно, т.к. не все ключевые поля заполнены. Вот это сообщение я и хочу заменить на какое - нибудь мое, например: "Введите те-то мол данные". Здесь на форуме была идея скрыть подчиненную форму до полного заполнения главной, но мне нужен именно мой вариант. В Рунете нашел одно лишь предложение:
но у меня оно не работает и другие идеи типа До (После) обновления,вставки и т.п. не получаются. Что не так? и второй вопрос как начинающий художник опытным художникам: а вообще заполняют ли Подчиненную форму в режиме таблицы, когда она располагается на Главной или она там только для просмотра? С уважением!
0
|
||||||
| 10.01.2016, 19:51 | |
|
Ответы с готовыми решениями:
17
Добавление нового поля в подчиненную форму
|
|
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||||
| 10.01.2016, 20:44 | ||||||||
2
|
||||||||
|
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
|
|
| 10.01.2016, 22:46 [ТС] | |
|
Гигантское спасибо! Это помогло. Правда, я хотел, чтобы при каждом пропущенном пользователем поле выскакивало соответствующее этому полю сообщение. Ну да ладно и так отлично. Это раз.
Второе, пошёл перехлест с событием Вход в Подчиненную форму. Получается так: если этого события нет, то при первом открытии Главной, когда она пуста и готова к заполнению, пользователь может "прорваться" в Подчиненную и набрать там строку, и хотя она там из всего двух полей, но если он потом увидит, что эту работу он сделал впустую (т.к. в Главной записей не сделал), то будет злиться и говорить, что программа плохая, что наверное соответствует действительности. Эту проблему решил тем же, Вашим способом. С другой стороны - пусть полазит человек, посмотрит возможности. И всё-таки, можно ли сделать так, чтобы по каждому незаполненному полю Аксесс ругался по-разному и чтоб по-моему?
0
|
|
|
шапоклякистка 8-го дня
|
|
| 10.01.2016, 22:47 | |
|
- сори, не так поняла вопрос, ответила не о том-
1
|
|
|
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
|
|
| 11.01.2016, 01:27 | |
|
Вариант общий: добавить нужным контролам в свойство тэг какую-нибудь строку. И проверять в цикле:
если у контрола такой-то тэг и контрол не заполнен, то выдать какое-нибудь сообщение. Вариант для выборочной ругани: создать несколько надписей и сделать их скрытыми. Проверять каждый контрол отдельно и делать соответствующую надпись видимой. Что до входа в подчиненную форму раньше положенного срока, то можно в момент загрузки главной формы блокировать подчиненную форму и разблокировать её при внесении изменений в главной. Ну, или после того, как все нужные контролы заполнены, или как угодно..
1
|
|
|
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
|
|
| 11.01.2016, 21:33 [ТС] | |
|
corbis, честно говоря, немного не понял ... не ориентируюсь в некоторых терминах, т.к. я "начинающий"
0
|
|
|
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
|
|
| 11.01.2016, 22:25 | |
|
Контрол - textBox (поле), comboBox(поле со списком), label (надпись). У контролов есть свойство "Tag". Что именно не понятно?
0
|
|
|
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||
| 12.01.2016, 22:25 | ||
|
Я делаю иначе. Отменяю обязательные поля как класс. Нет их. Совсем. Но на форме помечаю условным форматированием - красный фон когда поле пустое, обычный заполненное. Это привлекает внимание. Когда есть все данные, то как правило наличие ярких цветовых меток значительно уменьшает вероятность случайного незаполнения. Второе. Делаю форму, или кнопку на имеющейся форме, в которой собирается статистика незаполненных записей по обязательным" полям. Это легко, делается обычными запросами с проверкой на NULL. И когда данные приходят, юзер быстрым поиском находит нужную запись и дозаполняет ее. Администратор БД также может проверить состояние заполненности и сделать нужные втыки.
4
|
||
|
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
|
|
| 12.01.2016, 23:04 [ТС] | |
|
Благодарю Вас за поддержку! Чтобы не тратить время, пока я взял на вооружение первый Ваш вариант, в данный момент это меня устраивает полностью. Чтобы двигаться дальше. И кстати, да, после этого я пришел к отмене обязательного заполнения полей, в данном случае это похоже лишнее. Проблема в том, что мои пользователи (я один из них) не должны пропускать этих полей: 1. это ключевые поля и если юзеры получат системное сообщение об ошибке это введет их в ступор ("дальше что делать") и 2. эти поля представляют собой код статьи расходов по бюджету, который составной и обязательный, т.е. деньги не могут перечисляться и учитываться без указания кода и т.п. Т.е. финансирование по какой статье? Да и приходят деньги целевые, с указанием реквизитов. И именно поэтому мне надо, чтобы если пользователь прошляпил в форме какую-то часть кода (он состоит из 26 цифр, сгруппированных из шести подстатей, разделов, подразделов и т.д.), то он должен получить конкретное указание - куда посмотреть и что написать. Но пока я свел все возможные ошибки в одно сообщение и оформил процедурой по Вашему совету.
Совет corbisа, если Вы об этом написали сейчас (И Вам уже подсказали как), я совершенно не понял и по технологии и по терминологии, о чём ему сообщил с причиной. Свойство Tag в полях не увидел (у меня по-русски), а в Рунете не стал искать что это такое, т.к. уже говорил, что удовлетворился Вашим вариантом пока. Пользуясь случаем хотел у Вас спросить - в чём может быть проблема: в форме три вычисляемых поля Поступило, Распределено, Остаток. По двум первым использую DSum. Остаток как разница через Sum. На одном компьютере результаты вычисляются и мгновенно отражаются. Млин, этот же файл на другом компьютере, всё то же, а результаты отражаются только после моего щелчка на этих двух полях. Пока не щелкну там мышью - пустота. Щелкаю - появляются! Именно поля, где должны быть цифры. Благодарю за помощь!
0
|
|
|
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
|
||||||
| 23.09.2016, 23:21 [ТС] | ||||||
|
Кстати, кому интересно. Проблему блокировки входа в подчиненную форму до заполнения ключевых полей (и главное - с "моими" сообщениями) я решил. На событии До обновления Главной формы установил VBA-код:
0
|
||||||
|
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
|
||
| 23.09.2016, 23:27 | ||
|
лучше бы функцию для повторяющегося кода использовать. А для вывода сообщений я обычно использую служебную таблицу. Но если вам так удобнее и понятнее, то лучше не заморачиваться.
2
|
||
|
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
|
||
| 24.09.2016, 00:00 [ТС] | ||
|
как примерно можно организовать функцию повторяющегося кода? (ещё долго мне эволюционировать )Добавлено через 24 минуты да, сейчас уже подразобрался с чуток. в т.ч. с вашим советом о возможности блокировки входа в подчинённую форму на этапе загрузки Главной (правда не пробовал, поэкспериментирую на днях). тогда было не понятно. насчёт повторяющегося кода: я так понимаю, что надо назначать переменную для поочередной проверки незаполненных полей, которая потом из таблицы выводит соответствующее значение? если не то, остановииииите мееняяяя!
0
|
||
|
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
|
||||||||||||||||
| 24.09.2016, 10:23 | ||||||||||||||||
|
Цикл по контролам:
Добавлено через 6 минут Применимо к вашему коду:
1
|
||||||||||||||||
|
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
|
|||||||||||
| 24.09.2016, 20:07 [ТС] | |||||||||||
|
corbis, спасибо большое. сегодня же сяду за код.
знание сила! Добавлено через 9 часов 10 минут Всё отлично работает. Это потрясающе. Немного скорректировал коды и в моём исполнении они получились вот такими: Вариант 1:
Второй вариант у меня получился такой (и он по факту комбинированный от двух ваших советов):
Добавлено через 6 минут В общем, глобальное спасибо за поддержку! Итого получилось четыре варианта: 1. mobile: где Ошибка формы 3058 2, 3. corbis: два последних, указанных здесь (жаль с функцией я не подразобрался пока) 4. который мой, длинный
0
|
|||||||||||
|
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
|
|||||||||||||
| 24.09.2016, 20:14 | |||||||||||||
|
строку 6 и 7 можно совместить.
1
|
|||||||||||||
|
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
|
|||||||||||||||
| 24.09.2016, 20:46 [ТС] | |||||||||||||||
Добавлено через 3 минуты ' нужные действия Мои извинения. Добавлено через 19 минут ):
0
|
|||||||||||||||
|
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
|
||
| 24.09.2016, 20:47 | ||
|
1
|
||
|
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||
| 24.09.2016, 21:34 | ||
|
Исключение - многозначные поля, где Value не свойство, а объект, содержащий множество значений.
2
|
||
| 24.09.2016, 21:34 | |
|
Помогаю со студенческими работами здесь
18
Как отображать подчиненную форму в окне главной при смене флага?
Активация кнопки, если заполнены текстовые поля Не переключать слайд, если не заполнены определенные поля Как сделать вывод сообщения если поля не заполнены? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|