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


Автор: Nikolya 18.5.2007, 06:29
Приветствую! Есть два поля со списком: в первом значения "Совпадение" и "Расхождение", во втором "Категория1", "Категория2". Как сделать чтобы при выборе "Расхождение", во втором поле появлялись значения категорий, а при выборе "Совпадение" оно оставалось пустым.

Пробую так, как написано ниже, но не знаю как сделать для Категорий источником записей этот код.

Код

Private Sub Расхождение_Change()

Dim dbs As Database, rst As Recordset, strSQL As String
  Set dbs = CurrentDb
  If Расхождение = "2" Then
  strSQL = "SELECT Name, ID" & "FROM Категории;"
 End If
End Sub



Может быть нужно сделать запрос, в котором проверять условие и производить отбор, и его указать источником.
Но в таком случае Access выполнять в запросе подзапрос sql не хочет.

Кстати "Расхождения" и "Категории" не связаны друг с другом.

Благодарю.




Автор: Akina 18.5.2007, 08:31
Код

Private Sub Расхождение_Change()
If Расхождение.Column(0) = "2" Then
   Категория.RowSource = "Select Name, ID From [Категории];"
Else
   Категория.RowSource = ""
End If
Категория.Requery
End Sub

Автор: Nikolya 18.5.2007, 08:57
Спасибо! А как указать источником эту программу?

Автор: Akina 18.5.2007, 10:47
Цитата(Nikolya @  18.5.2007,  09:57 Найти цитируемый пост)
как указать источником эту программу? 

Это не источник. Это обработчик события.
  • Вызови в макете формы свойства поля со списком "Расхождение". 
  • Перейди на вкладку "События". 
  • Щелкни на пару миллиметров правее поля события "Изменение". 
  • Выбери "Программа". 
  • В открывшемся окне вставь вышеприведенный код. 
  • Сохрани макет формы.

Автор: Nikolya 22.5.2007, 08:41
Огромное спасибо, Akina!

Все заработало.

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