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