Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Загадки MS Access: обновление поля со списком


Автор: Maanse 29.9.2010, 17:23
Доброго времени суток всем! Столкнулся со следующей проблемой.
Есть 4 таблицы в access:
Люди (id, фио)
Профессии (id, название)
ПрофЛюди (id, человек, профессия)
Зарплата (id, человек, профессия, З/П)

Соответственно в таблицах "Люди" и "Профессии" указываются фио людей и названия различных профессий.
В таблице ПрофЛюди происходит связка конкретного лица с рядом конкретных профессий, т.е.:
1 | Иванов Иван Иванович(id) | Слесарь(id)
2.| Иванов Иван Иванович(id) | Сантехник(id)
3.| Петров Петр Петрович(id) | Программист(id)

Тоесть 1 человеку может соответствовать несколько записей с разными профессиями.

Проблема обнаруживается в таблице "Зарплатта", где есть два столбца, заполняемые в виде "Поле со списком". По задумке при выброе в поле "человек" поле "профессия" в этой же таблице должно оставлять только те профессии которые привязаны к конкретному человеку, т.е. если выбран "Иванов Иван Иванович" должны отображаться только "Слесарь" и "Сантехник", однако достичь такого эффекта не получается, подлый Access выдает полный список профессий из таблицы "Люди-профессии".

Надеюсь объяснил понятно smile Зарание спасибо!

В аттаче пример этой самой бд.

Автор: aleksh 29.9.2010, 17:34
аттача нет

проблема не совсем понятна, но есть подозрение, что ошибка в запросе выборки профессии

Автор: Akina 29.9.2010, 17:47
А как отбираются записи для поля профессии? статический запрос? динамический запрос? динамическое обновление? прямое заполнение? наложение фильтра? как-то ещё?

Автор: Maanse 29.9.2010, 18:09
Странно что не загрузился в аттач его вроде прилепил, вот щас еще попробую
На всякий вот на айфолдере (13 КБ) [removed]

Ошибки в запросе вроде нет, если бы это был vb я бы просто создал событие onChange для поля "Человек" и данные из него записал бы в //переменную// а в поле "Профессия" вставил бы запрос типа "SELECT Профессии.[Название профессии] FROM Профессии, ПрофЛюди WHERE Профессии.id=ПрофЛюди.Профессия AND ПрофЛюди.Человек=//переменная//;"

Автор: aleksh 29.9.2010, 19:49
кошмар...
а можно дизайн бд поменять?

Автор: Akina 29.9.2010, 20:12
Так. 
В ТАБЛИЦЕ этого сделать нельзя. 
НИКАК.
С данными работают через формы. В БД форм нет.
Нет предмета для обсуждения. Тема закрыта.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)