powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма с источником-запросом из нескольких таблиц
20 сообщений из 20, страница 1 из 1
Форма с источником-запросом из нескольких таблиц
    #32476593
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите разобраться в трех соснах - описание долгое, но короче - никак
и уж больно сильно достало!!!!!!!

Преамбула(упрощенная и не суть вообще) :

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

Обращаю внимание на условие - на момент заполнения справочника клиентов еще
м.б. неизвестно с какими контактными лицами от этого клиента мы будем контактировать

Теперь о проблеме - как это реализовать :

Делаем Таблицы :
________________

Клиенты (PK:ИНН) :
ИНН - связан с ообеспеч целост данных с ИНН в КонтЛица и Контакты
Наим - наименование клиента
... - остальные поля

КонтЛица (PK:ИНН,ФИО)
Id - суррогатный ключ (счетчик) связан с ообеспеч целост данных с Контакты.IdKontLica
ИНН - FK.Клиенты.ИНН (внешний ключ для Клиенты.ИНН )
ФИО
Тел
...

Контакты (PK:Дата,ИНН) :
Id - суррогатный ключ (счетчик)
Дата
ИНН - FK.Клиенты.ИНН
IdKontLica - FK.КонтЛица.Id (не обязательное!)
...

Надо реализовать Желание пользователя видеть в форме(ленточной/табличной-не важно)
список контактов, каждую запись которого он мог бы редактировать(!) и
добавлять(!) в этот список новые записи.
Причем Запись в списке должна ключать рекзизиты таблицы Контакты и одновремено таблиц
Клиенты (Наим) и КонтЛица (ФИО лица, который представлял клиента при этом контакте)

Так вот, если я строю форму на основе запроса

SELECT Контакты.*, КонтЛица.ФИО
FROM Клиенты INNER JOIN (КонтЛица INNER JOIN Контакты ON КонтЛица.Id = Контакты.IdKontLica)
ON (Клиенты.ИНН = Контакты.ИНН) AND (Клиенты.ИНН = КонтЛица.ИНН);

то запрос обновляем, НО! при попытке оставить незаполненным поле IdKonLica,
а оно ,как я говорил,необязательное, выдается сообщение:

В таблице КонтЛица ядром базы данных MsJet не найдены записи с совпадающим ключевым полем
'IdKontLica'

Что я и не могу никак побороть.
Может, описанная структура данных неправильная,-так ,вроде - три таблицы, все - верно с ключами и связями ?!
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476597
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SELECT Контакты.*, КонтЛица.ФИО
FROM Клиенты INNER JOIN (КонтЛица INNER JOIN Контакты ON КонтЛица.Id = Контакты.IdKontLica)
ON (Клиенты.ИНН = Контакты.ИНН) AND (Клиенты.ИНН = КонтЛица.ИНН);

То, что я выделил красным, лишнее.
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476625
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал и так - все-равно то же сообщение о необходимости IdKonLica
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476627
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
И еще.

1. КонтЛица INNER JOIN Контакты - лучше RIGHT JOIN (иначе не покажет те записи, где контактное лицо не выбрано).

2. Видимо, надо убрать обеспечение целостности данных между этими двумя таблицами.
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476632
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я тоже так мыслил, но RIGHT JOIN дает необновляемый запрос, а обеспечение целостности убирал - не помогает, и ЕЩЕ - эти ограничения на целостность НЕ МЕШАЮТ, если я просто редактирую(или добавляю запсись ) в таблицу Контакты и , как видно, не при чем здесь - дело ,видимо, в запросе, который не будет обновляемым,

НО,но,...
Как же решать поставленную задачу, мне она представляется обычной, но может, я не прав, может это для Access не посильно, надо в Форме разделять данные по таблицам а таким единым запросом никак ?
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476639
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я сейчас не поленился и построил у себя это все. У меня работает.
Правда, я строил с учетом всех трех собственных замечаний.
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476645
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч >
НЕ поленись еще ,Христа ради, кинь сархивированную базку на yuniki@rambler.ru
иначе - не въеду, в чем дело, сам эти примеры уже понастраивал...
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476648
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Отправлено! :^)
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476658
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае с Санычем вариант "Христа ради" не пройдет. :)
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476659
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
:^) Я об этом подумал, но решил не комментировать.
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476683
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спаси вас бог;
у думаю, со временем вам воздастся

А по предмету - вроде все уже идет у меня,
видимо, мешало сомнение , что такие запросы - т.е. в одной записи редактировать и добавлять данные из нескольких таблиц вообще возможны и непонимание их действия в формах
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476685
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
:^) Интересно, однако. Один и тот же запрос работает, если веришь в такие запросы, и не работает, если не веришь...
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476689
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аминь.
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476703
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч
Интересно, однако. Один и тот же запрос работает, если веришь в такие запросы, и не работает, если не веришь... >

Я не знаю, от большой это мудрости , или ума остроты , но воистину это так!
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476719
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВСУ меня работает.
Правда, я строил с учетом всех трех собственных замечаний.

Не поленился и тако же попробовал. Если не использовать твои замечания, ничего не работает.:)
-------------
1>Id - суррогатный ключ (счетчик) связан с ообеспеч целост данных с Контакты.IdKontLica
2> dKontLica - FK.КонтЛица.Id (не обязательное!)
Это как? С одного конца обеспечение целостности данных, а с другого - необязательное поле?

> НО! при попытке оставить незаполненным поле IdKonLica,
> а оно ,как я говорил,необязательное, выдается сообщение

При такой схеме данных безо всяких запросов нельзя оставить пустым поле idKontLica в таблице КонтЛица.

Не нужно на джет пенять, коли структура непонятная.
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476835
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну мне тема интересна, поэтому отвечу , хотя уж решилось :

2 Geo >
1>Id - суррогатный ключ (счетчик) связан с ообеспеч целост данных с Контакты.IdKontLica
2> dKontLica - FK.КонтЛица.Id (не обязательное!)
Это как? С одного конца обеспечение целостности данных, а с другого - необязательное поле? >

Все у меня верно и Jet пинать не надо - cо стороны главной таблицы обеспечение целостности, со стороны подчиненной - поле необязательное
( Ну это часто можно видеть : например, главная - некий независимый справочник, а подчиненная - использующая этот справочник таблица. Совсем не обязательно, что поле в ней ссылающееся на справочник обязано быть заполненным )

Да и потом все работает со всеми обеспечениями целостности!!!

Мешает ТОЛЬКО ОДНО - "AND (Клиенты.ИНН = КонтЛица.ИНН);"

PS Хотя, конечно как не попинать Jet, раз уж речь зашла об этом :

В Access стоит фообще говоря 3 галки :
обеспечение целостности - Так что значит эта без остальных двух - неясно!
каскадное обновление
каскадное удаление


И крайне интерес момент наботы связанный с RIGHT и NULL значениями !
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32476840
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторобеспечение целостности - Так что значит эта без остальных двух - неясно!
Эта без остальных двух значит, что можно заносить только те значения, которые есть во второй таблице.

авторИ крайне интерес момент наботы связанный с RIGHT и NULL значениями !
RIGHT JOIN (как и LEFT JOIN) показывает все записи одной из таблиц, включая те, у которых нет соответствующей записи во второй таблице.
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32477518
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BC прав, а я напрочь наврал "При такой схеме данных безо всяких запросов нельзя оставить пустым поле idKontLica в таблице КонтЛица."

Можно оставить.
Прошу прощения.
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32477529
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А я сейчас проверил. В моем посте от 10 апр 04, 23:42 второе утверждение лишнее. Целостность данных можно оставить. Необязательность поля не помеха.
...
Рейтинг: 0 / 0
Форма с источником-запросом из нескольких таблиц
    #32478364
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там еще такая фишечка помогает-мешает - значение поля по умолчанию, если оно пусто или ,например, 0 - весьма может помогать при правильном использовании в свете вышеупомянутых вещей!
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма с источником-запросом из нескольких таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]