![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 08.08.2008
Сообщений: 23
|
![]()
добрый всем день!
подскажите пжл где может сидитеть ошибка, все уже перевернул, но решения так и не нашел ни в инете ни в коде. Конечно данный пример заезжен в сети, но в основном речь идет про два списка, и тут вопросов нет но, вот более 2-х никто не описывает. Вообщем есть три выпадающих списка, логика такая, что они каскадно обновляются и в следующем поле только те данные которые соответствуют выбранному значению . Пример вложил. Там два способа, один с помощью VBA и второй с помощью макроса. Посодействуйте в любом. я понимаю что пример очень простой, но все же для практики очень будет полезно. Может у кого есть ссылка на источник информации где описывается про реализацию множества выпадающих списков, очень буду признателен. Заранее огромное спасибо. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 08.08.2008
Сообщений: 23
|
![]()
ну хорошо, может так кто-нибудь сможет подсказать, если опишу:
вообщем имеется три таблицы: 1. Группы с полями (КодГруппы, Группа) 2. Предметы с полями (КодПредмета, Предмет) 3. Преподователь с полями (КодПреподователь, Преподователь) 4. Учебный план (КодГруппы, КодПредмета, КодПреподователь, Часы) На схеме данных "Учебный план" связан один-ко-многим с таблицами по полям с Кодами (1,2,3) Имеется форма: Форма3 в ней имеется три поля с выпадающим списком: 1. Группа (в свойствах источник строк: SELECT Группы.Группа, Группы.КодГруппы, 2 AS orderby FROM Группы LEFT JOIN УчебныйПлан ON Группы.КодГруппы = УчебныйПлан.КодГруппы WHERE УчебныйПлан.КодПредмета=[Forms]![Форма3]![КодПредмета] OR Nz([Forms]![Форма3]![КодПредмета])=0 UNION SELECT 'Все', 0, 1 FROM MSysObjects ORDER BY orderby, Группа ![]() 2. Предмет (в свойствах источник строк: SELECT Предметы.Предмет, Предметы.КодПредмета, 2 AS orderby FROM Предметы LEFT JOIN УчебныйПлан ON Предметы.КодПредмета = УчебныйПлан.КодПредмета WHERE УчебныйПлан.КодГруппы=[Forms]![Форма3]![КодГруппы] OR Nz([Forms]![Форма3]![КодГруппы])=0 UNION SELECT 'Все', 0, 1 FROM MSysObjects ORDER BY orderby, Предмет ![]() 3. Преподователь (в свойствах источник строк: SELECT Преподователь.Преподователь, Преподователь.КодПреподователь, 2 AS orderby FROM Преподователь LEFT JOIN УчебныйПлан ON Преподователь.КодПреподователь = УчебныйПлан.КодПреподователь WHERE УчебныйПлан.КодПредмета=[Forms]![Форма3]![КодПредмета] OR Nz([Forms]![Форма3]![КодПредмета])=0 UNION SELECT 'Все', 0, 1 FROM MSysObjects ORDER BY orderby, Преподователь ![]() В свойствах формы тоже инструкция SQL источника записей: SELECT УчебныйПлан.КодГруппы, УчебныйПлан.КодПредмета, УчебныйПлан.Часов, УчебныйПлан.КодПреподователь, Nz([Forms]![Форма3]![КодГруппы]), Nz([Forms]![Форма3]![КодПредмета]), Nz([Forms]![Форма3]![КодПреподователь]) FROM УчебныйПлан WHERE (((УчебныйПлан.КодГруппы)=Forms!Фор ма3!КодГруппы) And ((УчебныйПлан.КодПредмета)=Forms!Фо рма3!КодПредмета)) Or (((УчебныйПлан.КодПредмета)=Forms!Ф орма3!КодПредмета) And ((Nz(Forms!Форма3!КодГруппы))=0)) Or (((УчебныйПлан.КодГруппы)=Forms!Фор ма3!КодГруппы) And ((Nz(Forms!Форма3!КодПредмета))=0) And ((Nz(Forms!Форма3!КодПреподователь) )=0)) Or (((Nz(Forms!Форма3!КодГруппы))=0) And ((Nz(Forms!Форма3!КодПредмета))=0) And ((Nz(Forms!Форма3!КодПреподователь) )=0)) Or (((УчебныйПлан.КодПреподователь)=Fo rms!Форма3!КодПреподователь)) Or (((УчебныйПлан.КодПреподователь)=Fo rms!Форма3!КодПреподователь)); И естественно перечень полей в области данных. При выборе данных из выпадающего списка группы данные сортируются, во втором же выпад.списке остаются только те которые принадлежат первому. А вот дальше загвозка. При выборе второго элемента данные в третьей не отсортировываются, хотя данные в форме отбираются. мне кажется партак во втором и третьем свойствах источника данных этих выподающих полей. Как вы считаете...? Подскажите... вскипаю уже от раздумок... |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 388
|
![]()
если правильно понял, то как то так ...
на неконкретные вопросы даю неконкретные ответы ...
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 08.08.2008
Сообщений: 23
|
![]()
Step_UA,
да совершенно верно.... четко.. спасибо огромное.... ![]() ![]() ![]() ![]() ![]() единственно вопрос: каким образом расспределяется запрос в самой форме3? во вложении скрин. просто если я хочу добавить четвертое поле, то с этим запросом не понятно, кто в какой последовательности должен идти. Они там хаотично расположены. конечно перед этим создана еще таблица, со всеми связями, а также подскажи пжл как можно привязать 4-тый список. Во вложении исходник. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 388
|
![]()
Хаотичное расположение - это результат преобразования из SQL к представлению в режиме конструктора ... "нормальная" запись:
Код:
на неконкретные вопросы даю неконкретные ответы ...
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 08.08.2008
Сообщений: 23
|
![]()
а четвертый список на том же принципе..... фильтруется по третьему....
я вложил в предыдущем письме... посмотри пжл... |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 388
|
![]()
Четвертое также ...
на неконкретные вопросы даю неконкретные ответы ...
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 08.08.2008
Сообщений: 23
|
![]()
Step_UA, все гениальное - просто....
![]() СПАСИБО ОГРОМНЕЙШЕЕ...... |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 08.08.2008
Сообщений: 23
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа, которая находит в массиве значения, повторяющиеся два и более раз | yugik | Общие вопросы C/C++ | 6 | 08.03.2013 18:14 |
Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран | -KAZtrel- | Помощь студентам | 1 | 18.11.2011 23:25 |
Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран | -KAZtrel- | Помощь студентам | 2 | 18.11.2011 22:29 |
Соединить два списка в третий | Иванов_ДМ | Microsoft Office Excel | 11 | 20.08.2009 08:21 |
Два и более условий финкции If | MAKEDON | Общие вопросы Delphi | 7 | 20.01.2008 09:39 |