MS Access - 2 поля со списком, один не обновляется - PullRequest
0 голосов
/ 11 октября 2011

У меня есть два поля со списком в форме. Первый позволяет пользователю искать запись по имени, и когда запись выбрана, все остальные элементы управления в форме обновляются. Я не помню, как я это сделал, и думаю, что, возможно, это произошло благодаря волшебнику. Но теперь я хочу добавить второе поле со списком, которое позволяет пользователям осуществлять поиск по адресу, но когда в этом новом поле со списком выбран адрес, запись не обновляется.

Вот что я пробовал:

Private Sub Form_Activate()
    Me.Refresh
End Sub

И ...

Private Sub Combo250_AfterUpdate()

Me.Requery

End Sub

А также макрос SearchForRecord, который ищет первую запись с использованием этого предложения WHERE

="[ID] = " & Str(Nz(Screen.ActiveControl,0))

Две задействованные таблицы - Демография и Адреса, и они объединены столбцом идентификатора.

Пожалуйста, помогите!

Ответы [ 2 ]

1 голос
/ 11 октября 2011

Используйте мастер, чтобы добавить поле со списком, и когда опция показывает «Найти запись в моей форме на основе значения, выбранного в моем поле со списком», выберите это и продолжите работу в мастере.

Код вручную:

With Me.RecordsetClone
    .FindFirst "Address='" & Me.cboAddress & "'"
    If Not .NoMatch Then
        Me.Bookmark = .Bookmark
    End If
End With
0 голосов
/ 11 октября 2011

Прежде всего, вы должны дать элементам управления значимые имена, такие как cboSearchByAddress.

Я не знаю, как работает макрос SearchForRecord, но вы можете изменить код в событии AfterUpdate на:

Private Sub cboSearchByAddress_AfterUpdate()
  Me.Filter = "[ID]=" & Nz(cboSearchByAddress,0))
  Me.FilterOn = True
End Sub

Вам может потребоваться изменить Nz(cboSearchByAddress,0)) на Nz(cboSearchByAddress.Column(0),0)) в зависимости от настроек поля со списком.

...