|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.05.2009, 16:13 | #1 |
Пользователь
Регистрация: 16.05.2009
Сообщений: 13
|
Связь между двумя таблицами.
День добрый, суть вопроса:
Существуют 2 таблицы: "Договор" и "Заказчики". В таблице "Договор" есть поле "Заказчик", информация в котором по идеи должна мастером подстановок браться из поля "Наименование" из таблицы "Заказчики". Вопрос в том, а можно ли как-нибудь сделать, чтобы сохраняя связь между таблицами, сделать так, чтобы при вводе информации в поле "Заказчик" в таблице "Договор", новая запись автоматически создавалась в таблице "Заказчики"? Пробовал делать запросом с заменой поля "Заказчик" на "Наименование" из "Заказчики", но появляется проблема с появлением одинаковых полей в "Заказчиках", проблема частично решается группировкой в отдельном запросе для "Заказчиков", однако способ слишком уж кустарным получается и в итоге все равно в таблице "Заказчики" много одинаковых полей остается. Можете ли подсказать более проффесиональный способ? Оболочка для БД будет реализована в Delphi, поэтому возможно существует более адекватное решение этой проблемы ресурсами Delphi? Заранее спасибо. |
16.05.2009, 17:23 | #2 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 37
|
Здесь нужно для поля таблице Договор сделать список подстановки указать источник данных поле Наименование из таблицы Заказчики и установить свойство ограничится списком в "Да". Тогда если пользователь попытается ввести наименование заказчика, отсутствующее в таблице заказчики сработает событие NotInList этого поля. Надо написать обработчик этого события, который новое значение будет заносить в таблицу заказчики.
C++ Builder 6
|
16.05.2009, 17:59 | #3 |
Пользователь
Регистрация: 16.05.2009
Сообщений: 13
|
2 x8i
Большое спасибо, сейчас попробую upd Все получилось. Еще раз спасибо. Последний раз редактировалось megaten; 16.05.2009 в 21:03. |
17.05.2009, 01:16 | #4 |
Пользователь
Регистрация: 16.05.2009
Сообщений: 13
|
Решил не создавать новой темы
Возник такой вопрос: как в Access сделать, чтобы подобная таблица была связана целиком с отдельной строкой в другой таблице, а не каждая строка по отдельности. Т.е. чтобы весь перечень в этой таблице относился к одному договору(строке) из другой таблицы? |
17.05.2009, 12:26 | #5 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 37
|
В таблицу с перечнем работ надо добавить поле которое будет содержать номер договора, и связывать эти таблицы по полю номер_договора. Это будет отношение один ко многим. Т.е. одному договору будет соответствовать перечень работ, которые к нему относятся, в поле №договора которых стоит номер данного договора. Если я правильно понял вопрос конечно).
Работы.rar
C++ Builder 6
|
17.05.2009, 14:17 | #6 |
Пользователь
Регистрация: 16.05.2009
Сообщений: 13
|
Еще раз спасибо, буду делать именно так
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с 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 |