ПредишенСледващото

В тази визуално практическо ръководство ви показва как да добавите поддръжка за денормализирани маса "Поръчки" и "подробности за поръчката" в примерна база данни "Northwind" на, добавяне на колона в таблица "Поръчки", който съхранява общата сума на поръчката. Въпреки че данните де-нормализиране обикновено не е оптимално решение, тя може да се подобри ефективността при създаване на отчети.

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

Като се има предвид, че целта на примера - вземете с което общият брой на обща стойност на тази поръчка, трябва да добавите макроса до данните за събитието "След оборудването", "След като поставите" и "След отстраняването на" в таблицата "Информация за поръчка". Макро актуализации стойността на ново поле в таблицата на "Поръчки", паричната сфера "OrderTotal".

В допълнение, примерна база данни "Northwind" съдържа данни в таблицата "Информация за поръчка", и трябва по някакъв начин да се съчетаят данните и инициализира полето "OrderTotal" в "Поръчки" масата. Това означава, че вие ​​трябва да създадете макрос данни, които могат да бъдат призовани да се инициализира полето "OrderTotal". Този визуален практическо ръководство, можете да започнете, като създадете база данни проба, след което добавете самостоятелно име макро. След това ще можете да създадете име макрос, който може да бъде наречен от събитието "След надграждане" "След като поставите" и "след отстраняване на" за "таблица с подробности за поръчката".

Създаване на база данни проба

За да създадете база данни проба се използва следната процедура.

Създаване на база данни проба

В списъка с налични шаблони, под Office.com шаблони, кликнете на пробата.

Изберете пътя и щракнете върху бутона Upload. За да изтеглите и инсталирате на чисто копие на базата данни извадка.

Кликнете върху Активиране на съдържанието на лента със съобщение. Ако бъдете подканени да се даде възможност на VBA код в базата данни на извадката.

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

Промяна на таблицата "Поръчки"

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

Промяна на таблицата "Поръчки"

Разширете падащия списък в горната част на панела за навигация и да изберете типа обект от списъка с наличните опции.

Разширете раздела таблици. щракнете с десния бутон масата за поръчки, и изберете Design View.

В долната част на списъка с полета в графата "Име на полето" влиза "OrderTotal". В "тип данни" влиза "в брой".

Запазване и затваряне на дизайнера.

поле Update "OrderTotal"

OrderTotal за областта в "Поръчки" на масата трябва да добавите макро данни, които могат да се инициализира стойността на областта въз основа на текущия набор от редове в таблицата "Информация за поръчка". Макро задължително преминете през всички редове в "Поръчки" на масата и за всеки от тях да се намери съвпадение набор от редове в таблицата "Информация за поръчка". Въз основа на тях, макро е да се изчисли сумата на полето "Количество * [] единична цена" и да го запазите в текущия ред в "Поръчки" на масата.

В навигационния екран щракнете двукратно върху таблицата с поръчки. за да го отворите. Open таблица в раздела панделка. След това, в групата Име на макроси, кликнете Кръстен макро. На последно място, щракнете върху Създаване на име макро (вж. Фиг. 1).

Фиг. 1. Създаване на име макро

В дизайнера, изберете макроса в действието на разгъващ DlyaKazhdoyZapisi. Тя ви позволява да мине през всички редове на източник на данни. В падащото меню до действието DlyaKazhdoyZapisi изберете Поръчки. Фиг. 2 показва макро дизайнер на този етап.

Фиг. 2. Търсене на редовете

В областта на в DlyaKazhdoyZapisi ZadatLokPeremennuyu списък, изберете и да се създаде променлива с име varTotalPurchased и стойност 0, както е показано на фиг. 3.

Фиг. 3. Създаване на локална променлива за съхраняване на резултатите

комбинираното поле е празно в ForEachRecord макро действие изберете DlyaKazhdoyZapisi (така че може да мине през всички редове на реда в таблицата "Информация за поръчка"). Въвеждане на стойностите, както е показано на фиг. 4, при използване IntelliSense като вход. Обърнете внимание на "псевдоним" - тази стойност се създава име набор от редове, така че можете да се обърнете към няколко реда. определени произволно име.

Фиг. 4. Избор на набор съответстващи редове в таблицата "Информация за поръчка"

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

Фиг. 5. Натрупването общо Поръчка

За да се сложи край на макро- и актуализиране на стойностите в таблицата "Поръчки", щракнете върху крайната макро ForEachRecord. В падащото меню в долната част на командата, изберете IzmenitZapis. След това, в списъка кутия, изберете ZadatPole. В полето Име въведете "Zakazy.OrderTotal", а в полето Данни за стойността, изберете varTotalPurchased, както е показано на фиг. 6.

Фиг. 6. Определете OrderTotal полето стойност чрез локална променлива

Можете да създадете име макро данни, преминавайки през всички редове в "Поръчки" масата. За всеки ред в макроса маса намира всички съвпадение редове в таблицата "Информация за поръчка", се натрупва стойности на полета "номер" и "цената на недвижимата собственост", съхранява сумата в променлива varTotalPurchased и накрая копия стойността в OrderTotal в таблицата "Поръчки ".

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

На лентата, щракнете върху Запиши. въведете името на макро UpdateTotals. и след това щракнете върху Затвори.

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

В падащото меню изберете Добавяне на нов макрос действие ZapuskMakrosaDannyh. след това изберете Orders.UpdateTotals макро. както е показано на фиг. 7, с изключение на макроса като UpdateTotals и след това щракнете върху Изпълни.

След приключване на макроса, изберете таблицата "Поръчки" и се уверете, че полето "OrderTotal" сега съдържа обща стойност на покупката, при поискване.

Можете да създавате резултата от искането за проверка на резултатите.

Фиг. 7. Създаване на макрос за изпълнение на тези макро

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

Всеки един от тези събития данни ( "След вмъкването", "След оборудването" и "След отстраняването на"), следва да се справят по същество една и съща задача - те трябва да се изчисли нова сума за добавянето (или изваждане на събитието "След надграждане" и "След отстраняване ") въз основа на стойността на полето" OrderTotal ", а след това направете необходимите промени. Тъй като всички макроси събития изискват общи характеристики, че има смисъл да се създаде един на име макрос, който може да бъде наречен от данни за събития. За да направите това, отворете таблицата "Информация за поръчка" и да се създаде име макро, както и за "Поръчки" масата. Този макрос изисква два параметъра. Кликнете върху Създаване опция два пъти и въведете стойностите, както е показано на фиг. 8.

Фиг. 8. Създаване на макро параметри

В падащото меню изберете макро NaytiZapis и поставете параметри, както е показано на фиг. 9. Тази команда се намери в таблицата "Поръчки" низовата стойност, съответстваща OrderID, която се предава на макроса.

Фиг. 9. Намирането на правилния ред

макро NaytiZapis IzmenitZapis Добавяне на макро и го добавете действие ZadatPole. Определете стойности за макро параметри, както е показано на фиг. 10. Тези определени стойности за поле Zakazy.OrderTotal старата стойност нараства от стойността, предавана на макро.

Фиг. 10. Актуализация на полета "OrderTotal"

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

Обработка на събития "След поставянето на"

Когато поставите нов ред в таблицата "Информация за поръчка", трябва да добавите стойността на полето "Количество * [единична цена]" в реда в таблицата "Поръчки". За да направите това, първо се уверете, че таблицата "Информация за поръчка" е отворен и е избран. На лентата, щракнете върху раздела Таблица. След това групата Последващите събития, изберете събитието след вмъкване. В този случай, ще бъде създаден макрос, наречен достъп, след като поставите нов ред в таблицата "Информация за поръчка". В нов макрос, изберете макро ZapuskMakrosaDannyh и поставете параметри, както е показано на фиг. 11. На лентата, щракнете върху Затвори и запишете макрос, когато бъдете подканени.

Фиг. 11. Създаване на макро данни "След поставянето на"

Събитие Processing "След актуализиране"

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

На лентата, натиснете след ъпгрейд. За да създадете макрос за събитието, както и в списъка кутия, изберете дали и използвате вградения Обновено функция. да се определи дали поле "единична цена" или "номер" се актуализират, като част от тази актуализация. Ако не, не се променят таблицата "Поръчки" на. Фиг. 12 показва израз, който трябва да бъде въведен в макроси конструктор.

Фиг. 12. Посочете условен израз за макро "Ако"

На макро Ако макро призив ZapuskMakrosaDannyh уточняване на параметрите, както е показано на фиг. 13. Имайте предвид, че това действие изважда старата стойност за продължителен сума. Добавяте сума удължаване на текущия ред в следващата стъпка.

Фиг. 13. изваждане на текущия ред на стария разширен размер

Завършване на макроса, добавяйки последната покана за макро ZapuskMakrosaDannyh и добавяне на настоящото удължаване на размера (вж. Фиг. 14).

Фиг. 14. Добавяне на текущата линия удължен размер

На лентата, щракнете върху Запиши. и след това щракнете върху Затвори.

Обработка на събития "След отстраняването на"

Когато изтриете редове в таблицата "Информация за поръчка" трябва да се извади стария разширен сума, както в предишния пример. Повторете стъпките от предишния раздел, но изберете събитието "След отстраняването на" и да добавите само един разговор с макросредата ZapuskMakrosaDannyh. При сключването на опции ще се появи, както е показано на фиг. 15. Щракнете върху Затвори и запишете макрос, когато бъдете подканени.

Фиг. 15. изваждане на дистанционното линия удължен размер

Свързани статии

Подкрепете проекта - споделете линка, благодаря!