Помогите с MS Access
2221
5
Viper
activist
Значит так. Мне по учебе дали задание создать базу данных в MS Access. Тема - спортивные организации города. Таблицы нужные я создал, связи расставил по спроектированной ER-модели. А вот при создании формы возникла проблема. Я хочу сделать фильтрацию по группам. Т.е. допустим, меня есть в форме два выпадающих списка. В 1-м списке – виды спорта, во втором – тренеры. Требуется настроить форму так, чтобы после того, как я выбрал вид спорта, во втором выпадающем списке появлялись лишь те тренеры, которые которым принадлежит выбранный вид спорта.
Таблицы
1) ID_Sportsman, ID_Trainer, ID_Sport
2) ID_Trainer, ID_Sport, прочие атрибуты тренеров
3) ID_Sportsman, прочие атрибуты тренеров
Форма основывается на запросе из всех трех таблиц. Первичные ключи - все ID, кроме ID_Sport. Связи между соответствующими первичными ключами.
Как поставить фильтр, чтобы он мог фильтровать группы тренеров по видам спорта и выдавать только их выпадающем списке?
Таблицы
1) ID_Sportsman, ID_Trainer, ID_Sport
2) ID_Trainer, ID_Sport, прочие атрибуты тренеров
3) ID_Sportsman, прочие атрибуты тренеров
Форма основывается на запросе из всех трех таблиц. Первичные ключи - все ID, кроме ID_Sport. Связи между соответствующими первичными ключами.
Как поставить фильтр, чтобы он мог фильтровать группы тренеров по видам спорта и выдавать только их выпадающем списке?
Решал задачи подобную Вашей.
Решить задачу можно:
1. Макросами – устарело немного и муторное это дело))
2. Встроенным средством программирования
Если остановиться на втором варианте ( встроенном VB). Решение следующее.
В событии AfterUpdate поля lstВидыСпорта подставляете процедуру обработки событий.
1. В процедуре считываете идэшник или значения поля ВидаСпорта
и присваиваете его переменной например «varВидСпорта».
2. Далее, посредством свойства «RowSource», присваиваете полю lstТренеры
список значений. Список значений формируется запросом SQL, (который описывается также в тексте процедуры), в котором в качестве условия вводится переменная «varВидСпорта», т.е. выбор тренеров соответствующих выбранному виду спорта.
3. Обновление формы)))
Все. Текст приводить нет смыла.Так как сделать это в вашей БД,
будет быстрее, нежели мне писать текст с нуля.
Дерзайте))
Решить задачу можно:
1. Макросами – устарело немного и муторное это дело))
2. Встроенным средством программирования
Если остановиться на втором варианте ( встроенном VB). Решение следующее.
В событии AfterUpdate поля lstВидыСпорта подставляете процедуру обработки событий.
1. В процедуре считываете идэшник или значения поля ВидаСпорта
и присваиваете его переменной например «varВидСпорта».
2. Далее, посредством свойства «RowSource», присваиваете полю lstТренеры
список значений. Список значений формируется запросом SQL, (который описывается также в тексте процедуры), в котором в качестве условия вводится переменная «varВидСпорта», т.е. выбор тренеров соответствующих выбранному виду спорта.
3. Обновление формы)))
Все. Текст приводить нет смыла.Так как сделать это в вашей БД,
будет быстрее, нежели мне писать текст с нуля.
Дерзайте))
Хм... Спасибо, конечно...
Но я к сожалению на Visual Basic ничего не писал и слабо представляю как программировать на нем. Я не знаю его втроенных функций. (На Spectrumовском Basic у меня неплохо получалось :)) Э-э-э, вас не затруднит подсказать, как сделать это с помощью макросов? Я знаю что макросом надо монтировать фильтр, но условие отбора для макроса "применить фильтр" я не могу написать... Сказывается отсутствие опыта создания макросов. Т.е. что мне написать в конструктре выражений.
Но я к сожалению на Visual Basic ничего не писал и слабо представляю как программировать на нем. Я не знаю его втроенных функций. (На Spectrumовском Basic у меня неплохо получалось :)) Э-э-э, вас не затруднит подсказать, как сделать это с помощью макросов? Я знаю что макросом надо монтировать фильтр, но условие отбора для макроса "применить фильтр" я не могу написать... Сказывается отсутствие опыта создания макросов. Т.е. что мне написать в конструктре выражений.
Давайте лучше сделаем так...
Вы мне в личку скинете вашу базу...
или на ящик serleg@ngs.ru...
это дело 15 минут... вместе с перерывом на чаепитие))...
мне не в напряг будет помочь...
дольше обмениваться сообщениями будем..
Вы мне в личку скинете вашу базу...
или на ящик serleg@ngs.ru...
это дело 15 минут... вместе с перерывом на чаепитие))...
мне не в напряг будет помочь...
дольше обмениваться сообщениями будем..
Список Вам сделал. Отправил по почте. Ловите)
Вот только ... просто... ради интереса...
можно узнать назначение базы данных...
если с таблицами более менее понятно, с нормализацией справились на 3+ (шутка)))
то вот с формами....хмммм.... для чего огород
с основной формой спортсменов...
и подчиненной видами спорта....
ниче не понял...))
Вот только ... просто... ради интереса...
можно узнать назначение базы данных...
если с таблицами более менее понятно, с нормализацией справились на 3+ (шутка)))
то вот с формами....хмммм.... для чего огород
с основной формой спортсменов...
и подчиненной видами спорта....
ниче не понял...))
2. Далее, посредством свойства «RowSource», присваиваете полю lstТренерырешал подобную задачу - помогло, спасибо.
список значений. Список значений формируется запросом SQL, (который описывается также в тексте процедуры), в котором в качестве условия вводится переменная «varВидСпорта», т.е. выбор тренеров соответствующих выбранному виду спорта.
однако есть ряд "савсэм темных" мест:
1, как присвоить текущее значение поля с списком текстовому полю?
2, как обращаться к таблице , созданной , например, коструктором, из формы, модуля... встроенного VB, одним словом ?
3. как вызвать форму из формы, модуля... не используя макрос ?