1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|
1 | |
Зависимые поля (список значений одного поля зависит от значения другого поля)20.07.2015, 14:49. Показов 29562. Ответов 34
Метки нет Все метки)
(
Здравствуйте, Уважаемые участники форума,
изучив множество подобных вопросов на разных форумах, не смог найти для себя нужный вариант. Ответы в основном сводились к решению с помощью VBA, но так как для каждого случая необходимо писать индвидуальный макрос (а без знания того, как это делается... ну Вы в общем поняли), сижу уже неделю без результата. Описание: Имеется БД с таблицами: Товары, Услуги, Клиенты, ЗаказыТоваров и прочее. Проблема в том, что таблица "Товары" содержит очень разношерстный ассортимент, пример наименований: Препарат Эпин, Горшок для Орхидей, Галька, Букет из роз 17А, Ель Тянь-Шаньская. Я хочу (заморочиться и) сделать что-то вроде каталога. Сначала я думал так, что можно сделать таблицу "Товары", в которой будут поля содержащие КодРаздела, КодКатегории, КодГруппы, КодФормы из одноименных таблиц (Разделы, Категории и т.д.), а потом при создании форм всё волшебным образом будет автоматом подстраиваться. То есть: Будет Форма "Товары", где можно будет удобно просмотреть все имеющиеся позиции используя выпадающие списки, а также добавлять новые позиции. При выборе Раздела "Посадочный материал" в последующих вып.сп. отображались лишь те строчки которые принадлежат посадочному материалу => В вып.сп. "Категория" соответственно будут такие строки как: Водные, Цветущие, Лиственные, Почвопокровные, Травянистые, Хвойные и так далее. Большая просьба, подскажите как можно мне это реализовать. Заранее благодарю.
0
|
|
20.07.2015, 14:49 | |
Ответы с готовыми решениями:
34
Как связать между собой два поля (список значений одного поля зависит от значения другого поля) Список значений одного поля зависит от значения другого поля Значение одного поля зависит от значения другого поля
|
8757 / 5604 / 576
Регистрация: 27.03.2013
Сообщений: 19,040
|
|
20.07.2015, 15:02 | 2 |
Показать не получается. т. к. не открывается и типа форматик не тот, но подсказать можно попробовать.
Правда сразу вскакивает вопрос - Форма, где будет происходить фильтрация - Одиночная (Тут довольно просто) или табличная (тут посложнее будет, нужно видеть)
0
|
1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|
20.07.2015, 15:13 [ТС] | 3 |
Здравствуйте, PuhKMV,
спасибо за ответ. Я работаю в Access 2010... Скорее всего одиночная (как понимаю, на одну позицию товара - своя страничка)
0
|
8757 / 5604 / 576
Регистрация: 27.03.2013
Сообщений: 19,040
|
|
20.07.2015, 15:46 | 4 |
В головном поле со списком, обзовем его Поле1, выбираете нужное значение, в событии - После обновления - у данного поля пишите процедуру :
Me.Поле2.Requery типа что бы обновилось Поле2 У поля со списком - Поле2 в источнике строк, с помощью построителя запросов входите в режим конструктора и у поля связи в - Условие отбора Пишите фильтр, типа такого, но с вашими именами [Fopms]![ИмяВашейФормы]![Поле1] Закрываете крестиком. Теперь после обновления Поле1, обновится фильтр в Поле2, где если все правильно сделали покажется только те значения, которые соответствуют Поле1 (Типа раньше введены в подчиненной форме, а не в таблице).
0
|
1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|
20.07.2015, 15:53 [ТС] | 5 |
Огромное спасибо PuhKMV,
сейчас попробую. (в приложении схема, на всякий случай)
0
|
8757 / 5604 / 576
Регистрация: 27.03.2013
Сообщений: 19,040
|
|
20.07.2015, 16:04 | 6 |
Не знаю какая у вас там задумка, но по идее то не так долно быть, а типа так
Разделы делятся на Категории, Соответственно - Разделы - Основная , Категории - Подчиненная Создаем по таблице - Разделы одиночную форму, и вставляем в нее ПодчиненнуюФормутабличного вида, - Категории, указываем Какое поле Основное и какое Подчиненное Теперь ни когда не сможете перепутать. Ввели в поле - Раздел - Цветы В подчиненной вводите, ромашка Василек Роза В основной переходите на другую запись Деревья в подчиненной Дуб, Береза и т. д. Вот теперь у вас поля будут по значению ключевого поля зависеть друг от друга и ни чего не перпутается. Так же если нужно, то и Таблицу - Категории делить На типы или виды почти до бесконечности. Это будут типа справочники.
0
|
1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|
20.07.2015, 16:26 [ТС] | 7 |
Ещё раз очень Вас благодарю, PuhKMV.
По-большому счёту, это Excelовский фильтр. И вариант с запросом уже отпадает?
0
|
8757 / 5604 / 576
Регистрация: 27.03.2013
Сообщений: 19,040
|
|
20.07.2015, 16:40 | 8 |
Не совсем так. Все зависит от того как вы это представляете БД и как намерены с ней работать.
К примеру если как у вас на 1-м рисунке таблицы с правой стороны имеют Иерархическую структуру, типа Разделы подразделяются на Категории Категории подразделяются на Группы Группы на Формы Формы на Виды Виды на Названия, типа это будут - Справочники А уже чисто работать будете только с формой - Товары, то для удовства выбора чисто по иерархии это будет очень даже удобно, т. к. ни чего лишнего просто не сможете выбрать и списки будут меньше, что повлияет на производительность труда, как говорится Долго запрягаешь 1 раз, но потом быстро едешь. Но это будет немного сложнее, типа муторней, так как Для каждой таблицы нужно будет создавать Основную и Подчиненные формы, но за то не будет ошибок. Заказы, клиенты и другие таблицы, это уже другой разговор, т. к. что бы чего то продать, нужно сначала правильно ввести товар.
1
|
1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|
20.07.2015, 16:41 [ТС] | 9 |
А схему отношений нужно будет менять? Или пусть так и остается, через таблицу "Товары"?
У меня тут есть сумасшедший вариант:
0
|
1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|
20.07.2015, 16:54 [ТС] | 10 |
Я тогда сейчас попробую для каждой таблицы создать Основную и Подчиненную формы.
У меня есть похожая форма Заказы Товаров. Получается делаю так, выбираю Мастер форм, добавляю две таблицы и определяю которая из них будет основной. А потом создаю Форму "Товары". Только я сейчас не понимаю, как я смогу в этой форме воспользоваться подготовленными формами Раздел, Категорияи т.д.?
0
|
1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|
20.07.2015, 17:35 [ТС] | 11 |
К сожалению, обнаружилась проблема.
Подчинённая таблица "Категории" загружает данные из таблицы "Товары", и там соответственно в строчках следующее: Водные Водные Лиственные Хвойные Лиственные... ![]()
0
|
8757 / 5604 / 576
Регистрация: 27.03.2013
Сообщений: 19,040
|
|
20.07.2015, 19:18 | 12 |
Я вас в самом начале специально переспросил
Одиночная или табличная формы, вы ответили. что одиночная. В табличной нужно писать более сложные процедуры для кахдого поля На - Вход На - Выход и На - Текущая запись формы.
2
|
8757 / 5604 / 576
Регистрация: 27.03.2013
Сообщений: 19,040
|
|
20.07.2015, 19:32 | 13 |
![]() Решение
kja, Смотрите пример
В начале Пишите - Категории Потом для каждой категории - свои Типы У каждого Типа - свое Наименование Это типа справочники приблизительно возможных товаров В форме - Каталог, типа Прайс-Листа для каждого поставшика иерархически - Слева на Право вводите товар какой он и только он вам поставляет и по какой цене. И уже в форме - Поставки или заказы поставщику вы мигом выбираете возможный товар и его количество.
1
|
1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|
21.07.2015, 06:04 [ТС] | 15 |
0
|
1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|
21.07.2015, 07:05 [ТС] | 16 |
спасибо большое, PuhKMV,
эта БД очень крутая. Я бы хотел что-то вроде такого или такого
0
|
1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|
21.07.2015, 07:30 [ТС] | 17 |
Огромное спасибо, mobile, Ваш вариант тоже потрясный.
Получается, для этого нужно связать таблицу с таблицей по очереди и сделать запросы. Макросы я не нашел. Добавлено через 6 минут Извиняюсь, какой то глюк с ответами произошел. Добавлено через 5 минут PuhKMV, выходит, здесь нужно только связать таблицы по очередности, вписать коды основных таблиц в подчинённые, ни макросов, ни запросов нет?
0
|
8757 / 5604 / 576
Регистрация: 27.03.2013
Сообщений: 19,040
|
|
22.07.2015, 08:38 | 18 |
Вторая картинка соответствует тому как я в начале расписывал для одиночной формы, но правильно ввести данные сможете только в одиночной, а просматривать в табличной, тип визуально.
Добавлено через 13 часов 7 минут В принципе и первая пойдет, но это на сколько я понимаю ваш замысел должна быть форма основанная на таблице - Каталог или как у вас - Товары, где верхние поля со списком для фильтрации при выборе наименования, + цены, а уже в Продажах количество и даты продаж..
1
|
8757 / 5604 / 576
Регистрация: 27.03.2013
Сообщений: 19,040
|
|
22.07.2015, 11:17 | 19 |
kja, Вот ловите, накидал примерчик как бы я начал создавать справочник растений, дабы не опрофаниться и не запутаться при продаже посадочных растений и цветочных букетов.
Вначале заполняем разделы, потом категории. И так вплоть до наименований. Посмотрите по Схеме данных.
1
|
1 / 1 / 0
Регистрация: 12.07.2015
Сообщений: 21
|
|||||||||||
22.07.2015, 13:49 [ТС] | 20 | ||||||||||
PuhKMV, я в шоке! Спасибо Вам огромное!
Как раз, хотел Вас спросить. Я начал изменять код и строить последующие списки. Вышла у меня ошибка Runtime Error 3070 Изначальный код без 3-го списка ВыборГруппы:
Объясните пожалуйста, в чём дело?
0
|
22.07.2015, 13:49 | |
Помогаю со студенческими работами здесь
20
Зависимость списка значений поля от другого поля со списком Изменение значений поля в зависимости от другого поля Отображение поля в зависимости от значения другого поля Значения поля формы по значению другого поля Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |