Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/124: Рейтинг темы: голосов - 124, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110

Выпадающий список на основе предыдущего выпадающего списка

14.01.2012, 12:11. Показов 24316. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

К сожалению в изученных учебниках ответа не нашел, по-этому надеюсь на вашу помощь.

Есть таблица "Подошва". В этой таблице просто перечислены какие виды подошв бывают.
Есть таблица "Материал верха". Там просто список разных кож.материалов.

Есть третья таблица в которой пользователь выбирает "Часть обуви", а второй столбик "материал".

Что мне надо в итоге:
В поле "Часть обуви" человек выбирает "Подошва" и во втором поле "материал" ему показывается материал только из таблицы "Подошва. Ну и соответственно если он выбрал "Материал верха", то во втором столбике показываются только те материалы, что в таблице "Материалы верха"

Но как это сделать - нигде не найду.

Помогите пожалуйста.
Вложения
Тип файла: rar списки.rar (19.4 Кб, 207 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2012, 12:11
Ответы с готовыми решениями:

Выпадающий список на основе предыдущего выбора из выпадающего списка
Помогите пожалуйста. Есть таблица с отделениями (Список реанимаций), есть таблица с фамилиями врачей, работающих в этих отделениях. ...

Выпадающий список после выбора выпадающего списка
Добрый день! В планах создать объемное дерево из выпадающих списков для удобства выбора маркировки прибора. К примеру необходимо...

Заполнение выпадающего списка через другой выпадающий список
Срочно нужна помощь. Нужно заполнить выпадающий список данными с листа с помощью другого выпадающего списка. Например: я выбрал какой-либо...

32
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
14.01.2012, 14:15
Цитата Сообщение от Ruido Посмотреть сообщение
Но как это сделать - нигде не найду
На нашем форуме это один из самых распространенных вопросов, видимо, плохо искали.
Смотрите здесь. Будут вопросы, задавайте
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110
15.01.2012, 20:23  [ТС]
Копирую пример из той темы. Огромное спасибо.
Логику пытаюсь понять...но пилотаж практически высший. Пока мозг с трудом улавливает. (может есть книжка которая позволит приподняться к этому уровню?) Логику акцесса пока сложно впитать.

Но возникла проблема.
Я переключаюсь в ВБА код. А там моя база и всё. Никаких плюсиков что бы раскрыть и посмотреть формы-таблицы-запросы.
А в Вашем примере это есть.

Никак не пойму почему.
0
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110
15.01.2012, 23:55  [ТС]
Отредактировать уже не могу.

Нашел как код добавить. Как обезьянка всё передрал, но почему-то не на все значение ведущего списка идет реакция во втором.

Для простоты прикладываю файл.
Там если выбрать деталь "подошва" не дается выбор из подошвы, а идет из предыдущих.
Вложения
Тип файла: rar база.rar (37.0 Кб, 139 просмотров)
0
 Аватар для Елена
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
16.01.2012, 06:40
Ruido, мне кажется, что необходимо внести изменения в Вашу базу: отчего зависит материал детали, скорее всего конкретно от детали? Тогда таблицу материал надо завязать на таблицу-источник Материалы. Связи пойдут от деталей к моделям и от материала к деталям. Другие связи не нужны. Потом уже можно делать подстановки в формах
1
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
16.01.2012, 08:25
Не срабатывает потому что условие отбора в запросе-источнике не для того поля написали. У вас сейчас так получается: Код материала должен равняться коду выбранной детали, вот они иногда и совпадают.
Кроме того в запросе есть три поля: Код детали, деталь, материал, а в свойствах поля со списком указано Число столбцов = 2, ширина 0см; 2см (создано с помощью мастера, видимо, и не отредактировано).
Во-первых, первым должен идти Код материала, который и является значением в этом поле.
Во-вторых, вторым должно идти название материала, которое нужно отобразить в поле.
В-третьих, надо правильно задать свойства поля, чтоб отображалось то, что нужно.
Итак меняем в запросе порядок полей: Код материала, материал, деталь (из таблицы Материалы, таблица Детали в запросе даже не нужна).
Меняем свойства поля: Число столбцов = 3, Ширина столбцов = 0см;2см;0см (т.о. поля Код материала и Деталь скрыты, отображается Название материла, что нам и нужно).
Вложения
Тип файла: rar база.rar (23.3 Кб, 182 просмотров)
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110
16.01.2012, 14:27  [ТС]
Меняем свойства поля: Число столбцов = 3, Ширина столбцов = 0см;2см;0см
Не могу найти о каком поле речь идет. И сравнивая два файла (до и после правок) не могу найти куда смотреть.

Есть ли какие-нибудь годные книги по тематике? Или это только опытом приходит и впитыванием чужих знаний?
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
16.01.2012, 14:49
Речь идет о поле со списком Материал, которое и надо фильтровать. Для него надо задать эти свойства, чтоб высвечивалось название материала из подстановочного запроса, а его код и деталь были скрыты.
Материала по Access-у в интернете масса, пользуйтесь справкой Microsoft, вот еще неплохой самоучитель. Книг и самоучителей очень много, выбирайте по вкусу.
0
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110
27.01.2012, 01:46  [ТС]
Добрый день.

Продолжаю мучать свою базочку.
В процессе работы пришел к выводу, что лучше использовать форму вида "Несколько элементов" или "Раздельная форма".
Переделал советы выше под эти формы (выбираю тип детали, и в графе материалы выбираются только те материалы, которые идут на эту деталь).
Но столкнулся с бедой, что почему-то все графы "материалы" привязаны к текущему полю формы "деталь".

То есть я выбираю деталь для одной записи, а это ретранслируется на все остальные в графе материалы.
Как с этим безобразием справиться?

Заранее спасибо.
Вложения
Тип файла: rar база.rar (84.4 Кб, 90 просмотров)
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
27.01.2012, 08:31
Данный способ действует только для одиночной формы (на экране видно одну запись).
Обычно ленточные и табличные формы предназначены для поиска и просмотра, для ввода и редактирования - одиночная форма, поэтому в ней как раз и нужна фильтрация списков.
Я делаю так: ленточная только для поиска и просмотра, напротив каждой записи кнопка Подробно, которая открывает одиночную форму для редактирования этой конкретной записи. Также эта одиночная форма для добавления новой записи. Поэтому в ленточной нет необходимости в фильтрации списков.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
27.01.2012, 09:27
Цитата Сообщение от Ameli Посмотреть сообщение
Поэтому в ленточной нет необходимости в фильтрации списков.
У меня в табличной появилась, я сделал буквально вчера.
Начал отсюда:
- в случае табл./ленточной формы можно использовать:
или если прикреплённый и отображаемый столбец - один и тот же (что уже - само по себе - неверно - "прощай нормализация")
или - выводить в списке - все значения, но сортируя первыми (в начало списка) - те которые подходят под текущий id списка, от которого зависит данный список
типа так

SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT Город.Город, Город.КодГорода, 1 AS orderby
FROM Город
WHERE (Город.КодРегиона=[Forms]![Форма1]![Регион])
UNION
SELECT '-----------------------------', 0, 2
FROM MSysObjects
UNION
SELECT Город.Город, Город.КодГорода, 3
FROM Город
WHERE (Город.КодРегиона<>[Forms]![Форма1]![Регион])
ORDER BY orderby, Город;
Взято с SQL.ru
2
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110
27.01.2012, 14:27  [ТС]
Ameli

В моем случае просто задача идет следующая:

Модельер придумывает обувь. Она состоит из кучи деталек. На каждую детальку используется огромный список материала.
Если не делать разбивку "этот материал идет на эту деталь, а вот этот материал идет на эту деталь" и вываливать перед человеком всю базу материалов, то выбрать нужный будет (теоретически) затруднительно. Будет уходить больше времени на выбор из всего списка.
По-этому идея в том, что бы каждая группа материалов - свой материал.
Но выводить для ввода одной группы одну форму - не очень удобно ибо модельер придумал конкретную обувь. Она состоит подошва, стелька, низ, верх, нитки, заклепки, язычки и так далее.
И он должен вбивать свою модель в базу, но ему (теоретически) надо видеть при этом сразу всю картинку целиком. То есть через картину строчек "деталь-материал-норма" идущих одной таблицей он видит как бы эту модель перед глазами.
По-этому вроде бы есть необходимость.

alvk
К сожалению мой уровень не позволяет понять ответ данный для Ameli (

Добавлено через 3 часа 28 минут
Ameli

Выложите пожалуйста вариант своего расположения какой-нибудь простенький. Я скопировал вашу идею. В целом тоже вариант. Но когда я сделал форму-на форму и добавил кнопку, то почему-то у меня открывается в форме для ввода первая запись таблице, а не та кнопку которой я нажал.
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
27.01.2012, 15:02
Код на кнопку:
Visual Basic
1
DoCmd.OpenForm "Название одиночной формы", , "[КодЗаписи] = " & Me![КодЗаписи]
где КодЗаписи - название ключевого поля-счетчика
См. приложение
Вложения
Тип файла: rar db1.rar (13.5 Кб, 204 просмотров)
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110
29.01.2012, 01:39  [ТС]
Возник нюанс.
Ваш код из сообщения отличается от кода в примере. Код в примере работает.

Visual Basic
1
DoCmd.OpenForm "Сотрудники (подробно)", , , "КодСотруд = " & Me![КодСотруд]
Но он показывает готовые записи. А вот когда я создаю новую запись и нажимаю кнопку, то выходит сообщение об ошибке

"Ошибка синтаксиса (пропущен оператор) в выражение запроса "КодСотруд ="

Что тут подправить можно, что бы и пустую ячейку открывала-создавала форма?
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
29.01.2012, 05:33
добавьте перед открытием формы:
Visual Basic
1
me.dirty = false
это сохранит ваш код, по которому вы открываете вторую форму.
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110
29.01.2012, 12:38  [ТС]
Не нахожу куда вставить. Пытаюсь и в код кнопки и в код форм... но ошибка не убирается. Правда я не до конца понял куда вставлять..по-этому методом тыка.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
30.01.2012, 02:51
Цитата Сообщение от Ruido Посмотреть сообщение
DoCmd.OpenForm
Перед этим
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110
31.01.2012, 21:09  [ТС]
Делал-делал базу. И столкнулся с напастью.

В базе есть таблица "Итого_Технологический_Паспорт". Есть форма в виде "Несколько элементов". С ней связана другая форма-расшифровка "СтрокаТехнолог".

Проблема в том.
Что часть записей отоброжаются в этой форме второй. А часть или то что добавляю - не отображаются там.

Как такое может быть - вообще не представляю.

Посмотрите пожалуйста файлик.
////////////////////////////////////

куда вставлять
Visual Basic
1
me.dirty = false
так и не смог найти (хотя объяснили более чем понятно, но не заработало) в итоге просто запретил ввод в форме "Несколько элементов"
Это к слову.
Вложения
Тип файла: rar база.rar (124.2 Кб, 128 просмотров)
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
05.02.2012, 19:34
а может стоит выложить в 2003 формате?
0
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110
05.02.2012, 20:10  [ТС]
К сожалению не могу. В 2007 отказывается.
Есть вариант переносить каждый элемент отдельно, но там у меня уже такая каша из запросов-форм и фиг знает чего, что времени займет массу.

По-этой проблеме...я плюнул и просто закрыл доступ на добавление. И пускай мучаются как Ameli написала.

Просто перетаскивать каждое поле отдельно... не знаю..пугает.

Сейчас мучаюсь над вопросом, как бы сделать так, что бы форма имела кнопочки "свернуть-развернуть". А то у меня монолитно на весь экран.

Да как бы что бы форма брала записи из одной таблицы, а что там поменяют-оставят копировала в другую таблицу.

Но это тема других тем на форуме...да и в 2010 я зря влез( пока сам мучаюсь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2012, 20:10
Помогаю со студенческими работами здесь

Выпадающий список на основе значения из другой ячейки тоже с таким списком.
Требуется создать выпадающий список на основе значения из другой ячейки тоже с таким списком. Например есть такой справочник что: a -...

Обновление выпадающего списка в форме в зависимости от выпадающего списка выше
Есть 3 таблицы (1,2,3) Первая и вторая связаны между собой через таблицу 3. Есть 3 выпадающих списка в Form1. Нужно что бы во втором...

Вывод списка значений поля в выпадающий список
У меня есть таблица, где указывается план количества изделий на выпуск на каждый месяц года. мне нужно в выпадающий список вывести...

Выпадающий список АктивХ (чтение списка по горизонтали)
Здравствуйте, друзья. Подскажите решение вопроса. Есть список АктивХ - который привязан к желтому вертикальному диапазону (V9:V69). Я...

Выпадающий список без создания элементов списка в HTML
Вопрос такой, как сделать выпадающий список на js без создания элементов списка в html var div = document.createElement('div'); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru