С помощью макрокоманды ПоискЗаписи можно найти определенную запись в таблице, запросе, форме или отчете классической базы данных Access.
Настройка
Макрокоманда ПоискЗаписи имеет следующие аргументы:
| Аргумент макрокоманды | Описание |
|---|---|
| Тип объекта | Выберите или введите тип объекта базы данных, в котором будет выполняться поиск. Можно выбрать значение Таблица, Запрос, Форма или Отчет. |
| Имя объекта | Введите или выберите объект, содержащий искомую запись. Раскрывающийся список содержит все объекты базы данных с типом, заданным в аргументе Тип объекта. |
| Запись | Укажите начало и направление поиска.
|
| Условие отбора | Введите условия поиска, используя синтаксис предложения WHERE инструкции SQL, только без слова WHERE. Например:Description = "Beverages"Чтобы создать условие, содержащее значение из текстового поля в форме, следует написать выражение, объединяющее первую часть условия с именем текстового поля, содержащего значение, по которому будет проводиться поиск. Например, в следующем условии будет выполняться поиск в поле Description по значению текстового поля txtDescription в форме frmCategories. Обратите внимание на знак равенства (=) в начале выражения и одинарные кавычки (') по обе стороны ссылки на текстовое поле: ="Description = '" & Forms![frmCategories]![txtDescription] & "'" |
Примечания
Если более чем одна запись соответствует условию, заданному в аргументе Условие отбора, на результат поиска могут оказать влияние следующие факторы:
- Значение аргумента "Запись". Дополнительные сведения об аргументе Запись см. в таблице в разделе "Настройка".
- Порядок сортировки записей. Например, если аргумент Запись имеет значение Первая, изменение порядка сортировки записей может отразиться на том, какая запись будет найдена.
Объект, заданный в аргументе Имя объекта, должен быть открыт до выполнения команды. В противном случае произойдет ошибка.
Если условие, заданное в аргументе Условие отбора, не выполняется, это не считается ошибкой, а фокус остается на текущей записи.
При поиске последующей или предыдущей записи поиск не продолжается, когда достигается конец данных. Если больше нет записей, соответствующих условию отбора, это не считается ошибкой, а фокус остается на текущей записи. Чтобы подтвердить обнаружение совпадения, можно ввести условие для следующей команды и сделать его таким же, как значение аргумента Условие отбора.
Для запуска макрокоманды ПоискЗаписи в модуле VBA используйте метод SearchForRecord объекта DoCmd.
Макрокоманда аналогична ПоискЗаписи макрокоманде НайтиЗапись, но у ПоискЗаписи более широкие возможности поиска. Макроманда НайтиЗапись в основном используется для поиска строк, и ее функции аналогичны возможностям диалогового окна Найти. В макрокоманде ПоискЗаписи используются условия, которые больше напоминают фильтр или запрос SQL. Вот некоторые возможности макрокоманды ПоискЗаписи:
- В аргументе Условие отбора могут использоваться составные условия, например:
Description = "Напитки" and CategoryID = 11
- Можно ссылаться на поля, которые существуют в источнике записей формы или отчета, но не отображаются в них. В предыдущем примере ни, ни
DescriptionCategoryIDне должны отображаться в форме или отчете, чтобы критерии работали. - Можно использовать логические операторы, такие как <, >, AND, OR и BETWEEN. Макрокоманда НайтиЗапись ищет только строки, равные искомой строке, начинающиеся с нее или содержащие ее.
Пример
Следующий макрос открывает таблицу Categories с помощью команды ОткрытьТаблицу. Затем с помощью команды ПоискЗаписи ищется первая запись таблицы, в поле Description которой содержится значение "Напитки".
| Действие | Аргументы |
|---|---|
| ОткрытьТаблицу |
Имя таблицы: Categories Режим: Таблица Режим данных: Изменение |
| ПоискЗаписи |
Тип объекта: Таблица Имя объекта: Categories Запись: Первая Условие отбора: Description = "Напитки" |