![]() |
|
Модераторы: Akina |
![]()
|
|
| DGV |
|
|||
|
Участник Профиль Группа: Участник Сообщений: 11 Регистрация: 5.12.2005 Репутация: нет Всего: нет |
Помогите пожалуйста. Я не знаю как сделать задачу. Не получается. Необходимо ликвидировать подразделение, но чтобы его ликвидировать необходимо сначала уволить или перевести из него работников. Как делается увольнение я знаю, а вот ликвидировать не могу.
Подскажите пожалуйста как это сделать и что в этом главное? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
А теперь подробно. Что за база. Структура таблиц, связи. Ликвидация - это удаление записи из таблицы подразделений? тогда какая именно ошибка возникает при попытке удаления записи?
В общем телепатов нет, а без исходных данных помочь тебе невозможно -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| DGV |
|
|||
|
Участник Профиль Группа: Участник Сообщений: 11 Регистрация: 5.12.2005 Репутация: нет Всего: нет |
Как сделать так, чтобы из таблицы подразделений удалялась запись, т.е. подразделение только в том случае, если там нет работников? Существует 4 таблицы : "дети", связанная с табл."личная" через кодсотрудника, табл. "Личная", связанная с табл. "Работа" через кодсотрудника и "Работа", связанная с "Подразделения" через кодподразделения. Типы отношений "Один-ко-многим".
|
|||
|
||||
| DGV |
|
|||
|
Участник Профиль Группа: Участник Сообщений: 11 Регистрация: 5.12.2005 Репутация: нет Всего: нет |
Таблица Подразделения состоит из: КодПодр,НаименПолн,НаименСокр ( у всех тип данных текстовый)
Таблица Работа: КодР (счетчик), КодСотр (числовой), ДатаРаб (Дата/время), ДатаПрик (Дата/время), НомПрик (числовой), КодПодр (Текстовый), Должность (Текстовый), Оклад (денежный), ПризнакПоследней (логический) Таблица Личная : КодСотр (Счетчик), ФИО (текстовый), ДатаРожд (Дата/время), Образов, СемПолож, Адрес, Город, ПочтИнд, Телефон, Пол (Текстовые) Таблица Дети: КодД (Счетчик), КодСотр (Числовой), Имя (Текстовый), ДатаРожд (Дата/время) |
|||
|
||||
| dionisiu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: 1 Всего: 2 |
Иерархия (струтура) вроде правильная.
Следовательно, таблица Подразделения - это справочник для таблицы Работа. из фразы автора следует, что в базе (оболочке) предусмотрен способ удалить сотрудника, но нет способа удалить подразделение. То есть два варианта: либо автор не знает, как удалить запись из таблицы руками, либо связи таблиц этого не позволяют и вылезает непреодолимая для автора ошибка, хотя в этом случае автор мог её и выложить, или упомянуть, чего не произошло. Думаю, надо из таблицы Работа удалить все упоминания о КодПодр требуемого подразделения (либо руками, либо "переводом" сотрудника), после чего руками удалить запись с таким КодПодр из таблицы Подразделения А если речь идёт о необходимости расширить функционал существующей (изготавливаемой автором) базы, то это другой вопрос |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
||||
|
||||
| dionisiu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: 1 Всего: 2 |
или с работниками вместе, если каскадное удаление полное. Ведь при удаленни из таблы Работа записей с КодПодр=удаляемое подразделение, оттуда же вылетят работники с детями, а это уже произвол работодателя и БОЛЬШОЙ просчёт архитектора базы.
|
|||
|
||||
| DGV |
|
|||
|
Участник Профиль Группа: Участник Сообщений: 11 Регистрация: 5.12.2005 Репутация: нет Всего: нет |
Т.е. надо сначала сделать перевод сотрудников, а затем удалить запись с таким КодПодр из таблицы Подразделения, но как задать это условие в программе? Необходимо, чтобы была форма, на которой кнопка, при нажатии, на которую удалялось бы подразделение, но только при условии,что из него все сотрудники уволены или переведены.
|
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
напиши запрос
и проверяй при нажатии на кнопку наличие нулей.. |
|||
|
||||
| DGV |
|
|||
|
Участник Профиль Группа: Участник Сообщений: 11 Регистрация: 5.12.2005 Репутация: нет Всего: нет |
Спасибо, попробую
Добавлено @ 15:49 какие есть ещё варианты и предложения?Пишите пожалуйста. |
|||
|
||||
| dionisiu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: 1 Всего: 2 |
кусок базы дай.
|
|||
|
||||
| DGV |
|
|||
|
Участник Профиль Группа: Участник Сообщений: 11 Регистрация: 5.12.2005 Репутация: нет Всего: нет |
Это для формы на увольнение, аналогично надо сделать для ликвидации.
Это сообщение отредактировал(а) DGV - 5.1.2007, 18:48 |
|||
|
||||
| dionisiu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: 1 Всего: 2 |
ковыряюсь в базе. сразу несколько вопросов: что имеется ввиду в поле ДатаРаб? ведь есть поле ДатаПрик - хранящее дату приказа о приёме (или перемещении на новую должность?) Например, товарищ Борисов П.А. - 05,10,90 принят инженером, а с 15,10,95 - начальником ВЦ. При этом код работы другой, а ДатаРаб в первой записи отличается от ДатаПрик.
или это небрежный пример? |
|||
|
||||
| DGV |
|
|||
|
Участник Профиль Группа: Участник Сообщений: 11 Регистрация: 5.12.2005 Репутация: нет Всего: нет |
Я понимаю это так: ДатаРаб - это когда сотрудник был принят на работу, а ДатаПрик - это дата приказа об увольнении. dionisiu большое спасибо за попытки разобраться в базе.
|
|||
|
||||
| DGV |
|
|||
|
Участник Профиль Группа: Участник Сообщений: 11 Регистрация: 5.12.2005 Репутация: нет Всего: нет |
С Рождеством всех!!!!! Всего самого наилучшего, исполнения желаний!
Добавлено @ 16:02 Вот такой ещё вопрос: Какое свойство задаёт количество строк в ListBox? |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |