Поделиться через


Макрокоманда FindRecord

Область применения: Access 2013, Office 2013

С помощью действия FindRecord можно найти первый экземпляр данных, соответствующий условиям, заданным аргументами FindRecord . Эти данные могут находиться в текущей записи, в успешной или предыдущей записи или в первой записи. Записи можно найти в активной таблице, таблице запросов, таблице формы или форме.

Setting

Аргументы действия FindRecord приведены ниже.

Аргумент макрокоманды

Описание

Найти

Указывает данные, которые нужно найти в записи. Введите текст, число или дату, которые требуется найти, или введите выражение, перед которым стоит знак равенства (=), в поле Найти что в разделе Аргументы действия панели построителя макросов. Можно использовать подстановочные знаки. Это обязательный аргумент.

Match

Указывает, где находятся данные в поле . Вы можете указать поиск данных в любой части поля (любая часть поля), данные, которые заполняют все поле (целое поле), или данные, расположенные в начале поля (начало поля). Значение по умолчанию — Целое поле.

Учитывать регистр

Указывает, учитывается ли в поиске регистр. Нажмите кнопку Да (поиск с учетом регистра) или Нет (поиск точно не совпадает с прописными и строчными буквами). По умолчанию используется значение Нет.

Поиск

Указывает, выполняется ли поиск от текущей записи до начала записей (вверх); до конца записей (вниз); или до конца записей, а затем от начала записей до текущей записи, поэтому выполняется поиск по всем записям (Все). Значение по умолчанию — All.

Поиск в формате

Указывает, включает ли поиск форматированные данные. Нажмите кнопку Да (Microsoft Office Access 2007 ищет данные в том виде, в котором они отформатированы и отображаются в поле) или Нет (Access выполняет поиск данных в том виде, в котором они хранятся в базе данных, которые не всегда совпадают с отображаемыми). По умолчанию используется значение Нет. Эту функцию можно использовать, чтобы ограничить поиск данными в определенном формате. Например, нажмите кнопку Да и введите 1234 в аргументе Найти, чтобы найти значение 1234 в поле с запятыми. Нажмите кнопку Нет , чтобы ввести 1234 , чтобы найти данные в этом поле. Чтобы найти даты, нажмите кнопку Да , чтобы найти дату в точном формате, например 08-Июль-2003. Если нажать кнопку Нет, введите дату для аргумента Найти что в формате, заданном в региональных параметрах Windows панель управления. Этот формат отображается в поле Формат короткой даты на вкладке Дата в региональных параметрах. Например, если в поле Короткий формат даты задано значение M/d/yy, можно ввести 08.03.03.03. В поле даты будут находиться все записи, соответствующие 8 июля 2003 г., независимо от того, как это поле отформатировано.

ПРИМЕЧАНИЕ. Аргумент Search As Formatted вступает в силу только в том случае, если текущее поле является привязанным элементом управления, для аргумента Match задано значение Целое поле, для аргумента Только текущее поле задано значение Да, а для аргумента Match Case задано значение Нет.

Если для параметра Match Caseзадано значение Да или Только текущее поле значение Нет, необходимо также задать для параметра Поиск как форматированный значение Да.

Только текущее поле

Указывает, ограничивается ли поиск текущим полем в каждой записи или включает все поля в каждой записи. Поиск в текущем поле выполняется быстрее. Нажмите кнопку Да (ограничить поиск текущим полем) или Нет (поиск по всем полям в каждой записи). Значение по умолчанию — Да.

Найти первым

Указывает, начинается ли поиск с первой записи или с текущей. Нажмите кнопку Да (начать с первой записи) или Нет (начать с текущей записи). Значение по умолчанию — Да.

Замечания

Когда макрос запускает действие FindRecord , Access выполняет поиск указанных данных в записях (порядок поиска определяется параметром Search ). Когда Access находит указанные данные, данные выбираются в записи.

Действие НайтиЗапись эквивалентно щелчку Найти на вкладке Главная , а его аргументы совпадают с параметрами в диалоговом окне Найти и заменить . Если задать аргументы FindRecord в области построителя макросов, а затем запустить макрос, при нажатии кнопки Найти вы увидите соответствующие параметры, выбранные в диалоговом окне Найти и заменить.

Access сохраняет последние аргументы FindRecord во время сеанса базы данных, поэтому вам не нужно вводить те же критерии многократно при выполнении последующих операций с действием FindRecord . Если оставить аргумент пустым, Access использует последний параметр для аргумента, заданный в предыдущем действии FindRecord или в диалоговом окне Найти и заменить .

Если вы хотите найти запись с помощью макроса, используйте действие НайтиЗапись , а не действие RunMenuCommand с заданным аргументом для выполнения команды Найти .

Примечание.

Хотя действие FindRecord соответствует команде Найти на вкладке Главная для таблиц, запросов и форм, оно не соответствует команде Найти в меню Правка в окне "Код". Вы не можете использовать действие НайтиЗапись для поиска текста в модулях.

Если выбранный в данный момент текст совпадает с текстом поиска во время выполнения действия НайтиЗапись , поиск начинается сразу после выделения в том же поле, что и выбор, и в той же записи. В противном случае поиск начинается в начале текущей записи. Это позволяет найти несколько экземпляров с одними и теми же критериями поиска, которые могут отображаться в одной записи.

Однако обратите внимание, что если вы используете командную кнопку для запуска макроса, содержащего действие FindRecord , первый экземпляр условий поиска будет найден повторно. Это происходит из-за того, что нажатие кнопки команды удаляет фокус из поля, содержащего соответствующее значение. Затем действие НайтиЗапись начнет поиск с начала записи. Чтобы избежать этой проблемы, запустите макрос с помощью метода, который не изменяет фокус, например настраиваемую кнопку панели инструментов или сочетание клавиш, определенное в макросе AutoKeys, или задайте фокус в макросе на поле, содержащее условия поиска, перед выполнением действия НайтиЗапись .

Заметка о безопасности
Избегайте использования инструкции SendKeys или макроса AutoKeys с конфиденциальной информацией. Злоумышленники могут перехватывать нажимаемые клавиши, чтобы скомпрометировать безопасность компьютера и данных.

То же самое происходит и при использовании командной кнопки для запуска макроса, содержащего действие НайтиДалее .

Чтобы выполнить действие FindRecord в модуле Visual Basic для приложений (VBA), используйте метод FindRecord объекта DoCmd.

Для более сложных поисковых запросов может потребоваться использовать макрокоманду SearchForRecord .