Я использую текстовое поле для фильтрации списка со списком в Access 2013. Я помещаю код фильтра в подпрограмму Form_Timer, чтобы дать пользователям время набрать всю строку фильтра перед применением фильтра, и я вызываютаймер из текстового поля Change sub.Он отлично работает, за исключением одной вещи: я хочу, чтобы список со списком выпадал и отображал результаты, но он просто не будет работать.Однако я поместил точно такую же строку кода в подпрограмму GotFocus для поля со списком, и эта строка прекрасно работает.
Я также попытался выполнить код фильтра в подпрограмме Change, на случай, если возникнет какая-то странность в отношенииВыполнение Form_Timer.Тот же результат.Вот код:
Private Sub cboCENamesMain_GotFocus()
Me.cboCENamesMain.Dropdown '<---This line works perfectly.
End Sub
Private Sub Form_Timer()
Dim strSQL As String
Me.TimerInterval = 0
Me.txtFilter.Value = Me.txtFilter.Text
Me.cboCENamesMain.SetFocus
strSQL = ""
strSQL = strSQL & "Select DISTINCT [CE ID] "
strSQL = strSQL & "From [tblMyTable] "
If Len(Me.txtFilter) > 0 Then
strSQL = strSQL & "Where [CE ID] Like ""*" & Me.txtFilter & "*"" "
End If
strSQL = strSQL & "Order By [CE ID];"
Me.cboCENamesMain.RowSource = strSQL
Me.cboCENamesMain.Dropdown '<---This line doesn't do what it's supposed to.
Me.txtFilter.SetFocus
Me.txtFilter.SelStart = Len(Me.txtFilter.Text)
Me.txtFilter.SelLength = 0
End Sub
Private Sub txtFilter_Change()
If Len(Me.txtFilter.Text) = 0 _
Or Len(Me.txtFilter.Text) > 2 Then
Me.TimerInterval = 500
End If
End Sub
Я мог бы использовать поле со списком вместо поля со списком, чтобы пользователи могли видеть результаты типизации своего фильтра, но это серьезно ухудшило бы мой дизайн формы.Я искал в Google и в StackOverflow и не нашел никого, кто бы обсуждал эту проблему.Есть идеи?