Най-четените учебни материали
Най-новите учебни материали
***ДОСТЪП ДО САЙТА***
ДО МОМЕНТА НИ ПОСЕТИХА НАД 2 500 000 ПОТРЕБИТЕЛИ
БЕЗПЛАТНИТЕ УЧЕБНИ МАТЕРИАЛИ ПРИ НАС СА НАД 7 700
Ако сме Ви били полезни, моля да изпратите SMS с текст STG на номер 1092. Цената на SMS е 2,40 лв. с ДДС.
Вашият СМС ще допринесе за обогатяване съдържанието на сайта.
SMS Login
За да използвате ПЪЛНОТО съдържание на сайта изпратете SMS с текст STG на номер 1092 (обща стойност 2.40лв.)Работа с макроси създаване, асоцииране на макроси към събития |
![]() |
![]() |
![]() |
Работа с макроси – създаване, асоцииране на макроси към събития. Автоматизиране на процеси чрез добавяне на командни бутони Макросът е множество от едно или повече действия, всяко от които извършва част от операция (например отделно действие е отварянето на форма, затваряне на форма, изпълнение на заявка, извеждане на съобщение и други). Макросите позволяват да се автоматизира някаква по-обща задача, която да се изпълни при определено събитие на даден контрол (отваряне на форма, затваряне на форма, натискане на бутон, двойно щракване на левия бутон на мишката върху контрол и други). Някои действия, които могат да бъдат включени в макроси, са:
Условия в макрос В някои случаи е необходимо действие или последователност от действия в макрос да се изпълнят само ако определено условие е изпълнено. Условията се въвеждат в колоната Condition на прозореца на макрос в проектен изглед. За визуализирането на тази колона се използва командата от менюто View | Conditions или бутона . Ако условието е изпълнено, MS Access изпълнява действието в този ред. Ако е необходимо да се изпълнят последователно повече действия (при изпълнено условие) в колоната Condition се пише многоточие (...) на редовете, които непосредствено следват условието. Ако условието не е изпълнено, MS Access игнорира действията, които се предхождат от многоточие в колоната Condition и се прехвърлят към редовете със следващото условие или празно място в колоната Condition. Асоцииране на макроси към събития Дадено събитие се свързва с макрос, т.е. когато дадено събитие се случи, макросът се стартира, чрез страницата Event на прозореца Properties на съответния контрол. Макросът AutoExec е специален макрос, който предизвиква действията в него да се изпълняват първи при отваряне на базата данни. Когато MS Access намери този макрос при отваряне на базата данни, го стартира автоматично. Преди макроса AutoExec се изпълняват само опциите за стартиране Startup. За да не се стартира този макрос, както и да се пренебрегнат опциите за стартиране, трябва да се държи натиснат клавиш Shift, докато се отваря базата данни. Опциите за стартиране се задават от диалоговия прозорец Startup, който се отваря с командата от менюто Tools | Startup…:
Форма, която да се отваря автоматично при отваряне на базата данни, може да бъде създадена ръчно или като се използва Tools | Database Utilities | Switchboard Manager, за да се управлява преминаването между форми и отчети в базата данни. Задачи Задача 1. Да се създаде макрос, който да отваря форма за въвеждане на нова категория при двойно щракване на левия бутон на мишката върху контрола Combo Box за избор на категория на продукт във формата ProductsInfo Form. Задача 2. Да се създаде форма, която да позволява извеждане на продадените количества по продукти за определен период от време. Решение: Формата Products Quantity има вида: Съдържа два несвързани контрола Text Box за начална и крайна дата със свойство Format: Short Date или Long Date; свойство Name съответно begin и end и една субформа със свойство Source Object: формата Products quantity subform. Формата Products quantity subform е с източник на данни заявката Products Quantity: SELECT p.ProductName, SUM(sd.Quantity) AS SumOfQuantity FROM Sales s INNER JOIN (Products p INNER JOIN SaleDetails sd ON p.ProductID = sd.ProductID) ON s.SaleID = sd.SaleID WHERE s.SaleDate BETWEEN [Forms]![Products quantity]![begin] AND [Forms]![Products quantity]![end] GROUP BY p.ProductName; За да се актуализира резултата, който извежда субформата при промяна на някоя от датите, се създава макрос Refresh subform, асоцииран със събитието On Exit на двата контрола Text Box. Макросът се състои от едно действие Requery с аргумент – името на контрола Subform: Задача 3. Да се създаде форма, която позволява въвеждане на нови доставки за продукти, т.е. въвеждане на доставено количество, а то автоматично да се прибавя към наличното и да се актуализира доставната цена. Решение: Формата Products add stock има вида: Формата не е свързана с източник на данни и контролите в нея са несвързани. Със събитието On Exit на контрола Combo Box CategoryID за категория е асоцииран макрос Requery product, съдържащ действието Requery с аргумент – името на контрола за продукт: Контролът Combo Box ProductID за продукт има свойство Row Source: SELECT ProductID, ProductName FROM Products WHERE [CategoryID]=Forms![Products add stock]!CategoryID; Еднократното щракване с мишката върху бутона OK стартира макроса Add stock of product: Действието MsgBox извежда съобщение за липсваща информация и след това се спира изпълнението на макроса. Ако количеството и цената са въведени, се изпълняват действията: OpenQuery, което изпълнява заявката Add stock to product: UPDATE Products SET Stock = [stock]+Forms![Products add stock]!quantity WHERE ProductID = [Forms]![Products add stock]![ProductID]; OpenQuery, което изпълнява заявката Update price of products: UPDATE Products SET Price = Forms![Products add stock]!price WHERE ProductID = Forms![Products add stock]!ProductId; SetValue, което има следните аргументи: Item: [Forms]![Products add stock]![CategoryID] Expression: NULL SetValue, което има следните аргументи: Item: [Forms]![Products add stock]![ProductId] Expression: NULL SetValue, което има следните аргументи: Item: [Forms]![Products add stock]![quantity] Expression: NULL SetValue, което има следните аргументи: Item: [Forms]![Products add stock]![price] Expression: NULL Задача 4. Да се създаде форма, която да дава възможност за продажба на продуктите. Решение:
|