Въведение в програмирането за Access

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

В тази статия

Какво е програмиране?

Макрос или код на VBA трябва да използвам?

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

Разбиране на макросите

Разбиране на кода на VBA

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

Какво е програмиране?

В Access програмирането е процес на добавяне на функционалност към вашата база данни с помощта на макроси на Access или код на Visual Basic for Applications (VBA). Да предположим например, че сте създали формуляр и отчет и искате да добавите команден бутон във формуляра, който отваря отчета, когато щракнете върху него. В този случай програмиране е процесът на създаване на макрос или процедура на VBA и след това задаване на свойството за събитие OnClick на командния бутон, така че щракването върху командния бутон да изпълни макроса или процедурата. За проста операция, като отваряне на отчет, можете да използвате съветника за командни бутони, който да свърши цялата работа, или да изключите съветника и да извършите програмирането сами.

Забележка : Много програми на Microsoft Office използва термина "макрос" като препратка към код на VBA. Това може да е объркващо за потребителите на Access, тъй като в Access терминът "макрос" препраща към именувана колекция от макрокоманди, които можете да съберете с помощта на конструктора на макроси. Макрокомандите в Access представляват само подмножество на командите, налични във VBA. Конструктора на макроси ви предоставя по-структуриран интерфейс от редактора на Visual Basic, позволявайки ви да добавяте програмиране към контроли и обекти, без да се налага да учите кода на VBA. Трябва да запомните, че в помощните статии за Access макросите на Access се наричат макроси. И обратното, кодът на VBA се нарича VBA, код, функция или процедура. Код на VBA се съдържа в модули на клас (които са част от отделни формуляри или отчети и обикновено съдържат код само за тези обекти) и в модули (които не са свързани с конкретни обекти и обикновено съдържат "глобален" код, който може да се използва в цялата база данни).

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

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

Макрос или код на VBA трябва да използвам?

Решението дали да използвате макрос, VBA, или и двете, зависи предимно от начина, по който планирате да разположите или разпространите базата данни. Ако например базата данни се съхранява на вашия компютър и вие сте единственият потребител и ако с лекота използвате код на VBA, може да решите да използвате VBA за извършването на повечето от вашите задачи за програмиране. Въпреки това, ако възнамерявате да споделите базата данни с други хора, като я разположите на файлов сървър, може да не искате да използвате VBA от съображения за сигурност.

Две са основните съображения, които трябва да обмислите, когато решавате дали да използвате макрос, или код на VBA – защитата и желаната от вас функционалност. Защитата е проблем, понеже VBA може да се използва за създаване на код, който или компрометира защитата на вашите данни, или може да навреди на файловете във вашия компютър. Когато използвате база данни, която не сте създали сами, трябва да разрешите кода на VBA само ако сте сигурни, че базата данни идва от надежден източник. Когато създавате база данни, която ще се използва от други хора, трябва да се опитате да избегнете включването на инструменти за програмиране, които изискват от потребителя изрично да припише надежден статус на базата данни. Общи техники за избягване на необходимостта потребителите да се доверят на вашата база данни, са представени по-надолу в този раздел.

За да гарантирате защитата на вашата база данни, трябва да се опитвате да използвате макроси, когато можете, и да използвате VBA програмиране само за операции, които не могат да бъдат изпълнени с помощта на макрокоманди. Освен това трябва да опитвате да използвате само макрокоманди, които не изискват даването на надежден статут на базата данни, за да се изпълнят. Ограниченото по този начин използване на макрокоманди уверява потребителите, че базата данни не съдържа програмиране, което може да навреди на данните или другите файлове на техните компютри.

Съображения за макроси

От издаването на Access 2010 насам, Access съдържа много нови макрокоманди, които ви позволяват да създавате по-мощни макроси, отколкото с помощта на по-старите версии на Access. Вече можете например да създавате и използвате глобални временни променливи с помощта на макрокоманди и можете да обработвате грешки по-елегантно с помощта на нови макрокоманди за обработка на грешки. В по-ранните версии на Access подобни функции са налични само чрез използване на VBA. Освен това можете да вградите макрос директно в свойството за събитие на обект или контрола. Вграденият макрос става част от обекта или контролата и остава с обекта или контролата, ако бъдат преместени или копирани.

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

В допълнение към повишената защита и по-лесното използване, предоставяни от макросите, трябва да използвате макроси за извършването на следните задачи:

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

  • Извършване на действие или серия от действия при първото отваряне на база данни. Това изисква създаване на макрос, озаглавен AutoExec.

    Забележка :  Макросът AutoExec се изпълнява преди всички останали макроси или код на VBA дори ако сте посочили стартов формуляр в диалоговия прозорец Опции на Access и сте добавили макрос или код на VBA към събитието OnOpen или OnLoad на този формуляр.

За повече информация как да създавате макроси, вижте раздела Разбиране на макросите.

Съображения за VBA

Трябва да използвате VBA програмиране вместо макроси, ако искате да направите някое от следните неща:

  • Използване на вградени функции или създаване на собствени функции    Access включва много вградени функции, като например функцията IPmt, която изчислява лихвено плащане. Можете да използвате тези вградени функции, за да извършвате изчисления, без да е необходимо да създавате сложни изрази. Като използвате код на VBA, също можете да създадете свои собствени функции за извършване на изчисления, които надвишават възможностите на израз, или за заместване на сложни изрази. Освен това можете да използвате създадените от вас функции в изрази, за да приложите обща операция към няколко обекта

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

  • Извършване на действия на системно ниво    Можете да извършите действието RunApp в макрос, за да стартирате друга програма (например Microsoft Excel) от Access, но не можете да използвате макрос, за да извършите много повече от това извън Access. С помощта на VBA можете да проверите дали даден файл съществува на компютъра, да използвате автоматизация или динамичен обмен на данни (DDE) за комуникация с други базирани на Microsoft Windows програми, като например Excel, и да извикате функции в библиотеки за динамично свързване (dll) на Windows.

  • Манипулиране на записи един по един    Можете да използвате VBA, за да преминете през набор от записи, един по един, и да изпълните операция с всеки запис. За разлика от това, макросите работят с цели набори от записи наведнъж.

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

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

Ако добавяте команден бутон към формуляр, съветникът за командни бутони може да ви помогне да започнете с програмирането. Съветникът ви помага да създадете команден бутон, който изпълнява конкретна задача. Във файл на Access (.accdb) съветникът създава макрос, който е вграден в свойството OnClick на командния бутон. В .mdb или .adp файл съветникът създава код на VBA, тъй като вградените макроси не са налични в тези файлови формати. И в двата случая можете след това да промените или да подобрите макроса или кода на VBA, за да отговаря по-добре на нуждите ви.

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

  2. В раздела Проектиране щракнете върху стрелката надолу, за да покажете галерията Контроли, и след това се уверете, че е избрана опцията Използване на съветници за контроли.

  3. В раздела Проектиране, в галерията Контроли щракнете върху Бутон.

  4. В мрежата за проектиране на формуляр щракнете там, където искате да се постави командният бутон.

    Съветникът за командни бутони се стартира.

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

  6. Щракнете или върху опцията Текст, или върху опцията Картина – в зависимост от това дали искате на командния бутон да се показва текст, или картина.

    • Ако искате да се показва текст, можете да редактирате текста в полето до опцията Текст.

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

      Щракнете върху Напред.

  7. Въведете смислено име за командния бутон. Тази стъпка не е задължителна и името не се показва в командния бутон. Въпреки това е добра идея да въведете смислено име, така че, когато по-късно ви се наложи да препратите към командния бутон (ако например задавате реда на разделите за контроли във вашия формуляр), да можете по-лесно да разграничите командните бутони. Ако командният бутон затваря формуляра, можете да го наречете например cmdClose или CommandClose.

  8. Щракнете върху Готово.

    Access поставя командния бутон във формуляра.

  9. Ако искате да видите какво е "програмирал" съветникът за вас, изпълнете следните стъпки по желание:

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

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

    3. В полето на свойството При щракване щракнете върху бутона Изграждане Изображение на бутон .

      Access стартира конструктора на макроси и показва макроса, създаден от съветника. Можете по желание да редактирате макроса (за повече информация как да редактирате макрос, вижте раздела Разбиране на макросите). Когато приключите, в раздела Проектиране, в групата Затвори щракнете върху Затвори, за да затворите конструктора на макроси. Ако Access ви подкани да запишете промените и да актуализирате свойството, щракнете върху Да, за да запишете промените, или върху Не, за да ги отхвърлите.

  10. В раздела Проектиране, в групата Изгледи щракнете върху Изглед, след което щракнете върху Режим на формуляр. Щракнете върху новия команден бутон, за да се уверите, че работи според очакванията ви.

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

Разбиране на макросите

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

Полезно е да се мисли за макросите на Access като за опростен език за програмиране, с който създавате код чрез изграждане на списък с действия за изпълнение. Когато създавате макрос, избирате всяко действие от падащ списък и след това попълвате необходимата информация за него. Макросите ви позволяват да добавяте функционалност към формуляри, отчети и контроли, без да пишете код в модул на VBA. Макросите предоставят подмножество на командите, налични във VBA, и повечето хора намират за по-лесно да създадат макрос, вместо да пишат код на VBA.

Създавате макрос с помощта на конструктора на макроси, който е показан на илюстрацията по-долу.

Конструкторът на макроси на Access 2010

Забележка : Обърнете внимание, че конструкторът на макроси в Access 2007 се различава от илюстрацията по-горе. В Access 2007 конструкторът на макроси е серия от редове и колони, които съдържат различните действия на вашия макрос.

За да покажете конструктора на макроси:

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

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

Разбиране на кода на VBA

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

Бърз начин да започнете с VBA програмирането е първо да създадете макрос на Access, а след това да го преобразувате в код на VBA. Инструкции как да направите това, са включени в раздела Преобразуване на макроси в код на VBA. Тази функция създава нов модул на VBA, който извършва същите операциите като макроса. Освен това отваря редактора на Visual Basic, за да можете да започнете да променяте процедурата. Когато работите в редактора на Visual Basic, можете да щракнете върху ключови думи и да натиснете клавиша F1, за да отворите помощта на Access за разработчици и да научите повече за всяка ключова дума. След това можете да прегледате помощта на Access за разработчици и да откриете нови команди, които да ви помогнат да изпълните желаните задачи за програмиране.

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

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

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

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

Преобразуване на макроси, които са добавени към формуляр или отчет

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

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

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

  3. В диалоговия прозорец Преобразуване на макроси на формуляр или Преобразуване на макроси на отчет изберете дали искате Access да добави код за обработване на грешки към функциите, които генерира. Също така, ако имате коментари в макросите, изберете дали искате да бъдат включени като коментари във функциите. Щракнете върху Преобразувай, за да продължите.

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

  4. За да прегледате и редактирате кода на VBA:

    1. Докато формулярът или отчетът е все още отворен в изгледа за проектиране, ако списъкът със свойства не е вече показан, натиснете F4, за да го покажете.

    2. В раздела Събитие на списъка със свойства щракнете в полето на свойство, което показва [Процедура за обработка на събитие], след което щракнете върху бутона за изграждане Изображение на бутон . За да прегледате свойствата за събития на определена контрола, щракнете върху контролата, за да я изберете. За да прегледате свойствата за събития на целия формуляр или отчет, изберете Формуляр или Отчет от падащия списък в горната част на списъка със свойства.

      Access отваря редактора на Visual Basic и показва процедурата за събития в модула на класа. Можете да превъртите нагоре или надолу, за да прегледате други процедури, които са в същия модул на клас.

Преобразуване на глобални макроси

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

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

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

    Access преобразува макроса и отваря редактора на Visual Basic.

  4. За да прегледате и редактирате кода на VBA:

    1. Ако прозорецът на проекта не е показан в редактора на Visual Basic, в менюто Изглед щракнете върху Прозорец на проекта.

    2. Разгънете дървото под името на базата данни, в която работите.

    3. Под Модули щракнете двукратно върху модула Преобразуван макрос – име на макроса.

      Редакторът на Visual Basic отваря модула.

Добавяне на VBA функция към свойство за събитие

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

  1. Запишете си името на функцията в редактора на Visual Basic. Ако например сте преобразували макрос с име MyMacro, името на функцията ще бъде MyMacro().

  2. Затворете редактора на Visual Basic.

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

  4. Щракнете върху контролата или секцията, с която искате да свържете функцията.

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

  6. В раздела Събитие на списъка със свойства щракнете в полето на свойството за събитие, с което искате да свържете функцията.

  7. В полето на свойството въведете знак за равенство (=), последван от името на функцията, като например =MyMacro() . Не забравяйте да включите скобите.

  8. Запишете формуляра или отчета, като щракнете върху Запиши в лентата с инструменти за бърз достъп.

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

Вече сте запознати с основните стъпки за добавяне на код на VBA към вашата база данни. Тази статия описва само основните неща за започване; има много отлични книги за справка и онлайн ресурси, които могат да ви помогнат да изградите уменията си за програмиране.

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

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×