Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2009, 16:13   #1
megaten
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 13
По умолчанию Связь между двумя таблицами.

День добрый, суть вопроса:
Существуют 2 таблицы: "Договор" и "Заказчики". В таблице "Договор" есть поле "Заказчик", информация в котором по идеи должна мастером подстановок браться из поля "Наименование" из таблицы "Заказчики". Вопрос в том, а можно ли как-нибудь сделать, чтобы сохраняя связь между таблицами, сделать так, чтобы при вводе информации в поле "Заказчик" в таблице "Договор", новая запись автоматически создавалась в таблице "Заказчики"?
Пробовал делать запросом с заменой поля "Заказчик" на "Наименование" из "Заказчики", но появляется проблема с появлением одинаковых полей в "Заказчиках", проблема частично решается группировкой в отдельном запросе для "Заказчиков", однако способ слишком уж кустарным получается и в итоге все равно в таблице "Заказчики" много одинаковых полей остается.
Можете ли подсказать более проффесиональный способ? Оболочка для БД будет реализована в Delphi, поэтому возможно существует более адекватное решение этой проблемы ресурсами Delphi?

Заранее спасибо.
megaten вне форума Ответить с цитированием
Старый 16.05.2009, 17:23   #2
x8i
Пользователь
 
Аватар для x8i
 
Регистрация: 13.05.2009
Сообщений: 37
По умолчанию

Здесь нужно для поля таблице Договор сделать список подстановки указать источник данных поле Наименование из таблицы Заказчики и установить свойство ограничится списком в "Да". Тогда если пользователь попытается ввести наименование заказчика, отсутствующее в таблице заказчики сработает событие NotInList этого поля. Надо написать обработчик этого события, который новое значение будет заносить в таблицу заказчики.
C++ Builder 6
x8i вне форума Ответить с цитированием
Старый 16.05.2009, 17:59   #3
megaten
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 13
По умолчанию

2 x8i

Большое спасибо, сейчас попробую

upd

Все получилось. Еще раз спасибо.

Последний раз редактировалось megaten; 16.05.2009 в 21:03.
megaten вне форума Ответить с цитированием
Старый 17.05.2009, 01:16   #4
megaten
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 13
По умолчанию

Решил не создавать новой темы
Возник такой вопрос: как в Access сделать, чтобы подобная таблица
была связана целиком с отдельной строкой в другой таблице, а не каждая строка по отдельности. Т.е. чтобы весь перечень в этой таблице относился к одному договору(строке) из другой таблицы?
megaten вне форума Ответить с цитированием
Старый 17.05.2009, 12:26   #5
x8i
Пользователь
 
Аватар для x8i
 
Регистрация: 13.05.2009
Сообщений: 37
Радость

В таблицу с перечнем работ надо добавить поле которое будет содержать номер договора, и связывать эти таблицы по полю номер_договора. Это будет отношение один ко многим. Т.е. одному договору будет соответствовать перечень работ, которые к нему относятся, в поле №договора которых стоит номер данного договора. Если я правильно понял вопрос конечно).
Работы.rar
C++ Builder 6
x8i вне форума Ответить с цитированием
Старый 17.05.2009, 14:17   #6
megaten
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 13
По умолчанию

Еще раз спасибо, буду делать именно так
megaten вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с TDBCtrlGrid и двумя таблицами из БД kiber0net0 БД в Delphi 4 02.10.2008 00:10
Связи между таблицами! Alexij БД в Delphi 1 10.06.2008 18:11
Связь между таблицами Катрина БД в Delphi 3 17.05.2008 18:24
Связь с таблицами Nikolaeva Общие вопросы Delphi 1 04.10.2007 15:09
Как из Delphi программно создать связь между двумя базами Access? Dimm Microsoft Office Access 6 12.01.2007 14:35