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


Автор: Woodlin 3.8.2009, 08:17
Всем здравствуйте,

  У меня возникла такая ситуация, в главную форму вставил подчинённую (в виде таблицы) и Combobox. Хочу сделать так чтобы при выборе значения в списке Combobox в подчинённой форме отображались поля, удовлетворяющие значению Combobox. Список значений Поля со списком берётся из столбца подчинённой формы (получается как автофильтр в Excel)
  Подскажите можно ли в список Combobox добавить сразу целиком столбец и плюс ко всему значение "все значения", чтобы отобразить все записи подчинённой формы?
  Или придётся всё делать через AddItem?

Автор: bopoha 3.8.2009, 11:32
Woodlin, 
Увы, MS Access не распознает запросы "SELECT значение, значение2" без FROM. Чтобы показать пункт "Все записи" придется писать свою функцию заполнения Поля со списком. см. справку по свойству тип источника данных. В это свойство необходимо указать имя функции. Вот пример из справки:
Код

Function ListMondays(fld As Control,id As Variant, _
    row As Variant,col As Variant,code As Variant) _
     As Variant
    Dim intOffset As Integer
    Select Case code
        Case acLBInitialize            ' Initialize.
            ListMondays = True
        Case acLBOpen                    ' Open.
            ListMondays = Timer        ' Unique ID.
        Case acLBGetRowCount            ' Get rows.
            ListMondays = 4
        Case acLBGetColumnCount    ' Get columns.
            ListMondays = 1
        Case acLBGetColumnWidth    ' Get column width.
            ListMondays = -1            ' Use default width.
        Case acLBGetValue                ' Get the data.
            intOffset = Abs((9 - Weekday(Now))Mod 7)
            ListMondays = Format(Now() + _
             intOffset + 7 * row,"mmmm d")
    End Select
End Function



Обрабатывая событие после обновление поля со спиком можно изменять фильтр подчиненной формы:
Код

Private Sub Combo0_AfterUpdate()
    With me.subForm.Form
        .Filter = "field = " & 123
        .FilterOn = True
    End With
End Sub

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