Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » tehnologie » electronica electricitate
Crearea si utilizarea macrocomenzilor

Crearea si utilizarea macrocomenzilor


Crearea si utilizarea macrocomenzilor

Introducere

O macrocomanda este o secventa de actiuni menita sa automatizeze o anumita operatie efectuata frecvent de utilizator.

Utilizarea macrocomenzilor accelereaza si faciliteaza lucrul cu aplicatia. Exista situatii in care macrocomenzile sunt preferabile modulelor VBA; ele au insa dezavantajul ca nu permit revenirea - in cazul unui rezultat nedorit - la starea anterioara a aplicatiei.

Macrocomenzile Access se deosebesc de macrocomenzile Excel de exemplu prin faptul ca nu inregistreaza actiunile utilizatorului asupra tastaturii sau asupra mouse-lui, ci preiau secventele de actiuni predefinite indicate de utilizator.

Obiective:

Notiuni introductive



Crearea unei macrocomenzi

Crearea unui formular de actiune

Crearea unui formular de tip switchboard

Doua macrocomenzi speciale: AutoExec si AutoKeys

&

Notiuni introductive

Definitie O macrocomanda este un set de instructiuni care determina aplicatia MS Access sa execute o operatie sau o secventa de operatii in locul utilizatorului. Aceste operatii se numesc actiuni.

Exista situatii care nu pot fi rezolvate decat cu ajutorul unor macrocomenzi (predefinite sau create de programator) sau in care macrocomenzile lucreaza chiar mai bine decat codurile VBA..

Din pacate, macrocomenzile prezinta un mare dezavantaj: in cazul unui rezultat nedorit al executiei macrocomenzii, nu exista posibilitatea de revenire la situatia anterioara, de refacere a starii aplicatiei dinaintea executarii macrocomenzii. Intr-un mediu cu mai multi utilizatori, in care exista o probabilitate destul de mare de aparitie a problemelor legate de blocarea inregistrarilor sau a fisierelor, erorile de blocare nu pot fi tratate in interiorul macrocomenzilor. De asemenea, daca aplicatia creata cu MS Access a fost distribuita cu o versiune executabila independenta de Access, o macrocomanda fara verificare de erori va determina distrugerea completa a aplicatiei create. In astfel de situatii se recomanda utilizarea macrocomenzilor strict pentru operatiile pentru care nu exista si o alta varianta de efectuare.

Proiectarea unei macrocomenzi

Inainte de a crea o macrocomanda, este utila analizarea actiunilor pe care le va executa si analizarea conditiilor in care aceste actiuni trebuie executate. Este recomandata chiar notarea secventei de actiuni si a conditiilor, pas cu pas, si examinarea eventualilor pasi sau a eventualelor actiuni care se repeta. De multe ori, o aceeasi macrocomanda poate fi folosita pentru automatizarea mai multor activitati similare.

Crearea unei macrocomenzi


Elementele ferestrei Macro

Spre deosebire de celelalte obiecte Access, macrocomenzile permit un singur mod de vizualizare: Design View  (de altfel, butoanele de comanda din tabul Macros sunt: NEW, DESIGN si RUN). Aceasta fereastra dispune nu numai de un toolbar special, ci si de un barmeniu adaptat: meniul FORMAT este inlocuit cu meniul RUN (vezi Figura 1). Toolbarul Macro Design contine urmatorii iconi:

Iconii specifici acestui toolbar :Macro Names Conditions: Run si Single Step

Fereastra Macro este impartita tot in 2 paneluri. Panelul superior contine 2 coloane: Action si Comments; cu comanda VIEW CONDITIONS se poate afisa sau ascunde o a 3-a coloana, destinata specificarii conditiilor de efectuare a actiunilor. Panelul inferior este initial vid; pe masura ce se aleg actiuni din lista derulanta a fiecarui rand din coloana Action, panelul Action Arguments afiseaza toate argumentele asociate actiunii si care pot fi setate de utilizator.

Adaugarea actiunilor

Pentru a adauga o actiune unei macrocomenzi - pe primul rand liber din coloana Actions -se poate proceda in 3 moduri:

se deschide lista derulata de actiuni si se alege actiunea necesara;

se tasteaza direct numele actiunii;

se gliseaza obiectul necesar din fereastra DataBase; aceasta ultima metoda are avantajul ca cele mai multe argumente ale actiunii respective sunt setate automat.


Definirea argumentelor unei actiuni

Pentru a adauga o actiune si a-i seta argumentele se procedeaza astfel:

pe primul rand liber din coloana Action a ferestrei Macro se introduce o actiune predefinita (vezi Adaugarea actiunilor )

in coloana Comments asociata se introduce un comentariu, daca este nevoie

clic cu mouse-ul sau tasta F6 pentru deplasare in panelul inferior al ferestrei, panelul argumentelor

clic cu mouse-ul in fiecare caseta-text de argument si tastarea valorii necesare

reluarea tuturor acestor pasi pana la completarea macrocomenzii

salvarea macrocomenzii.

Specificarea conditiilor unei actiuni

In exemplul din Figura 2 se solicita codificarea, la nivelul unui formular, a orasului Alba-Iulia cu AI; deci: in coloana Actions a fost introdusa actiunea SetValue; in panelul de argumente a fost setat argumentul Item pe numele campului din formular care contine codurile oraselor iar argumentul Expression pe codul dorit "AI"; in coloana de conditii a actiunii SetValue a fost creata cu Expression Builder conditia de testare a valorii din campul din formular care contine numele de orase.



In exemplul din Figura 3 se trateaza posibilitatea ca un utilizator sa uite sa introduca in campul Nume al formularului numele expertului; in acest caz, atunci cand se selecteaza controlul urmator, Prenume, apare mai intai o caseta cu un mesaj de atentionare dupa care se selecteaza automat controlul asociat numelui expertului; daca utilizatorul completeaza insa informatia privind numele expertului atunci se deschide un alt formular in care se pot filtra clientii expertului respectiv, manevra care trebuie sa se execute si dupa revenirea la completarea numelui. In exemplul prezentat, macrocomanda a fost asociata proprietatii OnGotFocus a controlului Prenume din formularul F_PtMacro_Experti din BD AsistRom .

Clasificarea actiunilor

In documentatia aplicatiei MS Access actiunile sunt grupate in 5 categorii:

executii diverse:

actiuni diverse:

actiuni pentru transferul datelor:


actiuni pentru administrarea datelor in formulare si rapoarte:

actiuni pentru administrarea obiectelor:

Cateva exemple de actiuni

Actiunea SetValue

In Figura 2 este prezentat un exemplu de stabilire a valorii unui control atunci cand este indeplinita conditia specificata; actiunea SetValue poate fi folosita si pentru a modifica o proprietate a controlului, ca in exemplul de mai jos:

Item  [CityCode].Visible

Expression No

Actiunea MsgBox


De obicei, textul mesajului (argumentul Message) este foarte simplu; se poate folosi insa si o expresie calculata, ca in exemplul de mai jos.

= " Aveti " & DCOUNT( " * " , " Clienti " ) & " clienti la nivelul tuturor centrelor "

Actiunea Echo

Actiunea GoToControl

Actiunea Requery

Actiunea OpenReport

Actiunea SendKeys

Actiunea RunCommand

Actiunea CopyObject


Actiunea OpenTable


Actiunea OpenForm


Actiunea Close


Actiunea DeleteObject


Executarea unei macrocomenzi

Se poate proceda intr-unul dintre urmatoarele moduri, in functie de locul din care se initiaza operatia:

in fereastra Macro: clic pe icounul Run de pe toolbarul ferestrei sau meniul RUN comanda RUN;

in fereastra DataBase: se alege macrocomanda butonul de comanda RUN.

De cele mai multe ori, macrocomenzile sunt atasate

unui eveniment care se produce la nivelul unui formular, raport sau control grafic (buton de comanda, caseta-text etc.)

unei comenzi de meniu

unei taste sau unei combinatii de taste.

Corectarea macrocomenzilor

Daca macrocomanda nu functioneaza corespunzator, ea poate fi depanata folosind facilitatea Single Step care permite executarea macrocomenzii actiune cu actiune si vizualizarea rezultatului evaluarii fiecarei conditii. Aceasta facilitate se lanseaza astfel:


Crearea formularelor de actiune

Un formular de actiune este un formular care contine controale grafice de un singur tip, si anume butoane de comanda. Modul de creare a butoanelor de comanda a fost prezentat in capitolul dedicat formularelor; in continuare este analizat modul de asignare a unei macrocomenzi unui buton de comanda precum si, in paragraful urmator, modul de creare a unui formular de actiune de tip special: formularul switchboard.

Lansarea unei macrocomenzi prin setarea proprietatii OnClick a unui buton de comanda

Dupa afisarea formularului sau raportului in modul Design View se poate proceda in 2 moduri:

se creeaza butonul de comanda cu procedura de asistenta Control Wizards activa

in prima fereastra-dialog, in zona Categories  se alege categoria Miscellaneous, iar in zona Actions se alege Run Macro

in a doua fereastra-dialog se selecteaza numele macrocomenzii de asignat

in a treia fereastra-dialog se ataseaza butonului de comanda o imagine sau un text

in ultima fereastra-dialog se da un nume butonului si FINISH;

se creeaza butonul de comanda cu procedura de asistenta Control Wizards dezactivata

se afiseaza fereastra Properties a butonului astfel creat, cu tabul Event sau cu tabul All activat

in linia proprietatii OnClick se deschide lista derulanta de proprietati si se alege numele macrocomenzii sau se tasteaza direct acest nume

se salveaza formularul sau raportul si se verifica modul de functionare a butonului.

Lansarea unei macrocomenzi prin setarea proprietatii OnClick a unui control grafic

Se procedeaza astfel:

se afiseaza formularul sau raportul in modul Design View

se selecteaza controlul grafic respectiv

se afiseaza fereastra Properties a controlului cu tabul Event sau cu tabul All activat

in linia proprietatii OnClick se deschide lista derulanta de proprietati si se alege numele macrocomenzii sau se tasteaza direct acest nume

se salveaza formularul sau raportul (vezi controlul Prenume din formularul F_PtMacro_Experti din BD AsistRom.).

Crearea unui formular de actiune de tip switchboard

Daca BD este creata cu procedura de asistenta Database Wizards atunci este creat implicit un formular de actiune (care nu contine decat butoane de comanda) de tip special, numit switchboard. Acest formular reprezinta cea mai comoda interfata grafica care faciliteaza parcurgerea formularelor, rapoartelor si a celorlalte obiecte din BD. Un formular similar poate fi creat si pentru BD proiectate direct, daca se apeleaza la o procedura de asistenta dedicata, numita Switchboard Manager. Se procedeaza astfel:

meniul TOOLS comanda ADD-INS subcomanda SWITCHBOARD MANAGER T

se afiseaza fereastra-dialog in care utilizatorul este intrebat daca doreste sa creeze un formular de tip switchboard se alege butonul de comanda YES T


se afiseaza fereastra-dialog Switchboard Manager se alege butonul de comanda EDIT T

se afiseaza fereastra-dialog Edit Switchboard Page in caseta-text Switchboard Name se tasteaza numele formularului se alege butonul de comanda NEW T



se afiseaza fereastra-dialog Edit Switchboard Item in caseta-text Text se tasteaza numele butonului de comanda care trebuie creat in caseta combinata Command se alege o comanda de atasat butonului in functie de comanda aleasa, MS Access afiseaza in ferestra-dialog o alta caseta-combinata din care se poate alege elementul dorit OK (de exemplu, trebuie creat butonul de comanda cu numele "Open_F_Produse", care sa deschida un formular in modul editare, si anume formularul "F_Produse") T

se revine in fereastra-dialog Edit Switchboard Page in care acum numele butonului de comanda nou creat a aparut in zona de listare Items on this switchboard

se repeta ultimii trei pasi pana cand sunt create toate butoanele de comanda necesare

daca un buton de comanda trebuie sters, se actioneaza butonul de comanda DELETE din fereastra

daca ordinea butoanelor de comanda trebuie modificata, se actioneaza butoanele de comanda MOVE UP si MOVE DOWN din fereastra

se alege butonul de comanda CLOSE T

formularul a fost creat si depus in tabul Forms al BD cu numele Switchboard; simultan in tabul Tables a fost creat tabelul cu numele Switchboard Items, in care a fost introdusa cate o inregistrare pentru fiecare buton de comanda creat.

Procedura de asistenta Switchboard Manager poate fi utilizata pentru a crea un formular de tip switchboard care sa deschida alte formulare de acelasi tip. Se procedeaza astfel:

se stabileste relatia dintre formularele switchboard si setul de butoane de comanda pe care trebuie sa le contina fiecare (vom presupune ca exista numai 2 nivele de ierarhizare: formularul principal si formularele secundare "ramificate' din acesta; evident ca fiecare formular poate sa se ramifice la randul sau in alte formulare)

se stabileste formularul care va fi deschis automat odata cu BD si din care vor fi deschise celelalte formulare

se creeaza acest formular conform procedurii de mai sus, incluzandu-se cel putin 2 butoane de comanda: unul pentru afisarea fereastrei DataBase si unul pentru parasirea aplicatiei

se creeaza pe rand celelalte formulare conform procedurii de mai sus, incluzandu-se pe langa butoanele de comanda necesare si cate un buton de comanda pentru revenirea in formularul switchboard principal, respectiv in fereastra BD

se selecteaza din nou formularul principal in fereastra Switchboard Manager

se defineste acest formular ca formular principal prin actionarea butonului de comanda MAKE DEFAULT

se include cate un buton de comanda pentru deschiderea fiecarui formular care se "ramifica" din formularul principal

daca utilizatorul doreste, poate include acest formular principal in fereastra StartUp astfel incat formularul switchboard principal sa se afiseze automat la deschiderea BD.


Doua macrocomenzi speciale: AutoExec si AutoKeys

Macrocomanda AutoExec

MS Access permite configurarea speciala a operatiei de deschidere a unei BD, fie prin utilizarea unei macrocomenzii de un tip special, macrocomanda AutoExec, fie prin utilizarea comenzii TOOLS STARTUP.

Macrocomanda AutoExec se creeaza in acelasi mod in care se creeaza macrocomenzile obisnuite, dar se salveaza cu numele AutoExec. La urmatoarea deschidere a BD, toate actiunile care compun macrocomanda Autoexec vor fi automat executate. De fapt, intotdeauna la deschiderea oricarei BD aplicatia MS Access cauta o macrocomanda cu numele AutoExec si, daca o gaseste, o executa imediat.

Comanda TOOLS STARTUP determina afisarea fereastrei-dialog din figura; in casetele-text respective, se pot specifica: un nume pentru BD care sa fie afisat in bara de titlu a aplicatiei MS Access atunci cand se deschide BD respectiva, un icon care sa fie afisat alaturi de acest nume, un barmeniu predefinit adaptat de utilizator sau un barmeniu creat de utilizator care sa fie afisat in locul barmeniului predefinit (acesta va fi numai ascuns, putand fi reafisat cu comanda CTRL + F11, comanda care comuta intre cele 2 barmeniuri), numele unui formular care sa fie automat deschis si afisat la deschiderea BD (de obicei aici se indica numele unui formularului switchboard, care poate servi drept interfata grafica pentru aplicatia creata) etc.


Macrocomanda AutoKeys

Se poate asigna o actiune sau un set de actiuni unei anumite taste sau unei combinatii de taste, prin crearea unui grup de macrocomenzi AutoKeys. La fiecare actionarea a tastei / combinatiei de taste, MS Access executa actiunea respectiva. Se procedeaza astfel:

se afiseaza fereastra-dialog DataBase cu tabul Macros activat

se alege butonul de comanda NEW

iconul MacroNames de pe toolbar sau meniul VIEW comanda MACRO NAMES T

in panelul superior al ferestrei Macro se afiseaza coloana MacroName

se tasteaza tasta sau combinatia de taste careia trebuie sa i se asigneze actiunea sau secventa de actiuni

se adauga actiunea sau secventa de actiuni respectiva

se repeta ultimii doi pasi pentru o noua asignare de taste

se salveaza macrocomanda cu numele AutoKeys.

Rezumat

Subiecte

O macrocomanda este o secventa de actiuni executate de catre aplicatia MS Access in locul utlizatorului (deschideri de tabele, interogari etc.), setari de valori sau de proprietati ale controalelor grafice, afisari de mesaje explicative etc.

Un formular de actiune este un formular care contine un singur tip de controale grafice: butoane de comanda; deci rolul sau este sa lanseze in executie macrocomenzi sau functii si proceduri VBA.

Un formular de tip switchboard este un formular de actiune de tip special; el reprezinta cea mai comoda si mai eficienta interfata grafica pentru utilizator.

Predicate

Crearea unei macrocomenzi presupune alegerea actiunilor dorite din listele derulante oferite de aplicatia MS Access. Fiecare actiune comporta unul sau mai multe argumente care trebuie setate; prin intermediul conditiilor, macrocomenzile pot simula constructii de tip if.then.else.

Asignarea unei macrocomenzi unui buton de comanda sau unui control grafic se face prin setarea uneia dintre proprietatile obiectului (OnGotFocus, OnEntry, On Exit etc.) in fereastra Properties a acestuia.

Crearea si modificarea unui formular de tip switchboard se face cu comanda TOOLS ADD-INS SWITCHBOARD MANAGER care lanseaza procedura de asistenta Switchboard Manager.

Ce urmeaza?

Prezentarea modulelor si programelor VBA.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.