Applies ToAccess за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

В Microsoft Access макросите, които са прикачени към обекти на потребителския интерфейс (ПИ), като например командни бутони, текстови полета, формуляри и отчети, се наричат макроси за потребителски интерфейс. Това ги отличава от макросите с данни, които са прикачени към таблици. Можете да използвате макроси (ПИ) за автоматизиране на последователност от действия, като например отваряне на друг обект, прилагане на филтър, стартиране на операция за експортиране и много други задачи. Тази статия ви запознава с току-що обновения конструктор на макроси и ви показва основните задачи, свързани със създаването на макрос за потребителски интерфейс.

Забележка: Тази статия не се отнася за уеб приложенията на Access.

В тази статия

Общ преглед

Макросите могат да се съдържат в обекти макроси (понякога наричани самостоятелни макроси) или да бъдат вградени в свойствата за събития на формуляри, отчети или контроли. Вградените макроси стават част от обекта или контролата, в които са вградени. Обектите на макроси се виждат в навигационния екран, под Макроси; вградени макроси не са.

Всеки макрос се състои от едно или повече макрокоманди. В зависимост от контекста, в който работите, някои макрокоманди може да не са налични за използване.

Най-горе на страницата

Конструктор на макроси

Ето някои от основните акценти на функциите на конструктора на макроси.

  • Каталог с действия    Макрокомандите са организирани по тип и могат да бъдат търсени.

  • IntelliSense    При въвеждане на изрази IntelliSense предлага възможни стойности и ви позволява да изберете правилния.

  • Клавишни комбинации    Използвайте клавишни комбинации за по-бързо и по-лесно писане на макроси.

  • Поток на програмата    Създавайте по-четими макроси с редове за коментари и групи от действия.

  • Условни команди    Разрешаване на по-сложно изпълнение на логиката с поддръжка за вложено if/Else/Else If.

  • Повторно използване на макрос    Каталогът с действия показва други макроси, които сте създали, като ви позволява да ги копирате в този, по който работите.

  • По-лесно споделяне    Копирайте макрос, след което го поставете като XML в имейл, публикация в дискусионна група, блог или примерен уеб сайт с код.

Ето видео, което ще ви преведе през основните области на конструктора на макроси.

Вашият браузър не поддържа видео. Инсталирайте Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Най-горе на страницата

Създаване на самостоятелен макрос

Тази процедура създава самостоятелен обект макрос, който ще се показва под Макроси в навигационния екран. Самостоятелните макроси са полезни, когато искате да използвате повторно макроса на много места на приложението. Извиквайки макроса от други макроси, можете да избегнете дублирането на същия код на много места.

  1. В раздела Създаване, в групата Макроси и код щракнете върху Макрос.Access отваря конструктора на макроси.

  2. В лентата с инструменти за бърз достъп щракнете върху Запиши.

  3. В диалоговия прозорец Запиши като въведете име за макроса и след това щракнете върху OK.

  4. Продължете със секцията Добавяне на действия към макрос.

Най-горе на страницата

Създаване на вграден макрос

Тази процедура създава макрос, който е вграден в свойство за събитие на обект. Този макрос не се показва в навигационния екран, но може да бъде извикан от събития, като например При зареждане или При щракване.

Тъй като макросът става част от обекта на формуляра или отчета, вградените макроси се препоръчват за автоматизиране на задачи, които са специфични за конкретен формуляр или отчет.

  1. В навигационния екран щракнете с десния бутон върху формуляра или отчета, който ще съдържа макроса, и след това щракнете върху Изглед на оформление.

  2. Ако списъкът със свойства още не е показан, натиснете F4, за да го покажете.

  3. Щракнете върху контролата или секцията, съдържаща свойството на събитието, в което искате да вградите макроса. Можете също да изберете контролата или секцията (или целия формуляр или отчет), като използвате падащия списък под Тип на селекцията в горния край на списъка със свойства.

  4. В прозореца на задачите Списък със свойства щракнете върху раздела Събитие .

  5. Щракнете в полето на свойството за събитието, което искате да активирате макроса. Например за команден бутон, ако искате макросът да се изпълнява при щракване върху бутона, щракнете в полето на свойството При щракване .  

  6. Ако полето на свойството съдържа думите [Вграден макрос], това означава, че за това събитие вече е създаден макрос. Можете да редактирате макроса, като продължите с останалите стъпки в тази процедура.

  7. Ако полето на свойството съдържа думите [Процедура за обработка на събитие], това означава, че за това събитие вече е създадена процедура на Visual Basic for Applications (VBA). Преди да можете да вградите макрос в събитието, ще трябва да премахнете процедурата. Можете да направите това, като изтриете думите [Процедура за обработка на събитие], но първо трябва да прегледате процедурата за събитие, за да се уверите, че премахването й няма да наруши необходимата функционалност в базата данни. В някои случаи можете да създадете отново функционалността на процедурата на VBA с помощта на вграден макрос.

  8. Щракнете върху бутона Изграждане Изображение на бутон.

  9. Ако се появи диалоговият прозорец Избор на конструктор , уверете се, че конструкторът на макроси е избран, и след това щракнете върху OK.Access отваря конструктора на макроси. Продължете със следващия раздел, за да добавите действия към макроса.

Най-горе на страницата

Добавяне на действия към макрос

Действията са отделни команди, които съставят макрос, и всяка е именувана според това, което прави, например FindRecord или CloseDatabase.

Стъпка 1: Преглед или търсене на макрокоманда

Първата стъпка в добавянето на действие е да го намерите в падащия списък Добавяне на ново действие или в каталога с действия.

Забележки: 

  • По подразбиране падащия списък Добавяне на ново действие и Каталогът за действия показват само действията, които ще се изпълняват в ненаверени бази данни. За да видите всички действия:

    • В раздела Проектиране , в групата Покажи/скрий щракнете върху Покажи всички действия.

  • Ако каталогът с действия не е показан, в раздела Проектиране , в групата Покажи/скрий щракнете върху Каталог на действия.

За да намерите действие, използвайте един от следните методи:

  • Щракнете върху стрелката в падащия списък Добавяне на ново действие и превъртете надолу, за да намерите действието. Елементите на потока на програмата първо се изброяват, а след това макрокомандите са изброени по азбучен ред.

  • Прегледайте за действието в екрана Каталог на действия. Действията са групирани по категория. Разгънете всяка категория, за да видите действията. Ако изберете действие, в долната част на каталога с действия се появява кратко описание на действието.

  • Потърсете действието в екрана Каталог на действията, като въведете в полето Търсене в горния край на екрана. Докато въвеждате, списъкът с действия се филтрира, за да покаже всички макроси, които съдържат този текст. Access търси в имената на макросите и техните описания текста, който въвеждате.

Стъпка 2: Добавяне на действие към макрос

След като намерите макрокомандата, която искате, добавете я към макроса, като използвате един от следните методи:

  • Изберете действие в списъка Добавяне на ново действие или просто започнете да въвеждате името на действието в полето. Access добавя действието в точката, където е показан списъкът Добавяне на ново действие .

  • Плъзнете действието от Каталог на действия в екрана за макроси. Появява се лента за вмъкване, която ви показва къде ще бъде вмъкнато действието, когато отпуснете бутона на мишката.

  • Щракнете двукратно върху действието в каталога с действия.

    • Ако в екрана с макроси е избрано действие, Access добавя новото действие точно под избраното.

    • Ако в екрана за макроси е избран блок Group, If, Else If, Else или Submacro , Access добавя новото действие към този блок.

    • Ако в екрана с макроси не е избрано действие или блок, Access добавя новото действие в края на макроса.

      Забележки: 

      • Ако вече сте създали един или повече макроси, те са изброени под възела В тази база данни в каталога с действия.

        • Плъзгането на самостоятелен макрос (такъв, който е в списъка под Макроси) в екрана за макроси създава действие RunMacro , което изпълнява макроса, в който сте плъзнали. След това можете да използвате падащия списък, за да се обадите на подмакроси, ако има такъв.

        • Ако просто искате да копирате действията от самостоятелен макрос в текущия макрос (вместо да създавате действие RunMacro ), щракнете с десния бутон върху него в каталога с действия и след това щракнете върху Добавяне на копие на макрос.

        • Плъзгането на вграден макрос (такъв, който е в списъка под обект на формуляр или отчет) в екрана с макроси копира действията от този макрос в текущия макрос.

      • Можете също да създадете действие, като плъзнете обект на база данни от навигационния екран в екрана с макроси. Ако плъзнете таблица, заявка, формуляр, отчет или модул в екрана с макроси, Access добавя действие, което отваря таблицата, заявката, формуляра или отчета. Ако плъзнете друг макрос в екрана с макроси, Access добавя действие, което изпълнява макроса.

Стъпка 3: Попълнете аргументите

Повечето макрокоманди изискват поне един аргумент. Можете да видите описание на всеки аргумент, като изберете действието и след това преместите показалеца върху аргументите. За много аргументи можете да изберете стойност от падащ списък. Ако аргументът изисква от вас да въведете израз, IntelliSense ви помага да въведете израза, като ви предлага възможни стойности, докато въвеждате, както е показано на илюстрацията по-долу:

Използване на IntelliSense за въвеждане на израз

Когато видите стойност, която искате да използвате, добавете я към вашия израз, като щракнете двукратно върху нея или като използвате клавишите със стрелки, за да я осветите, и след това натиснете клавиша TAB или ENTER.

За повече информация относно създаването на изрази вж. статията Въведение в изразите.

За използването на IntelliSense със свойства в уеб бази данни

Когато създавате вграден макрос за потребителски интерфейс в съвместим с уеб формуляр, IntelliSense ви позволява да добавите всяко свойство на формуляр към израз. Обаче в уеб база данни има достъп само до подмножество от свойства на формуляр с помощта на макроси за потребителски интерфейс. Ако например е дадена контрола с име "Контрола1" във формуляр с име "Формуляр1", IntelliSense ще ви позволи да добавите [Формуляри]! [Формуляр1]! [Контрола1]. [ControlSource] за израз в макрос за потребителски интерфейс. Ако обаче след това публикувате базата данни в Access Services, макросът, съдържащ този израз, ще генерира грешка, когато тя се изпълнява на сървъра.

Следващата таблица показва свойствата, които можете да използвате в макроси за потребителски интерфейс в уеб бази данни:

Обект или контрола

Свойства, които можете да използвате

Форма

Caption, Dirty, AllowAdditions, AllowDeletions, AllowEdits

Контрола за раздел

Visible

Етикет

Надпис, видим, цвят на текста, фонов цвят

Attachment

Видимо, разрешено

Команден бутон

Надпис, видим, разрешен, цвят на текста

Текстово поле

Разрешено, видимо, заключено, цвят на текста, фонов цвят, стойност

Квадратче за отметка

Разрешено, видимо, заключено, стойност

Изображение

Видим, с фонов цвят

Разгъващ се списък

Разрешено, видимо, заключено, стойност

Списъчно поле

Разрешено, видимо, заключено, стойност

Бра́узър

Visible

Подформуляр

Разрешено, видимо заключено

Контрола за навигация

Разрешено, видимо

Преместване на действие

Действията се изпълняват поред – отгоре надолу на макроса. За да преместите действие нагоре или надолу в макроса, използвайте един от следните методи:

  • Плъзнете действието нагоре или надолу до желаното от вас място.

  • Изберете действието и след това натиснете CTRL + СТРЕЛКА НАГОРЕ или CTRL + СТРЕЛКА НАДОЛУ.

  • Изберете действието и след това щракнете върху стрелката Премести нагоре или Премести надолу от дясната страна на екрана с макроси.

Изтриване на действие

За да изтриете макрокоманда:

  • Изберете действието и след това натиснете клавиша DELETE. Като алтернатива можете да щракнете върху бутона Изтрий (X) от дясната страна на екрана с макроси.

    Забележки: 

    • Ако изтриете блок от действия, като например блок If или блок на група , всички действия в блока също се изтриват.

    • Командите Премести нагоре, Премести надолу и Изтрий също са налични в контекстното меню, което се появява, когато щракнете с десния бутон върху макрокоманда.

Най-горе на страницата

Управлявай потока на програмата с If, Else If и Else

За да изпълните макрокоманди само когато са изпълнени определени условия, можете да използвате блок If . Това замества колоната Условие , която е била използвана в по-ранни версии на Access. Можете да разширите блок If с блокове Else If и Else , подобно на други поредни езици за програмиране, като VBA.

Следващата илюстрация показва прост блок If , включително блокира Else If и Else :

Макрос, съдържащ инструкция If/Else If/Else.

Блокът If се изпълнява, ако полето "Дата на изтичане" е по-малко от текущата дата.

Блокът Else If се изпълнява, ако полето ExpirationDate е равно на текущата дата.

Блокът Else се изпълнява, ако никой от предишните блокове не го прави.

Блокът If свършва тук.

Добавяне на блок If към макрос

  1. Изберете Ако от падащия списък Добавяне на ново действие или го плъзнете от екрана Каталог на действия в екрана с макроси.

  2. В полето в горния край на блока If въведете израз, който определя кога ще бъде изпълнен блокът. Изразът трябва да бъде булев (т.е. такъв, който дава за резултат "Да" или "Не").

  3. Добавете действия към блока If , като ги изберете от падащия списък Добавяне на ново действие , който се появява в блока, или като ги плъзнете от екрана Каталог на действия в блока If .

Add Else or Else If blocks to an If block

  1. Изберете блока If и след това в долния десен ъгъл на блока щракнете върху Добави Else или Добави Else If.

  2. Ако добавяте блок Else If , въведете израз, който определя кога ще бъде изпълнен блокът. Изразът трябва да бъде булев (т.е. такъв, който дава за резултат или True, или False).

  3. Добавете действия към блока Else If или Else , като ги изберете от падащия списък Добавяне на ново действие , който се появява в блока, или като ги плъзнете от екрана Каталог на действия в блока.

    Забележки: 

    • Командите за добавяне на блокове if, Else If и Else са налични в контекстното меню, което се появява, когато щракнете с десния бутон върху макрокоманда.

    • Ако блоковете могат да бъдат вложени до 10 нива на дълбочина.

Най-горе на страницата

Създаване на подмакроси

Всеки макрос може да съдържа няколко подмакроса. Подмакросът е проектиран да бъде извикан по име от макрокомандата RunMacro или OnError .

Добавяте блок Submacro към макрос по същия начин, по който използвате макрокоманда, както е описано в раздела Добавяне на действия към макрос. След като сте добавили блок Submacro , можете да плъзнете макрокоманди в него или да изберете действия от списъка Добавяне на ново действие , който се появява в блока.

Забележки: 

  • Можете също да създадете блок Submacro , като изберете едно или повече действия, щракнете с десния бутон върху тях и след това изберете Направи подмакрос блок.

  • Подмакросите винаги трябва да бъдат последните блокове в макрос; не можете да добавяте никакви действия (освен повече подмакроси) под подмакроса. Ако изпълните макрос, който съдържа само подмакроси, без да наименувате конкретно подмакроса, който искате, ще се изпълни само първият подмакрос.

  • За да извикате подмакрос (например в свойство на събитие или с помощта на действието RunMacro или действието OnError ), използвайте следния синтаксис: име_на_макрос.подмакрос

Най-горе на страницата

Групиране на свързани действия заедно

Можете да подобрите четливостта на макрос, като групирате действията заедно и дадете смислено име на групата. Например можете да групирате действия, които отварят и филтрират формуляр в група с име "Отваряне и филтриране на формуляр". Това улеснява виждане кои действия са свързани помежду си. Блокът на групата не влияе върху начина на изпълнение на действията и групата не може да бъде извикана или изпълнена поотделно. Основната му употреба е за обозначаване на група действия, които да ви помогнат да разберете макроса, докато го четете. Освен това, докато редактирате голям макрос, можете да свиете всеки групов блок надолу до един ред, като намалите размера на превъртането, което трябва да направите.

Ако действията, които искате да групирате, вече са в макроса, използвайте тази процедура, за да ги добавите към блок на група :

  1. Изберете действията, които искате да групирате.

  2. Щракнете с десния бутон върху избраните действия и след това щракнете върху Създаване на група блокове.

  3. В полето в горния край на блока на групата въведете име за групата.

Ако действията още не са налични:

  1. Плъзнете блока Group от каталога с действия в екрана за макроси.

  2. В полето в горния край на блока на групата въведете име за групата.

  3. Плъзнете макрокоманди от каталога с действия в блока с групи или изберете действия от списъка Добавяне на ново действие , който се появява в блока.

Груповите блокове могат да съдържат други блокове на група и могат да бъдат вложени до максимум 9 нива дълбочина.

Най-горе на страницата

Разгъване и свиване на макрокоманди или блокове

Когато създавате нов макрос, конструкторът на макроси показва макрокоманди с видими всички аргументи. В зависимост от размера на макроса, може да искате да свиете някои или всички макрокоманди (и блокове от действия), докато редактирате макроса. Това улеснява получаването на цялостен изглед на структурата на вашия макрос. Можете да разширите някои или всички действия, ако е необходимо, за да ги редактирате.

Разгъване или свиване на едно макрокоманда или блок

  • Щракнете върху знака плюс (+) или минус (-) отляво на макроса или името на блока. Друга възможност е да натиснете клавишите СЪС СТРЕЛКА НАГОРЕ и СТРЕЛКА НАДОЛУ, за да изберете действие или блок, и след това да натиснете клавишите СЪС СТРЕЛКА НАЛЯВО или СТРЕЛКА НАДЯСНО, за да го свиете или разгънете.

Разгъване или свиване на всички макрокоманди (но не и блокове)

  • В раздела Проектиране , в групата Свиване/разгъване щракнете върху Разгъни действията или Свий действията.

Разгъване или свиване на всички макрокоманди и блокове

  • В раздела Проектиране , в групата Свиване/разгъване щракнете върху Разгъни всички или Свий всички.

Съвет: Можете да "надникнете" в свито действие, като преместите показалеца над действието. Access показва аргументите на действието в пояснение.

Най-горе на страницата

Копиране и поставяне на макрокоманди

Ако трябва да повторите действия, които вече сте добавили към макрос, можете да копирате и поставите съществуващите действия така, както бихте направили с абзаци с текст в текстооописание. Когато поставяте действия, те се вмъкват точно под текущо избраното действие. Ако е избран блок, действията се поставят вътре в блока.

Съвет: За да дублирате бързо избраните действия, задръжте натиснат клавиша CTRL и плъзнете действията до местоположението в макроса, където искате да бъдат копирани.

Споделяне на макрос с други хора

Когато копирате макрокоманди в клипборда, те могат да бъдат поставени като XML във всяко приложение, което приема текст. Това ви позволява да изпратите макрос на колега чрез имейл съобщение или да публикувате макроса във форум за обсъждане, блог или друг уеб сайт. След това получателят може да копира XML и да го постави в своя конструктор на макроси на Access. Макросът се създава отново точно както сте го написали.

Изпълнение на макрос

Можете да изпълните макрос, като използвате някой от следните методи:

  • Щракнете двукратно върху макроса в навигационния екран.

  • Извикайте макроса с помощта на макрокомандата RunMacro или OnError .

  • Въведете името на макроса в свойство "Събитие" на обект. Макросът ще се изпълни, когато това събитие бъде задействано.

Най-горе на страницата

Отстраняване на грешки в макрос

Ако имате проблеми при изпълнението на макрос, има няколко инструмента, които можете да използвате, за да стигнете до източника на проблема.

Добавяне на действия за обработване на грешки към макрос

Препоръчваме да добавите действия за обработване на грешки към всеки макрос, докато го пишете, и да ги оставите окончателно в макроса. Когато използвате този метод, Access показва описания на грешките при възникването им. Описанията на грешките ви помагат да разберете грешката, така че да можете да коригирате проблема по-бързо.

Използвайте следната процедура, за да добавите подмакрос за обработване на грешки към макрос:

  1. Отворете макроса в изглед за проектиране.

  2. В долната част на макроса изберете Submacro от падащия списък Добавяне на ново действие .

  3. В полето отдясно на думата Submacro въведете име за подмакроса, като например ErrorHandler.

  4. От падащия списък Добавяне на ново действие , който се появява в блока Submacro , изберете макрокомандата MessageBox .

  5. В полето Съобщение въведете следния текст: =[MacroError].[ Описание]

  6. В долната част на макроса изберете OnError от падащия списък Добавяне на ново действие .

  7. Задайте аргумента Отиди на на Име на макрос.

  8. В полето Име на макрос въведете името на подмакроса за обработване на грешки (в този пример ErrorHandler).

  9. Плъзнете макрокомандата OnError най-отгоре на макроса.

Следващата илюстрация показва макрос с действието OnError и Submacro, който се нарича ErrorHandler.

Макрос, съдържащ подмакрос за управление на грешки.

Макрокомандата OnError се поставя в горната част на макроса и извиква подмакроса ErrorHandler в случай на грешка.

Подмакросът ErrorHandler се изпълнява само ако е извикан от действието OnError и показва прозорец със съобщение, което описва грешката.

Използване на командата "Единична стъпка"

"Единична стъпка" е режим на отстраняване на грешки в макроси, който можете да използвате, за да изпълнявате макросите едно по едно. След като се извърши всяко действие, се показва диалогов прозорец, който показва информация за действието и всички кодове на грешки, които са възникнали в резултат на това. Тъй като обаче няма описание на грешката в диалоговия прозорец "Единична стъпка на макрос", ви препоръчваме да използвате метода submacro за обработване на грешки, описан в предишния раздел.

За да стартирате режима "Единична стъпка":

  1. Отворете макроса в изглед за проектиране.

  2. В раздела Проектиране , в групата Инструменти щракнете върху Единична стъпка.

  3. Запишете и затворете макроса.

Следващия път, когато изпълните макроса, се показва диалоговият прозорец Единична стъпка на макрос . Диалоговият прозорец показва следната информация за всяко действие:

  • Име на макрос

  • Условие (за блокове If)

  • Име на действието

  • Аргументи

  • Номер на грешка (номер на грешка 0 означава, че не е възникнала грешка)

Докато преминавате през действията, щракнете върху един от трите бутона в диалоговия прозорец:

  • За да видите информация за следващото действие в макроса, натиснете Step.

  • За да спрете всички макроси, които се изпълняват в момента, щракнете върху Спри всички макроси. Режимът на единична стъпка все още ще бъде в сила следващия път, когато изпълните макрос.

  • За да излезете от режима на единична стъпка и да продължите да изпълнявате макроса, щракнете върху Продължи.

    Забележки: 

    • Ако натиснете "Стъпка " след последното действие в макрос, режимът "Единична стъпка" ще продължи да действа при следващото изпълнение на макрос.

    • За да влезете в режим "Единична стъпка", докато се изпълнява макрос, натиснете CTRL+BREAK.

    • За да влезете в режим "Единична стъпка" в определен момент от макрос, добавете макрокомандата SingleStep в този момент.

    • Режимът "Единична стъпка" не е наличен в уеб база данни.

Най-горе на страницата

Преобразуване на макрос във VBA код

Макросите предоставят подмножество от командите, които са налични на езика за програмиране Visual Basic for Applications (VBA). Ако решите, че имате нужда от повече функционалност, отколкото могат да предоставят макросите, можете лесно да конвертирате самостоятелен обект на макрос във VBA код и след това да използвате разширения набор функции, който VBA предоставя. Имайте предвид обаче, че кодът на VBA няма да се изпълнява в браузър; всеки VBA код, който добавите към уеб база данни, ще се изпълнява само когато базата данни е отворена в Access.

Забележка: Не можете да конвертирате вградени макроси в код на VBA.

За да конвертирате макрос в код на VBA:

  1. В навигационния екран щракнете с десния бутон върху обекта макрос и след това щракнете върху Режим на проектиране.

  2. В раздела Проектиране , в групата Инструменти щракнете върху Преобразуване на макроси във Visual Basic.

  3. В диалоговия прозорец Преобразуване на макрос задайте дали искате кодът за обработване на грешки и коментарите да бъдат добавени към модула на VBA, след което щракнете върху Преобразуване.

Access потвърждава, че макросът е конвертиран, и отваря редактора на Visual Basic. Щракнете двукратно върху конвертирания макрос в екрана Project, за да прегледате и редактирате модула.

Най-горе на страницата

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.