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