Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Несколько связанных Combo box в ленточной форме
 
 автор: maniac   (06.11.2008 в 07:37)   личное сообщение
 
 

Проблемка в следующем. Нужно сделать несколько связанных Combo Box чтоб при выборе значения в главном списке менялись выпадающие значения в другом.
Чтоб было более понятно обрисую так:
Есть три таблицы из которох берутся данные в четвёртую:

1. Countrys (Страны)
- ID_Country
- Country

2. Regions (Регионы)
- ID_Region
- Region
- Country (в этом поле выбирается ID страны к которой привязан регион)

3. City (Населённые пункты)
- ID_City
- City
- Region (в этом поле выбирается ID региона к которой привязан нас пункт)

4. Notes(тут хранятся различные данные по городам)
- ID_Notes
- Date
- Country
- Region
- City
- Notes

Мне нужно чтоб в ленточной форме созданной на основе запроса из таблицы 4 (Notes) я выбирал в выпадающем списке страну и в выпадающем списке регионов той же записи появлялись только те регионы которые привязаны к этой стране. Так же нужно сделать с городами.

Пытался сделать так - на выпадающий список Регионов в конструкторе вешал такой запрос
SELECT Regions.ID_Region, Regions.Region, Regions.Country FROM Regions WHERE (((Regions.Country)=Notes![Country])) ORDER BY Regions.Region;

Но при изменении значения в одном списке Country меняются значение списков Region сразу у всех записей в форме. И если там были заданы значения регионов не той страны что выбрана в списке Country, то ничего не отображается.

Это касается только ленточной формы - в одиночной всё работает, но нужна именно ленточная форма.
Подскажите пожалуйста кто знает как этот баг обойти, а то я сам не могу допереть как это сделать

  Ответить  
 
 автор: osmor   (06.11.2008 в 08:57)   личное сообщение
 
 

это особенность ленточных и табличных форм
Решать можно созданием скрытых полей со списком , которые видны только при редактировании поля
или использованием вот такого решения
http://hiprog.com/index.php?option=com_content&task=view&id=719

  Ответить  
 
 автор: maniac   (06.11.2008 в 10:31)   личное сообщение
 
 

Спасибо что подсказал, а то я думал, что делаю что-то неправильно. Хренова млин что мелкософт такую функцию не сделал... Ладно буду придумывать выход.

  Ответить  
 
 автор: час   (06.11.2008 в 14:04)   личное сообщение
 
 

Извините, что влез, но может поможет...................
Выход тута такой:
Из Полейсписков выбирать значения, а сохранять их в одноимённых полях формы,
в полях предназначеных для хранения данной информации.
А сами эти поля со списком оформлять маленькими по ширине - только как кнопочка выбора вроде, а нажмёшь - там список вываливается.
Может Вам такой вариант подойдёт???

  Ответить  
 
 автор: Гамлет   (06.11.2008 в 22:13)   личное сообщение
20 Кб.
 
 

Как вариант

  Ответить  
 
 автор: maniac   (12.11.2008 в 13:41)   личное сообщение
 
 

Отличное решение :) Сам недогадался... Сделал 2 списка один со всеми значениями которые используются в поле а второй с зависимыми значениями - его поместил поверх первого и сделал невидимым :) Как фокус попадает на список со всеми значениями я делаю видимым зависимый список и устанавливаю на него фокус.
Только вот один косяк. Невидимый комбобокс после после того как становится видимым и получает фокус - не открывается - как его раскрыть програмно?

  Ответить  
 
 автор: maniac   (12.11.2008 в 17:59)   личное сообщение
 
 

Всё... Нашёл сам. Нужно юзать параметр Dropdown, тогда он сразу открытый появляется.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList