Кратк. - сест. тал.
86 / 50 / 4
Регистрация: 13.03.2008
Сообщений: 543
|
|
1 | |
Вопрос про связь между двумя таблицами20.07.2009, 13:24. Показов 4166. Ответов 21
Метки нет (Все метки)
Привет всем. Помогите встать на путь истинный что-то я немного запутался. В общем проблема в следующем.
Есть база MS Access, в ней есть таблица Отделов и таблица Сотрудников. Таблица "Отделы" состоит из: 1. Код отдела 2. Название отдела Таблица "Сотрудники" состоит из: 1. Код сотрудника 2. Фио сотрудника 3. Код отдела 4. Отдел Т.е. к примеру есть отдел "Бухгалтерия" с кодом 55001, в этом отделе работают сотрудники: Иванов, Петров, Сидоров. Как сделать так, чтобы при изменении названия отдела в таблице "Отделы", это название само поменялось в таблице "Сотрудники" у всех сотрудников, которые относились к этому отделу. Я понимаю что нужно как-то связать эти таблицы по коду отдела, но как это сделать средствами Делфи не совсем разобрался. В общем я немного запутался. Заранее, большое спасибо!
0
|
20.07.2009, 13:24 | |
Ответы с готовыми решениями:
21
Как создать связь между двумя таблицами Связь между таблицами Связь между таблицами Связь между 3-мя таблицами |
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
|
|
20.07.2009, 13:45 | 2 |
вообщето надо брать по id название, то есть в таблице сотрудники надо добавить id раздела, а потом по нему уже название будет
0
|
Кратк. - сест. тал.
86 / 50 / 4
Регистрация: 13.03.2008
Сообщений: 543
|
|
20.07.2009, 13:52 [ТС] | 3 |
mamedovvms, ниче не понял??????
0
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
|
20.07.2009, 13:59 | 4 |
Vit@L, ЗАЧЕМ дублировать название отдела, почему бы не брать только с (Таблица "Отделы")???????????
0
|
Кратк. - сест. тал.
86 / 50 / 4
Регистрация: 13.03.2008
Сообщений: 543
|
|
20.07.2009, 14:20 [ТС] | 5 |
IT-Skyline, Ну а как это сделать, можно подробнее?
0
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
||||||
20.07.2009, 14:43 | 6 | |||||
0
|
Кратк. - сест. тал.
86 / 50 / 4
Регистрация: 13.03.2008
Сообщений: 543
|
|
20.07.2009, 14:46 [ТС] | 7 |
IT-Skyline, ау-у-у-у, как это сделать, подскажи пожалуйста
0
|
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
|
|
20.07.2009, 14:49 | 8 |
так тебе же написали как сделать с помощью запроса
0
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
|
20.07.2009, 14:49 | 9 |
Я отписал вроде как?!
0
|
Кратк. - сест. тал.
86 / 50 / 4
Регистрация: 13.03.2008
Сообщений: 543
|
|
20.07.2009, 14:51 [ТС] | 10 |
Да блин, не так все мне надо. В общем мне нужно вот что:
| Сотрудник | Отдел | | Иванов И.И. | Бухгалтерия | Т.е. мне нужно, чтобы это показывалось в DBGrid'e. Т.е. Отдел брался из справочника отделов, а Сотрудник из справочника сотрудников. Вот и запарился я уже с этими связями и справочниками. Как это сделать, не знаю
0
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
||||||
20.07.2009, 14:53 | 11 | |||||
1
|
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
|
|
20.07.2009, 14:53 | 12 |
ты таблицы то уже сделал или нет а то может мы просто о разном говорим
0
|
Кратк. - сест. тал.
86 / 50 / 4
Регистрация: 13.03.2008
Сообщений: 543
|
|
21.07.2009, 08:55 [ТС] | 13 |
Да, таблицы уже есть.
Добавлено через 56 минут 16 секунд IT-Skyline, Все, спасибо огромное. Получилось. Добавлено через 2 часа 17 минут 11 секунд Вот теперь встала другая проблема. В справочнике "Сотрудники" есть сотрудники, которые не принадлежат ни к одному отделу (ну к примеру разнорабочий), соответсвенно у него код отдела равен 0 и при выполнении запроса, который вы мне подсказали выше, он не включается в справочник сотрудников. Т.е. фактически этот сотрудник есть в базе, но в DBGride не отображается. Как сделать так, чтобы отображались все сотрудники, просто у тех сотрудников, которые не принадлежат ни к одному отделу, в поле "Отдел" было бы пустое значение. Заранее спасибо.
0
|
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
|
||||||
21.07.2009, 09:01 | 14 | |||||
может для таких сотрудников создать отдельный отдел
Добавлено через 2 минуты 27 секунд
0
|
Кратк. - сест. тал.
86 / 50 / 4
Регистрация: 13.03.2008
Сообщений: 543
|
|
21.07.2009, 11:46 [ТС] | 15 |
А вот еще такой вопрос. Как сделать выборку из трех таблиц. Т.е. та же самая ситуация как с отделами, только еще добавляется таблица должностей, из которой нужно так же выбрать должность для каждого сотрудника по коду.
Вот мой запрос: Код
select * , OTDEL.OTDELY_NAME, DOLZNOSTY.DOLZNOST_NAME from SOTRUDNIKI, OTDELY, DOLZNOSTY where SOTRUDNIKI.ID_OTDEL = OTDELY.ID_OTDEL and SOTRUDNIKI.ID_DOLZNOST = DOLZNOSTY.ID_DOLZNOST Какое еще значения по умолчанию, ни фига не понял. Как сделать чтобы этот запрос нормально выполнялся. Задолбался я уже с этими запросами.
0
|
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
|
|
21.07.2009, 11:49 | 16 |
ты скорее всего в запросе не правильно написал DOLZNOSTY.ID_DOLSNOST по этому он тебе и говорит что это не поле таблицы а параметр
0
|
Кратк. - сест. тал.
86 / 50 / 4
Регистрация: 13.03.2008
Сообщений: 543
|
|
21.07.2009, 12:36 [ТС] | 17 |
Вроде бы все впорядке, после 10-го раза переписывания наконец-то написал правильно
0
|
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
|
|
21.07.2009, 12:37 | 18 |
ну что бывает особенно если вчерашний день весело проведен
0
|
Кратк. - сест. тал.
86 / 50 / 4
Регистрация: 13.03.2008
Сообщений: 543
|
|
21.07.2009, 13:43 [ТС] | 19 |
Да нет, я вообще не пью, даже по праздникам. Просто после отпуска работы много, запарился, вот отсюда и вся невнимательность.
0
|
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
|
|
21.07.2009, 13:48 | 20 |
да не я не имел ввиду ничего такого, просто не удачная шутка получилась
1
|
21.07.2009, 13:48 | |
21.07.2009, 13:48 | |
Помогаю со студенческими работами здесь
20
Связь между таблицами Связь между таблицами Связь между таблицами Связь между таблицами Связь между таблицами Связь между таблицами в БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |