Нет смысла тянуть весь стол.
Банковские автоматы не загружают все аккаунты, и ПОТОМ позволяют искать.
Веб-браузер не загружает ВЕСЬ интернет, и ПОТОМ позволяет искать.
1 миллион строк - это не много данных для Access.
Просто поместите несколько текстовых полей или что-то подобное в верхней части формы.
Позвольте пользователю ввести номер счета или некоторые другие критерии и ТОГДА загрузить сетку.
Вы не хотите использовать сетку для поиска, но только для отображения данных.
Итак, скажем, мы ищем фильмы в данном году.
Возможно, у вас вверху есть текстовое поле с именем номера детали Usr вводит номер детали или, например, год фильма, тогда ваш sql становится:
strSQL = "your sql”
strSQL = strSQL & " AND MovieYear = " & me.txtMyear
' code to fill the grid.
Теперь сетка будет загружать ТОЛЬКО фильмы этого года. Вы можете добавить дополнительные поля поиска.
Убедитесь, что для любого столбца, по которому вы ведете поиск, существует индекс.
Даже при 1 миллионе строк извлечение и ограничение результатов, которые вы отправляете в таблицу, должно происходить ОЧЕНЬ быстро. Механизм доступа к данным ОЧЕНЬ быстр для таких операций.