Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si...

39
Partea 7 (episodul 3) Testarea aplicatiei Acum 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. Autor Alin Selicean Toate comentariile Adauga 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."

Transcript of Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si...

Page 1: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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."

Page 2: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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):

Page 3: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste
Page 4: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste
Page 5: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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.

Page 6: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

Rezultatul:

Page 7: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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.

Page 8: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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

Page 9: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

Eliminam subformul care apare sub numele Table.tbl_Colectie.

Page 10: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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

Page 11: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste
Page 12: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

Setam cimpul CasaID sa nu fie disponibil si vizibil:

Page 13: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste
Page 14: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

Salvam formul nou creat:

Page 15: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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.

Page 16: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste
Page 17: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste
Page 18: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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.

Page 19: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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.

Page 20: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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:

Page 21: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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

Page 22: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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

Click pe Design View, OK.

Page 23: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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.

Page 24: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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

Page 25: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste
Page 26: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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

Adaugam pagini noi cu click dreapta si Insert Page.

Page 27: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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).

Page 28: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

Procedati similar cu celelalte tab-uri si subformuri.

Page 29: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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.

Page 30: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

Salvam formul si facem o proba.

Page 31: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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.

Page 32: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste
Page 33: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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…

Page 34: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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:

Page 35: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

Selectati Open si mergeti mai departe.

Page 36: Partea 7 (episodul 3) - WordPress.com  · Web viewSfat: inserati un buton, redimensionati-l si schimbati-i textul afisat din “CommandNN” in “…”, dupa care cu Copy & Paste

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.