Partea 7 (episodul 3) - Gconea's Blog



Partea 7 (episodul 3)

Autor Alin Selicean

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

Toate comentariile

Adauga comentarii

| |

| |

| |

| |

|Commentariile voastre |

| |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

|[pic] |

| |

| |

| |

| |

| |

| |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Rezultatul: |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Eliminam subformul care apare sub numele Table.tbl_Colectie. |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Setam cimpul CasaID sa nu fie disponibil si vizibil: |

|[pic] |

| |

| |

| |

| |

| |

| |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Salvam formul nou creat: |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

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

|In functie de context, formul se va comporta diferit (anumite liste vor trebui repopulate cu datele din tabelele corespunzatoare, |

|etc) |

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

|[pic] |

| |

| |

| |

| |

| |

| |

|[pic] |

| |

| |

| |

| |

| |

| |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Introducem codul urmator: |

| |

| |

|Private Sub btn_Save_Click() |

|Dim sArgs As String |

| |

|' Salvam valoarea ultimului parametru |

|sArgs = Me.OpenArgs |

|If 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 CASAID |

|DoCmd.Close acForm, "frm_CasaDeDiscuri" |

|Forms![frm_DetaliiDisc]![CasaID].Requery |

|Forms![frm_DetaliiDisc]![CasaID].SetFocus |

|End If |

|End 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 parametru |

|sArgs = Me.OpenArgs |

|If sArgs = "ADD" Then |

|' Sintem in modul adaugare rapida din formul de editare detalii |

|' Inchidem formul curent |

|DoCmd.Close acForm, "frm_CasaDeDiscuri" |

|' Redam focusul pe lista CasaID |

|Forms![frm_DetaliiDisc]![CasaID].SetFocus |

|End If |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|Me.Caption = "Adaugare rapida casa de discuri" |

|ElseIf Me.OpenArgs = "EDT" Then |

|Me.Caption = "Editare casa de discuri" |

|ElseIf Me.OpenArgs = "ADR" Then |

|Me.Caption = "Adaugare casa de discuri" |

|End If |

|End Sub |

| |

| |

|Si acum sa vedem efectul. |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Click pe Design View, OK. |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Adaugam pagini noi cu click dreapta si Insert Page. |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Procedati similar cu celelalte tab-uri si subformuri. |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Salvam formul si facem o proba. |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Formul nou creat: |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|modul design. |

|[pic] |

| |

| |

| |

| |

| |

| |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|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", , , , , acDialog |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Tools, Startup… |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|[pic] |

| |

| |

| |

| |

| |

| |

| |

|Selectati Open si mergeti mai departe. |

|[pic] |

| |

| |

| |

| |

| |

| |

| |

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

|functionalitatile. |

| |

|Concluzii |

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

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download