partea 7 (episodul 3) - wordpress.com  · web viewsfat: inserati un buton, redimensionati-l si...

Post on 07-Mar-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Partea 7 (episodul 3)

Testarea aplicatieiAcum sa testam aplicatia. Aici am sa va las pe fiecare in parte sa faceti acest test. Eu am sa evidentiez direct unele lipsuri, pe care le-am lasat intentionat la urma. De ce ? Pentru ca am dorit sa evidentiez importanta analizei din mai multe puncte de vedere: functionalitati, interfata (formul principal), implementarea functionalitatilor in diferite locuri in cadrul aplicatiei.

Deficienta majora a aplicatiei o reprezinta faptul ca nu exista formuri de actualizare a datelor statice (gen cataloage) care sa fie afisate in combobox-urile corespunzatoare. Aceasta lipsa este evidenta in formul de editare / adaugare discuri.

Intrebarea apare cind incercam sa modificam, de exemplu, genul unui disc si genul dorit nu este regasit in lista afisata.

Autor Alin Selicean

Toate comentariileAdauga comentarii

Ultimul comentariu:"Nu stiu de ce setari este nevoie pentru ca o baza de date creat in Access care functioneaza pe SQL server sa functioneze in reteaua locala??? Ma poate ajuta cineva? Multumesc anticipat pentru idei."

Cum corectam aceasta deficienta ? Putem adauga, linga fiecare lista de acest tip, cite un buton care sa activeze un form de actualizare a tabelelor care contin datele respective. Formurile necesare vor trebui sa permita atit adaugarea rapida de date, cit si editarea datelor existente.

Sint necesari trei pasi majori: 1) modificarea designului formului de editare / adaugare a unui titlu, 2) creerea cite unui form de adaugare rapida a datelor dorite specific fiecarui combobox si 3) creerea unui form general care sa contina tabelele cu datele existente pentru a putea fi modificate. Va voi prezenta modul de creere a formului general si a unui form de adaugare rapida si va las cu titlu de exercitiu creerea celorlalte formuri. Dispuneti de aplicatia completa pentru download, daca intimpinati probleme cu acest exercitiu.

Deschidem formul frm_Detalii in modul Design.

Pentru a face loc noilor butoane, marim spre dreapta formul, repozitionam spre dreapta butoanele Salvare, Abandon si casuta DiscID. Putem, acum, pozitiona cite un buton linga fiecare combobox, similar imaginii de mai sus. Sfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste creati celelalte butoane (e nevoie de repozitionarea acestora).

Actualizam proprietatea Name pentru fiecare buton (primul este descris in imaginea de mai sus):

Creem acum formurile care vor fi apelate de aceste butoane.

Pentru a usura acest task, vom apela la wizard-uri. In containerul Tables, selectam tabela tbl_CaseDeDiscuri si din toolbar, selectam wizard-ul Autoform.

Rezultatul:

Urmeaza sa finisam formul creat cu acest wizard, prin ajustarea unro setari la nivel de form. Dupa aceasta, vom avea de adaugat unele controale la acest form. Pentru aceasta, comutam in modul Design.

In primul rind dorim sa nu mai avem fereastra de proprietati afisata tot timpul.

In al doilea rind, dorim sa eliminam unele elemente incluse implicit de wizard: scrollbars, record selectors, titlul, etc.

Eliminam subformul care apare sub numele Table.tbl_Colectie.

Adaugam 2 butoane: OK (sau Save) si Abandon.

Setam cimpul CasaID sa nu fie disponibil si vizibil:

Salvam formul nou creat:

La acest form, mai avem de adaugat codul VBA care sa ne ofere functionalitatile specifice contextului din care vom apela acest form.

Nu am sa intru in detalii foarte mari, dar pe scurt:1. Acest form va fi apelat atit din formul de editare detalii cit si dintr-un form care ne va

permite accesul la toate cataloagele aplicatiei (case de discuri, standarde, etc) 2. In functie de context, formul se va comporta diferit (anumite liste vor trebui repopulate cu

datele din tabelele corespunzatoare, etc) 3. Contextul din care este apelat va fi determinat cu ajutorul parametrului OpenArgs care se

poate furniza (parametrul este optional) unui form la deschiderea acestuia (via VBA)

Sa trecem la construirea codului VBA pentru acest form, incepind cu formul de editare a detaliilor unui disc.

Citeva cuvinte despre bucata de cod:Deschidem formul in modul de afisare “normal” (acNormal), in modul de parcurgere a datelor “adaugare” (acFormAdd), in modul “Dialog” (acDialog – nu se permite accesarea altor elemente ale aplicatiei pina nu se inchide formul curent) si transmitem prin intermediul ultimului parametru contextul din care apelam formul (“ADD” – OpenArgs). Acest ultim parametru il vom folosi in cadrul codului VBA asociat formului frm_CasaDeDiscuri pentru a actiona conform cerintelor acelui context.

Deschidem acest form pentru design si completam codul VBA asociat atit formului (ce sa se intimple cind formul este deschis sau inchis), cit si codul asociat diferitelor controale.

Introducem codul urmator:

Private Sub btn_Save_Click()Dim sArgs As String

' Salvam valoarea ultimului parametrusArgs = Me.OpenArgsIf sArgs = "ADD" Then' Sintem in modul adaugare rapida din formul de editare detalii' 1. Inchidem formul curent' 2. Recitim tabela cu casele de discuri, afisata in controlul CASAID' 3. Predam focusul pe controlul CASAIDDoCmd.Close acForm, "frm_CasaDeDiscuri"Forms![frm_DetaliiDisc]![CasaID].RequeryForms![frm_DetaliiDisc]![CasaID].SetFocusEnd IfEnd Sub

Codul este comentat, asa ca nu am sa mai insist asupra actiunilor din cod.

Adaugam si codul pentru butonul Abandon.

Private Sub btn_Abandon_Click()Dim sArgs As String

' Salvam valoarea ultimului parametrusArgs = Me.OpenArgsIf sArgs = "ADD" Then' Sintem in modul adaugare rapida din formul de editare detalii' Inchidem formul curentDoCmd.Close acForm, "frm_CasaDeDiscuri"' Redam focusul pe lista CasaIDForms![frm_DetaliiDisc]![CasaID].SetFocusEnd IfEnd Sub

Pentru a putea identifica vizual contextul in care lucreaza formul, vom introduce un cod VBA care va afisa in bara de titlu a ferestrei modul de lucru curent.

Cu click pe butonul … se deschide VBA Editor si se introduce codul de mai jos:

Private Sub Form_Open(Cancel As Integer)If Me.OpenArgs = "ADD" ThenMe.Caption = "Adaugare rapida casa de discuri"ElseIf Me.OpenArgs = "EDT" ThenMe.Caption = "Editare casa de discuri"ElseIf Me.OpenArgs = "ADR" ThenMe.Caption = "Adaugare casa de discuri"End IfEnd Sub

Si acum sa vedem efectul.

Se poate vedea ca titlul afisat in bara de titlu este “Adaugare rapida”.

Va voi asista acum in creerea formului in care vom putea edita datele din celelalte tabele asociate aplicatiei: case de discuri, genuri, standarde disc, agenda. Pentru usurinta, vom folosi modul de afisare / gestionare / modificare date tabelar, cu subformuri care include tabelele dorite.

Pentru aceasta vom avea nevoie de un form principal, in care vom include

aceste subformuri, pe cite un tab separat fiecare subform. Incepem cu un click pe New… in containerul Forms.

Click pe Design View, OK.

Redimensionati formul implicit pina ajunge suficient de mare (similar cu imaginea de mai sus). Click pe butonul Tabbed Control (vezi imaginea de mai sus pentru localizarea acestuia in toolbar). NOTA: Tabbed control este un control ActiveX. Mai multe detalii despre controalele ActiveX gasiti in documentatia Access.

Dimensionati tab-urile similar imaginii de mai sus. Click dreapta pe tab-uri si selectati Properties.

Modificam titlul afisat pentru fiecare tab si adaugam tab-uri conform imaginii de mai sus

Adaugam pagini noi cu click dreapta si Insert Page.

Inseram ca subform in fiecare tab, un link catre tabelele cu rol de cataloage. Pentru a insera un subform, click pe butonul Subform / Subreport din toolbar (vezi in imaginea de mai sus localizarea acestui buton in toolbar).

Procedati similar cu celelalte tab-uri si subformuri.

Click pe tab-ul dorit, si apoi click pe subformul inclus. Modificati proprietatea Name conform imaginii de mai sus. Procedati similar pentru restul tab-urilor / subformurilor.

Formul creat mai sus ne va permite accesul rapid si facil la datele cu rol de cataloage, pentru a actualiza aceste date: adaugari, modificari si stergeri de date din aceste cataloage.

Modificam unele proprietati de afisare a formului. Setati conform imaginii de mai jos:

Acest form se va inchide cu ajutorul butonului standard Close (X) al ferestrelor Windows.

Salvam formul si facem o proba.

Formul nou creat:

Acum, pentru a accesa acest form, trebuie sa creem un nou buton in formul principal al aplicatiei. Deschidem formul frm_Startup in modul design.

Asignam o actiune acestui buton, si anume sa deschida formul frm_Cataloage, prin intermediul codului de mai jos:

Private Sub btn_Cataloage_Click()DoCmd.OpenForm "frm_Cataloage", , , , , acDialogEnd Sub

Salvam si inchidem formul frm_Startup. Cu acestea, am putea spune ca aplicatia noastra este gata. Totusi, am vrea ca accesind aceasta baza de date (sau aplicatie Access), sa se deschida automat formul frm_Startup si fereastra bazei de date Access (unde sint disponibile tabelele si celelalte obiecte) sa fie ascunse.

Aceasta se poate face foarte usor, astfel:

Tools, Startup…

Efectuati setarile conform imaginii de mai sus si click pe OK. Inchideti Access si creati un shortcut la baza de date creata in cadrul acestui exercitiu. Dati dublu click pe acest shortcut si vedeti rezultatul muncii voastre.

In functie de anumite setari de securitate din cadrul pachetului Office, poate aparea urmatorul mesaj de avertizare:

Selectati Open si mergeti mai departe.

Si cu asta putem considera aplicatia noastra terminata. Va invit sa o parcurgeti de la un capat la altul si sa ii testati functionalitatile.

ConcluziiCiteva imbuntatiri posibile: Se poate asigna formului de rapoarte ca la dublu-click pe un raport sa se afiseze raportul dorit; Se poate adopta un alt format al raportului, se pot filtra datele pe diferite criterii, se pot genera rapoarte diferite pentru diferitele categorii de cd-uri, care sa includa datele relevante pentru acea categorie Se pot include si alte informatii relevante pentru acest domeniu

Pentru comoditatea voastra, aveti aplicatia disponibila pentru download Aici

Sper ca acest tutorial sa va fi ajutat cit de cit si sa va trezeasca interesul pentru bazele de date. Dupa cum ati vazut, Access poate fi o unealta puternica si permite lucrul cu baze de date mari, stocate pe un server puternic de baze de date (SQL Server). Frumusetea acestui aspect nu consta in faptul ca puteti folosi un SQL Server, ci ca puteti folosi orice motor de baze de date puternic (Oracle, etc), cu unele mici amendamente (care nu fac obiectul acestui tutorial) si unele aspecte specifice fiecarui motor de baze de date.

top related