PavelMSTU
@PavelMSTU

Как в простой клиенской форме СУБД Access на VBA поставить фильтр?

Имеется БД MySQL.
В качестве "шкурки" есть удалённая работа с MySQL табличками с помощью СУБД Microsoft Access. Допуск осуществляется с помощью odbc драйвера.

Для удобной работы поверх таблицы была создана форма Access с помощью стандартной в Access процедуры: "Клиенские формы --> Форма". На VBA написал несколько полезных фенечек. Вроде всё работает, но на этапе тестирвания возникла следующая проблема:
стандартный фильтр внизу ищет по всем полям таблицы. По этой причине поиск невероятно долгий.

Вопросы:
1) Как написать свой собственный фильтр в клиенской форме?
2) Можно ли как-нибудь настроить фильтр по умолчанию на фильтр только по одному полю таблицы?

Искренне прошу прощения, если мой вопрос кому-то покажется глупым. На VBA работаю неделю.

Посоветуйте решения данной задачи.
  • Вопрос задан
  • 4425 просмотров
Решения вопроса 1
PavelMSTU
@PavelMSTU Автор вопроса
Сам спросил, сам и отвечаю.

Private Sub ExampleObjct_Click()
    Dim strSql As String
    strSql = "SELECT * FROM some_table WHERE some_field='some_value' order by ID ASC;"
    Me.RecordSource = strSql
End Sub


Замечание: если возникнет ошибка 3464 ("Несоответствие типов данных"), то возможно следует int'ы поменять на строки даже там, где вы не предполагаете это.
У меня были ID шники. Например это работало:
strSql = "SELECT * FROM some_table WHERE some_field='some_value' and ID>'10' order by ID ASC;"

А это не работало:
strSql = "SELECT * FROM some_table WHERE some_field='some_value' and ID>10 order by ID ASC;"

Причина в отсутствии кавычек в значениях ID.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы