Помогите с MS Access
2134
5
Значит так. Мне по учебе дали задание создать базу данных в MS Access. Тема - спортивные организации города. Таблицы нужные я создал, связи расставил по спроектированной ER-модели. А вот при создании формы возникла проблема. Я хочу сделать фильтрацию по группам. Т.е. допустим, меня есть в форме два выпадающих списка. В 1-м списке – виды спорта, во втором – тренеры. Требуется настроить форму так, чтобы после того, как я выбрал вид спорта, во втором выпадающем списке появлялись лишь те тренеры, которые которым принадлежит выбранный вид спорта.
Таблицы
1) ID_Sportsman, ID_Trainer, ID_Sport
2) ID_Trainer, ID_Sport, прочие атрибуты тренеров
3) ID_Sportsman, прочие атрибуты тренеров

Форма основывается на запросе из всех трех таблиц. Первичные ключи - все ID, кроме ID_Sport. Связи между соответствующими первичными ключами.
Как поставить фильтр, чтобы он мог фильтровать группы тренеров по видам спорта и выдавать только их выпадающем списке?
Viper
Решал задачи подобную Вашей.
Решить задачу можно:
1. Макросами – устарело немного и муторное это дело))
2. Встроенным средством программирования

Если остановиться на втором варианте ( встроенном VB). Решение следующее.

В событии AfterUpdate поля lstВидыСпорта подставляете процедуру обработки событий.
1. В процедуре считываете идэшник или значения поля ВидаСпорта
и присваиваете его переменной например «varВидСпорта».
2. Далее, посредством свойства «RowSource», присваиваете полю lstТренеры
список значений. Список значений формируется запросом SQL, (который описывается также в тексте процедуры), в котором в качестве условия вводится переменная «varВидСпорта», т.е. выбор тренеров соответствующих выбранному виду спорта.
3. Обновление формы)))
Все. Текст приводить нет смыла.Так как сделать это в вашей БД,
будет быстрее, нежели мне писать текст с нуля.
Дерзайте))
serleg
Хм... Спасибо, конечно...
Но я к сожалению на Visual Basic ничего не писал и слабо представляю как программировать на нем. Я не знаю его втроенных функций. (На Spectrumовском Basic у меня неплохо получалось :)) Э-э-э, вас не затруднит подсказать, как сделать это с помощью макросов? Я знаю что макросом надо монтировать фильтр, но условие отбора для макроса "применить фильтр" я не могу написать... Сказывается отсутствие опыта создания макросов. Т.е. что мне написать в конструктре выражений.
Viper
Давайте лучше сделаем так...
Вы мне в личку скинете вашу базу...
или на ящик serleg@ngs.ru...
это дело 15 минут... вместе с перерывом на чаепитие))...
мне не в напряг будет помочь...
дольше обмениваться сообщениями будем..
Viper
Список Вам сделал. Отправил по почте. Ловите)
Вот только ... просто... ради интереса...
можно узнать назначение базы данных...
если с таблицами более менее понятно, с нормализацией справились на 3+ (шутка)))
то вот с формами....хмммм.... для чего огород
с основной формой спортсменов...
и подчиненной видами спорта....
ниче не понял...))
serleg
2. Далее, посредством свойства «RowSource», присваиваете полю lstТренеры
список значений. Список значений формируется запросом SQL, (который описывается также в тексте процедуры), в котором в качестве условия вводится переменная «varВидСпорта», т.е. выбор тренеров соответствующих выбранному виду спорта.
решал подобную задачу - помогло, спасибо.

однако есть ряд "савсэм темных" мест:

1, как присвоить текущее значение поля с списком текстовому полю?

2, как обращаться к таблице , созданной , например, коструктором, из формы, модуля... встроенного VB, одним словом ?

3. как вызвать форму из формы, модуля... не используя макрос ?