Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > создание каскадного списка


Автор: meier 30.8.2007, 10:58
Есть такая простая проблема:
 
в создаваемой форме на основе существующей таблицы есть два столбца с типом int, первый street_type, второй street

Для отображения поля street не ввиде числа, используется combobox  в котором в качестве row source используется следующий запрос

SELECT     street_id, street
FROM         street


хочу в него добавить строку

where street.street_type_id = "то значение которое стоит в форме в столбце street_type"

как к нему правильно обратиться (название формы objects, обращение forms!objects!street_type - не работает)

Если можно ответьте как это сделать не используя VBA

Автор: bopoha 31.8.2007, 01:26
Без программирования никак.
При событии "вход" в поле со списком програмно менять запрос. Присваивать свойству элемента управления RowSource. 

Код

Private Sub <ПолеСоСписком>_Enter()
    Me.<ПолеСоСписком>.RowSource = "... WHERE <поле> = " & Me.<поле>
End Sub


При событии "выход" возвращать обычный запрос. Это нужно для того, чтобы после выбора значения можно было посмотреть выбранные значения для других записей.

Автор: meier 31.8.2007, 10:28
именно так? попытался что-то не работает, после Me точно должна стоять ., а не !

Автор: Akina 31.8.2007, 11:49
Цитата(meier @  31.8.2007,  11:28 Найти цитируемый пост)
именно так?

После набора Me и точки появляется выпадающий список свойств/методов. Среди них обязано быть имя контрола - его и выбирай.

И вообще неплохо бы почитать в хелпе, на что указывает точка и на что - восклицательный знак.

Автор: meier 6.9.2007, 11:41
Вообще конечно заработало, но вот Enter и Exit работать почему то не хотели и выдавали ошибки, наиболее удобным оказалась использовать GotFocus и LostFocus, если можно поясните в чем разница?

Автор: bopoha 7.9.2007, 23:54
Цитата(meier @  6.9.2007,  11:41 Найти цитируемый пост)
 выдавали ошибки

Какие?

Событие вход возникает до получения фокуса, выход возникает до потери фокуса. © встроенная справка

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)