Это ошибка доступа?моя проблема с фильтрацией формы по введенному значению txtBox в разделенной БД - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть БД Access 2016, 64 бита содержат связанные таблицы с формой разделения поиска, в которой есть txtBox, который фильтрует записи в соответствии с введенным значением.Все это прекрасно подходит для месяцев и тысяч записей.Когда я хочу сделать его более профессиональным для развертывания его другими пользователями, переписав другую аналогичную БД, но с 32-битным Access 2016 и разделив его с самого начала на Backs-end таблиц и Front-end, форма поиска не показала никакихзапись, когда я запускаю параметр поиска в событии после обновления!

форма поиска связана с запросом, я изменяю ее на новый, также пытаюсь связать форму непосредственно только с одной таблицей для тестирования;не идет правильно, показывает ноль результатов.при удалении фильтра все записи снова отображаются.

, когда я изменяю фильтр непосредственно из свойств формы, он также не работает при поиске строки, но когда поиск первичного ключа в элементе управления формы, удерживающем его, работает нормально.,(поиск по строкам не показывает результатов, поиск по номерам (например, по значению ID, показывает правильные результаты). И очень странно, когда я строю другую новую БД (то же приложение доступа) только для проверки того, что происходит, с формой и присоединениемразделить внутренние таблицы и текстовое поле в форме, чтобы ввести ключевые слова, чтобы показать все связанные записи в этой разделенной форме, он отлично работает, как для строк, так и для чисел?

Private Sub txtSearch_AfterUpdate()

Dim strFilter As String

    On Error Resume Next

    If Me.txtSearch.Text <> "" Then

        strFilter = "[Complaints] Like '*" & Me.txtSearch.Text & "*'"
        Me.Filter = strFilter
        Me.FilterOn = True
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
    With Me.txtSearch
        .SetFocus
        .SelStart = Len(Me.txtSearch.Text)
    End With

End Sub

когда положить строкув поле txtsearch, код должен искать любую строку в [Жалобы], аналогичную ей, и отображать записи, в которых он содержится.

у меня он работает в старой БД 64 бит. Не разбит, но не работает дляНовые 32-битные БД разделены на заднюю и переднюю часть.

1 Ответ

0 голосов
/ 30 декабря 2018

Будьте осторожны, используя .Text, так как для фокусировки требуется элемент управления.Так что попробуйте:

Private Sub txtSearch_AfterUpdate()

    Dim strFilter As String

    ' On Error Resume Next       ' Don't use while debugging.

    If Nz(Me!txtSearch.Value) <> "" Then
        strFilter = "[Complaints] Like '*" & Me!txtSearch.Value & "*'"
        Me.Filter = strFilter
        Me.FilterOn = True
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
    With Me!txtSearch
        .SetFocus
        .SelStart = Len(.Value)
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...