Если вы говорите, что приложение перестает отвечать на запросы после нажатия кнопки, это происходит из-за того, что вы выполняете поиск в своей базе данных Access в том же потоке, который обновляет ваше приложение - это означает, что приложение будет отображаться занятым, пока поиск в базе данных не будет сделано (что может занять некоторое время). Если вы хотите сделать это в фоновом потоке и оставить приложение отзывчивым во время поиска, вы можете сделать это с помощью пула потоков:
http://www.dotnetperls.com/threadpool-vbnet
Кроме того, запрос выполняется лучше с меньшим количеством записей, поскольку в нем меньше данных для поиска, что свидетельствует о том, что он не может быть хорошо проиндексирован. Вы можете добавить индекс в поле «Срок», который поможет ускорить процесс - вам нужно посмотреть, помогло ли это. Access должен будет выполнить сканирование индекса, а не более быстрый поиск индекса, поэтому ответ не будет мгновенным, но это может помочь значительно сократить время ожидания. Вот статья Microsoft, которая показывает, как это сделать:
http://office.microsoft.com/en-us/access-help/create-and-use-an-index-to-improve-performance-HA010210347.aspx