Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ankan
40 / 25 / 0
Регистрация: 28.09.2012
Сообщений: 756
1

Запрет на создание записи в подчиненной форме при отсутствии значения в поле главной формы( или в этой же подчиненной форме) Аксесс 2003

23.03.2013, 12:24. Просмотров 1694. Ответов 7
Метки нет (Все метки)

Доброго времени суток !
Помогите , пожалуйста, решить проблему!

шаг 1. В форме "frmТОиР_2" при вводе в "ПОЛЕ 28" номера изделия ((прибора): можно на выбор 5434;9274;6973 или любого иного из "tblИдентификатор_Изделия ") и переходе с этого поля на любое другое срабатывает запрос "gry_ТОиР_1_2" выводя в главную форму ("frmТОиР_2") данные о изделии(приборе). Появляется код tblИдентификатор_Изделия в левом верхнем углу "frmТОиР_2".

шаг2 . Далее в " frmТОиР_2подчиненная форма" вводится информацию о ремонте этого прибора ( т.е. образуется запись в таблице "tblТОиР" .Код этой записи появляется в левом верхнем углу " frmТОиР_2подчиненная форма".

Все прекрасно, но: остается возможность без выполнения шаг 1. выполнить шаг 2. т.е в таблице " tblТОиР" образуется запись с информацией описывающей ремонт не привязанная к конкретному изделию, что совсем не здорово ( оператор записывает информацию, а она потом не может использоваться т.е. ему приходится вносит ее заново, затем админу приходится чистить таблицу tblТОиР )

Необходимо ввести запрет на создание записи в подчиненной форме " frmТОиР_2подчиненная форма" при отсутствии значения в поле "код tblИдентификатор_Изделия" формы "frmТОиР_2".(поле "код tblИдентификатор_Изделия" есть также и в " frmТОиР_2подчиненная форма". )

Подскажете?
0
Вложения
Тип файла: zip База по ремоту консультация.zip (1.02 Мб, 31 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 12:24
Ответы с готовыми решениями:

Заполнение подчиненной формы, используя поле со списком в главной форме.
Автоматизирую подстановку активных абонементов в программе учета фитнес-клуба:...

Вычисление среднего значения в главной форме из данных подчиненной формы
Здравствуйте гуру Aксесс. Сразу скажу я чайник в этом деле, но очень надо....

Выборка в подчиненной форме 2 из формы 2 по выбранному значению в подчиненной форме 1 из формы 1
Добрый день! Есть 2 формы(на первой форме находится "подчиненная форма 1", на...

Добавление новой записи в подчиненной форме access 2003
Добрый день. Сразу хочу сказать что являюс новичком в этой сфере, так что не...

Сумма из подчиненной формы, отмена записей в подчиненной форме
Нужна сразу помощь по четырем пунктам, форма КвитанцияСкупкиОбмена надо: 1....

7
minob
3532 / 1106 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
23.03.2013, 14:29 2
ankan, а зачем вы в запросе gry_ТОиР_2 источнике записей подчиненной формы "frmТОиР_2 подчиненная форма" использовали для связи таблиц tblИдентификатор_Изделия и tblТОиР правое внешнее объединение
SQL
1
2
tblИдентификатор_Изделия RIGHT JOIN tblТОиР ON 
tblИдентификатор_Изделия.Код_tblИдентификатор_Изделия = tblТОиР.Код_tblИдентификатор_Изделия
а теперь жалуетесь
Цитата Сообщение от ankan
... образуется запись с информацией описывающей ремонт не привязанная к конкретному изделию...
Сделайте внутренне объединение INNER JOIN, как у вас и предусмотрено в схеме данных (причем с обеспечением целостности данных), и запись с пустым Код_tblИдентификатор_Изделия нельзя будет сохранить.

Второй вариант. В процедуру обработки события BeforeInsert подчиненной формы "frmТОиР_2 подчиненная форма" поместить код
Visual Basic
1
2
3
4
  If IsNull(Me.Parent!Код_tblИдентификатор_Изделия) Then
    MsgBox "Отсутствует Идентификатор изделия"
    Cancel = True
  End If
1
ankan
40 / 25 / 0
Регистрация: 28.09.2012
Сообщений: 756
23.03.2013, 14:50  [ТС] 3
Спасибо!
Осмысливать Ваши рекомендации буду несколько позже( сейчас ждут великие домашние дела). После внедрения отпишусь!
0
ankan
40 / 25 / 0
Регистрация: 28.09.2012
Сообщений: 756
26.03.2013, 13:32  [ТС] 4
minob, Внедрил предложенный Вами вариант 2.
Первый вариант пробовал внедрять , при изменении связи таблиц tblИдентификатор_Изделия и tblТОиР в запросе gry_ТОиР_2 (правое внешнее объединение) на внутреннее объединение, действительно сохранить запись с информацией описывающей ремонт не привязанный к конкретному изделию не удается, При этом приходится закрывать ( закрывается) форма frmТОиР_2. Затем надо ее открывать заново- неудобно.Лучше вариант 2.
И вопрос, в запросе можно использовать и правое внешнее объединение, и внутреннее объединение одновременно?( Слышал что могут быть проблемы)
0
minob
3532 / 1106 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
26.03.2013, 14:54 5
Цитата Сообщение от ankan Посмотреть сообщение
При этом приходится закрывать ( закрывается) форма frmТОиР_2. Затем надо ее открывать заново- неудобно.
После сообщения о том, что не найдены записи с совпадающим ключевым полем, нажимал для отката изменений Esc и можно было работать дальше
Цитата Сообщение от ankan Посмотреть сообщение
И вопрос, в запросе можно использовать и правое внешнее объединение, и внутреннее объединение одновременно?( Слышал что могут быть проблемы)
Да, я тоже когда-то читал об этом
Цитата Сообщение от Help
Операции LEFT JOIN или RIGHT JOIN могут быть вложены в операцию INNER JOIN, но операция INNER JOIN не может быть вложена в LEFT JOIN или RIGHT JOIN.
но забыл, т.к. никогда с таким вложением не сталкивался.
В данном случае действительно будет вложение INNER в RIGHT, но, по идее, должна возникнуть ошибка компиляции, чего не наблюдается. А известное правило гласит: если не запрещено, значит разрешено. . А без шуток, если есть предостережение в Help-е, то лучше не рисковать.

Может плохо смотрел, но не увидел, где используются на подчиненной форме поля, отличные от полей таблицы tblТОиР. Так может запрос gry_ТОиР_2 с его связями побоку и сделать источником записей подчиненной формы таблицу tblТОиР.
1
ankan
40 / 25 / 0
Регистрация: 28.09.2012
Сообщений: 756
26.03.2013, 15:46  [ТС] 6
Посмотрел на поля подчиненной формы- действительно они все есть в таблице tblТОиР . Так что можно было использовать в качестве источников данных "frmТОиР_2 подчиненная форма" таблицу.

Но не потребуется ли в будущем вводить поля которых нет в tblТОиР ? поэтому источником данных для "frmТОиР_2 подчиненная форма" выбран запрос а не таблица.
0
minob
3532 / 1106 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
27.03.2013, 09:48 7
Цитата Сообщение от ankan Посмотреть сообщение
Но не потребуется ли в будущем вводить поля которых нет в tblТОиР ? поэтому источником данных для "frmТОиР_2 подчиненная форма" выбран запрос а не таблица.
Какая-то раздвоенность: c одной стороны вам нужна целостность данных, которую вы декларировали в схеме данных и которую, судя по данному топику, пытаетесь поддерживать, а с другой стороны используете запросы с внешним объединением, которые создают лазейки для нарушения этой целостности.
1
ankan
40 / 25 / 0
Регистрация: 28.09.2012
Сообщений: 756
27.03.2013, 11:08  [ТС] 8
Никакой раздвоенности нет , есть недостаток знаний и опыта . Все что сейчас делается -делается методом "научного тыка" опираясь на рекомендации и советы знакомых, друзей , форумчан. Наиболее квалифицированные подсказки , как показал мой опыт, формулируют форумчане. Поэтому Вам отдельная благодарность за рекомендации и вопросы, позволяющие переосмысливать структуру, процедуру и т.д . Задумок у меня много , поэтому если Вас не затруднит посмотрите созданные уже Использование полей таблицы Аксесс (поле со списком) при заполнении таблицы Иксель.Импорт данных таблицы иксель в БД Аксесс 2003 и которые будут создаваться мной темы.
0
27.03.2013, 11:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2013, 11:08

Поле с вложением на связанной главной форме из подчиненной
Здравствуйте, Есть связанная главная форма "Ф2", на ней подчиненная "ПФ" в...

Поиск записи в главной форме по записям в подчиненной
Есть основная форма и подчиненная. В основной форме введены все данные об...

Переход по записям из главной формы в не подчиненной форме
Переход по записям из главной формы в не подчиненной форме как после выбора...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru