![]() |
Microsoft Office Access 2007 столбец подстановки, выбор определенных значений.
Здравствуйте уважаемые участники форума.
Давно не могу решить проблему с полем подстановки в Microsoft Office Access 2007 Есть три таблицы: 1. "Контингент обучающихся", со столбцом подстановок "Контингент" с выбором фиксированных значений, столбец предоставляет возможность выбора трех вариантов (порядковые номера поставил для информации, в записях они отсутствуют!) 1. Интерн 2. Слушатель 3. Переподготовщик 2. "Учебный процесс", со столбцом подстановок "Специальность" с выбором значений из таблицы "Справочник специальностей", столбец предоставляет возможность выбора следующих специальностей: (порядковые номера поставил для информации, в записях они отсутствуют!) 1. УЭФ 2. ФТ 3. ФХ и ФГН 4. Фармация 5. КЛД 6. ФПы 7. Наркотика 8. ДЛО 3. "Справочник специальностей" содержит столбцы "КодСпециальности" и "Специальность", ее значения используются для столбца подстановок "Специальность" в таблице 2 ("Учебный процесс") для ввода специальности. Нужно сделать так, чтобы при выборе контингента в столбце "Контингент" из первой таблицы "Контингент обучающихся" во второй таблице "Учебный процесс" в столбце "Специальность" можно было выбирать только специальности, которые соответствуют данному контингенту. Например: 1. Интерн (специальности с 1 по 3) 2. Слушатель (специальности с 1 по 8) 3. Переподготовщик (специальности с 1 по 4) В Интернете я так и не смог найти внятную информацию по этому вопросу. Подскажите пожалуйста как решить проблему. Буду очень благодарен. |
Надо сделать еще одну таблицу, в которой будут соответствия контингенту данных из других таблиц.
Например, так: Структура таблицы: Код:
кодКонтингента КодУчебногоПроцесса |
Вложений: 2
Вроде бы уже близко к пониманию, но мне все еще не совсем понятны некоторые важные моменты:
1. В Вашей таблице какой формат должен быть у полей - счетчик или числовой? 2. Кроме того, хочу извиниться за то, что предоставил несколько неверную информацию. Вместо таблицы "Справочник специальностей" у меня создана другая таблица, "Справочник Контингент+Специальность", ее структура показана на вложенном файле. Следует ли вместо нее создать вот такие таблицы (я подозреваю что это и нужно для Вашей таблицы) 1.1. "Справочник контингента" содержащую столбцы "КодСпрКонтингента" и "Контингент" 1.2. "Справочник специальностей" содержащую столбцы "КодСпрСпециальности" и "Специальность" 3. С какими таблицами должны быть связи? И какой запрос должен быть создан для связи между таблицами? Кроме того я подозреваю, что в столбцах подстановки "Контингент" таблицы "Контингент обучающихся" и "Специальность" таблицы "Учебный процесс" при той структуре таблицы что Вы предложили будут выбираться лишь цифры, а нужно чтобы выбирался текст. Во втором вложенном файле указана схема данных БД с указанием всех существующих на данный момент связей, названий таблиц и столбцов (В таблице "Учебный процесс" как раз выделен тот столбец, где предполагается создать столбец подстановок с выбором конкретного значения, соответствующего выбору в столбце "Контингент" таблицы "Контингент обучающихся" |
показываю пример "на пальцах"
Код:
Таблица Пользователи Код:
Таблица Специальности Код:
Таблица Соответствия Код:
select Специальности.* from Специальности, Соответствия, Пользователи where |
Вложений: 1
Все равно мне непонятно. Твой запрос конечно понятен и работает, но мне нужна немного другая задача, а следовательно более сложный запрос. Попробую поставить задачу следующим образом:
Всего в пробной базе данных 5 таблиц: 1. Контингент, содержит столбцы: Код:
idКонтингента Контингент Код:
idКонтингОбуч ФИО Контингент (Контингент является столбцом подстановки из таблицы Контингент) Код:
idСпециальности Специальность Код:
КонтингентID СпециальностьID (для попытки вывода в запросе не числовых значений а текста столбец СпециальностьID является столбцом подстановки из таблицы Специальности) Код:
idУчПр ФИО (является столбцом подстановки из таблицы КонтингентОбучающихся) Специальность (здесь и предполагается создать поле подстановки для выбора значений, то есть запрос) 1. Выбирать значения в запросе не из таблицы Контингент, а из таблицы КонтингентОбучающихся из столбца Контингент; 2. Обеспечить привязку записей из таблицы КонтингентОбучающихся строго к записям таблицы УчебныйПроцесс, т.е. к полю ФИО, являющемуся столбцом подстановки из таблицы КонтингентОбучающихся для того, чтобы избежать ошибочного выполнения запроса когда поле ФИО таблицы УчебныйПроцесс ничего не содержит (или сделать поле Специальность неактивным пока не введены данные в поле ФИО); 3. Выбирать значения не фиксированные, как в твоем запросе, а только те, которые соответствуют выбранному в поле таблицы КонтингентОбучающихся столбца Контингент. И прикреплю к этому сообщению с базой данных, содержащие жалкие попытки претворить в жизнь вышесказанное. |
Возник наводящий вопрос. А данные будут вводиться непосредственно в режиме редактирования данных таблицы или же будет форма для заполнения? В зависимости от ответа и решения будут разные.
И почему в УчебномПроцессе и КонтингентеОбучающихся есть 2 одинаковых поля ФИО? Если во второй таблице подстановка, то и поле надо было назвать idФИО, во избежание путаницы |
Подскажи пожалуйста 2 варианта решения проблемы (и с таблицей и с формой), воспользуюсь и тем и другим. Поля переименую по твоему совету.
|
Ну что, так и нет ответа? Я так и знал. Это так называемый форум "компьютерной помощи" где сидят так называемые "специалисты", ни на что оказывается неспособные. Я задал конкретный вопрос и хочу получить на него ответ, неужели никто не знает решение проблемы? Проще наверно взять специальную литературу и разобраться самому. В темку заходили и просматривали ее 197 ламеров но ни один не дал ответа. Я уверен что после моего поста начнутся вопли, что типа почему мы должны тебе помогать, тратить свое время? Ответ: так вас силком никто на форум не тащит! Просто помощь нужна была срочно, а ее здесь оказывается нету, только на простые вопросы способны отвечать, которые за 5 минут решаются.
|
Призрак, а ты не думаешь, что тут сидят люди, которые тоже работают и отвечают только в свободное от работы время?
Цитата:
Цитата:
Я дал тебе направление, разложил по полочкам как и что делать, и что в итоге получил? Цитата:
|
Время: 22:56. |
Время: 22:56.
© OSzone.net 2001-