Aplicatii ale Sistemelor de Gestiune a Bazelor de Date, cu Interogare In Visual Basic

Cap.1 Introducere

Un proiect soft incepe cu exprimarea cerintelor si se finalizeaza cu obtinerea unui program operational- intre acestea se afla ciclul de dezvoltare software, format dintr-o succesiune de faze.

Cel mai important lucru in buna desfasurare a unui proiect software este intelegerea clara a cerintelor, chiar exista o lege a lui Murphy legata de cerinte- Un proiect, chiar daca raspunde integral cerintelor specificate, va satisface numai intamplator toate cerintele clientului.

Exista 4 principii esentiale in dezvoltarea software, care pot genera succesul / insuccesul proiectelor de dezvoltare software (conform unui studiu efectuat cu participarea a 31 de specialisti software afiliati IEEE Computer Society – de la universitati, companii):

(P1) Investiti in intelegerea cerintelor

(P2) Inrucat prin natura sa software-ul este supus schimbarii, planificati-o si controlati-o (planificare- ar fi bine sa planificam orice schimbare pe care inca de la inceput o putem prevedea, dar de cele mai multe ori e foarte greu sa prevedem schimbarea, e chiar foarte greu sa intelegem cerintele; control-un ex ar fi: documentand procesul de dezvoltare a software-uluiin intregul sau si mai particular documantand codul chiar, usuram controlul schimbarii)

(P3) Intrucat incertitudinea este inevitabila in dezvoltarea software, identificati-o si gestionati-o-pentru reducerea ei trebuie sa se aplice masuratori cantitative in luarea oricaror decizii (incertitudinea exista pentru ca dezvoltarea software se bazeaza pe expertiza umana –de ex estimarea de efort si planificarea termenelor include o mare incertitudine

(P4) Intrucat compromisurile sunt inerente in dezvoltarea software faceti-le explicitat si documentati-le (compromisurile se refera la legatura intre cost, planificarea termenilor, performantele tehnice ale produsului si calitatea proceselor desfasurate)

4 factori de succes in dezvoltarea software (conform unui raport al grupului Standish)- daca toate acestea nu sunt indeplinite se recurge pentru realizarea proiectului la “hard working, focused staff”:

(S1) implicarea utilizatorului final

(S2) sprijinul managementului executiv

(S3) clarificarea cerintelor

(S4) planificarea

Statistici care ar putea fi descurajante, dar adevarate despre proiectele software:

Departament of Defence-49% din software-ul comandat nu a fost utilizat niciodata,

30% nu a fost livrat niciodata si numai

sub 1% a fost utilizat fara modificari, asa cum a fost livrat

Grupul Standish – in ultimii 20 de ani 53% din proiectele software au fost modificate

31% au fost abandonate si doar restul de

16% au fost finalizate cu succes

De ce VB ?

Cuvantul "visual" se refera la metoda folosita la crearea interfetei grafice cu utilizatorul (GUI) "basic" vine de la limbajul BASIC (Beginners All-Purpose Symbolic Instruction Code: codul instructiunilor simbolice de uz general pentru incepatori), un limbaj folosit de mai multi programatori decat oricare altul din istoria calculatoarelor.

Visual Basic poate permite crearea unui utilitar de mici dimensiuni pentru uz personal sau al unui grup de lucru, un sistem la nivelul intregii firme sau o aplicatie distribuita pe intreg globul prin intermediul internetului. In toate aceste cazuri Visual Basic detine uneltele de care avem nevoie:

-Caracteristicile de acces la date permit crearea unor baze de date, aplicatii de tip front-end (la nivel de utilizator final) si componente scalabile la nivel de server pentru cele mai raspandite tipuri de baze dedate, inclusiv Microsoft SQL Server si alte baze de date de dimensiuni mari

-Tehnologiile ActiveX permit folosirea functiilor furnizate de catre aplicatii precum editorul de texte Microsoft Word, programul de calcul tabelar Microsoft Excel, ca si de alte aplicatii Windows

-Facilitatile pentru internet permit accesul din cadrul aplicatiei VB la documente si aplicatii din internet sau intranet sau crearea unor aplicatii de tip Internet server

-O data terminata aplicatia VB este un fisier cu adevarat executabil, de tip .exe, care foloseste o masina virtuala Visual Basic ce poate fi distribuita liber.

Concepte din VB

In Visual Basic exista trei concepte cheie: ferestre, evenimente si mesaje.

Conceptul de fereastra este deja cunoscut, sistemul de operare Microsoft Windows administreaza toate ferestrele alocandu-le fiecareia cate un identificator numeric unic (hWnd). Sistemul monitorizeaza continuu fiecare fereastra pentru a detecta vreun eveniment.

Evenimentele pot aparea ca urmare a actiunii utilizatorului , cum ar fi un clic de mouse sau apasarea unei taste. Ori de cate ori survine un eveniment, acesta genereaza un mesaj care este transmis sistemului de operare; acest aproceseaza mesajul si-l transmite celorlalte ferestre

In aplicatiile traditionale, numite si “procedurale”, aplicatia insasi decide care portiuni din cod se executa la un moment dat si in ce ordine. Executia porneste de la prima linie de cod si urmareste o cale predefinita de-a lungul aplicatiei, apeland procedurile pe masura ce este nevoie de ele.

Intr-o aplicatie bazata pe evenimente, codul nu urmareste o cale predeterminata, ci executa diverse secvente de cod ca raspuns la evenimente. Evenimentele pot fi declansate de actiunile utilizatorului, de mesaje ale sistemului sau ale altor aplicatii sau ale aplicatiei insesi. Secventa in care apar aceste evenimente determina secventa in care se executa codul, ceea ce inseamna ca de fiecare data cand programul se executa, el va urma o cale diferita prin codul programului.

Deoarece nimeni nu poate prevedea secventa de aparitie a evenimentelor, codul pe care il scrie programatorul trebuie sa faca anumite presupuneri cu privire la situatia curenta atunci cand se executa, de exemplu: dezactivam butonul de comanda care declanseaza o procedura ce prelucreaza valorea continuta intr-un anumit camp pana cand acel camp va contine o valoare.

Procesul de dezvoltare a aplicatiilor traditionale poate fi impartita in trei etape distincte: scrierea, compilarea si testarea codului. Spre deosebire de limbajele traditionale, Visual Basic abordeaza interactiv dezvoltarea codului , fara a face o distinctie neta intre cele trei etape.

Formularele si controalele din VB sunt obiecte care isi etaleaza propriile metode, proprietati si evenimente. Proprietatile pot fi asimilate ca fiind atribute ale obiectelor, metodele ca fiind actiunile asociate acestora, iar evenimentele ca fiind raspunsuri la aceste actiuni.

Cap 2 Etapele ciclului de dezvoltare a proiectului

Ciclul de dezvoltare al programului cuprinde mai multe faze:

Initiere proiect

Intrare: Oferta – Cerere din partea conducerii scolii “Sfanta Vineri” Ploiesti

Iesire: Plan de dezvoltare proiect

Scenarii de utilizare: am stabilit cerintele generale ale proiectului –realizand un plan de dezvoltare: gestionarea unei baze de date cu elevii scolii

Tipuri de utilizatori: personalul secretariatului scolii si directorii

Specificatii

Intrare: Plan de dezvoltare proiect, Oferta

Iesire: Documentatia de specificatie (a proiectantului si a clientului),

Plan de dezvoltare proiect actualizat

Plan de dezvoltare poriect, Oferta

Documentul de specificatie al proiectantului

-Obiective: realizarea unui soft pentru scoala

-Scop: obtinerea rapida de informatii cu privire la datele personale si la situatia scolara a elevilor, stocarea informatiilor pe diferse suporturi de memorie, arhivarea in conditii de siguranta a datelor, accesul rapid la datele necesare intocmirii actelor de absolvire gimnaziu, admitere liceu.

-Documente importante: cerere tipizata de inscriere la liceu, adeverinta pentru inscriere, certificat de capacitate, toate acestea pentru a scoate in evidenta datele de output ale proiectului

-Legatura cu produsele viitoare: asigurarea compatibilitatii cu produsele sau sistemele ulterioare – se are in vederea completarea acestui produs cu output-ul: date necesare intocmirii documentelor pentru absolvetii de gimnaziu si pentru andmiterea in liceu

-Data prevazuta pentru finalizare (livrare): septembrie 2003

-Consideratii privind asistenta tehnica: se va asigura training utilizare soft

-Specificatii hardware: instalarea se va realiza pe un sistem cu procesor Pentium III, min 32 Mb RAM, min 50 Mb disponibili pe disc pentru soft si min 10 Mb pentru baza de date / an scolar baza de date pe fiecare an scolar, sub forma unor fisiere .mdb vor fi stocate pe copii de siguranta pe un mediu de stocare ales de conducerea scolii, nu trebuie mentinut pe hard

-Specificatii software: preinstalat Windows de la ver 95 mai sus si, din pachetul Microsoft Office de la ver 95 in sus, Microsoft Access

-Criterii de validare utilizate ca baza pt dezvoltarea planului de teste de validare

-Restrictii de utilizare: copiii secretarei sau ai directorului, in afara orelor de progam

-Finalitate proiect: distributie kit de instalare pe CD veriunea de test apoi versiunea 1

Documentul de specificatie al clientului:

-Functionalitatea aplicatiei: ce trebuie sa faca aplicatia – sa ofere datele solicitate sub forma vizualizare ecran, editare date si rapoarte listabile

-Tipuri de date:descrierea tuturor tipurilor de date din aplcatie care sunt accesibile clientului, prin utilizarea formularelor, ecranelor, rapoartelor sau altor elemente imprimate:

-Mediul de dezvoltare al aplicatiei: Visual Basic 6, cu baza de date realizata in Microsoft Access

-Hardware: cerintele hardware – Pentium III, hard 20 Gb, 64 Mb RAM

-Software:-sistem de operare: Windows 98, baza de date: Microsoft Access

-Restrictii de securitate, integritate si securitate de acces: parolare periodica a accesului in sistem, in retea, in program si realizarea bakup-uri periodice atat pe hard cat si pe alte medii de stocare

Plan de dezvoltare proiect actualizat in urma analizei specifiicatiilor porictant – client

Conceptie preliminara

Intrare: Document de specificatii, Plan de dezvoltare proiect, Oferta

Iesire: Document de conceptie preliminara-Interfata utilizator:

definit structura meniurilor, desig-ul ferestrelor, al rapoartelor, si alte interfete

operator si / sau administrator

Plan de dezvoltare proiect actualizat,

La inceput s-a dorit crearea unui fisier de baze de date pentru fiecare an de studiu si accesarea lui dintr-o lista care ar fi trebuit actualizata periodic (eventual creat un fisier care sa contina aceasta informatie cu posibilitatea de actualizare). Pornind de la data sistemului, controlabila la deschiderea aplicatiei, programul trebuia sa determine daca utilizatorul doreste sa acceseze datele pentru anul scolar curent sau pentru un alt an de studiu ce trebuia raportat la anul curent

Am prezentat utilizatorului final, sub forma grafica, proiectarea interfetei fiecarei forme in parte

Interfata 1- ver 1

a)Selectarea dintr-un combo box a numelui elevului afisarea clasei din care face parte si, pe aceeasi forma, afisarea pe tab-uri diferite a datelor personale, situatiei scolare, datelor carnetului de alocatie, date ale clasei din care face parte elevul selectat

b) Selectarea dintr-un combo box a numelui elevului afisarea clasei din care face parte si, pe aceeasi forma, afisarea in frame-uri diferite a celorlalte date

Conceptie detaliata

Intrare: Document de conceptie preliminara, Plan de dezvoltare proiect

Iesire: Documentatie conceptie detaliata

Planul de dezvoltare proiect actualizat

Plan de teste unitare si de integrare

Interfata ver – 2

a) prima versiune pentru definirea structurii meniurilor

b) prima versiuni pentru forma “vizualizare/ editare elevi”

c) prima versiune pentru forma “vizualizare / editare elevi”

d) prima versiune pentru forma “vizualizare/ editare cln care face parte si, pe aceeasi forma, afisarea pe tab-uri diferite a datelor personale, situatiei scolare, datelor carnetului de alocatie, date ale clasei din care face parte elevul selectat

b) Selectarea dintr-un combo box a numelui elevului afisarea clasei din care face parte si, pe aceeasi forma, afisarea in frame-uri diferite a celorlalte date

Conceptie detaliata

Intrare: Document de conceptie preliminara, Plan de dezvoltare proiect

Iesire: Documentatie conceptie detaliata

Planul de dezvoltare proiect actualizat

Plan de teste unitare si de integrare

Interfata ver – 2

a) prima versiune pentru definirea structurii meniurilor

b) prima versiuni pentru forma “vizualizare/ editare elevi”

c) prima versiune pentru forma “vizualizare / editare elevi”

d) prima versiune pentru forma “vizualizare/ editare clasa”

Codificare

Intrare: Documentatie conceptie detaliata, Planul de dezvoltare proiect

Iesire: Cod, Planul de dezvoltare proiect actualizat,

Documentatie conceptie detaliata actualizat

Teste unitare

Intrare: Cod, Date de test, Lista de teste

Iesiri: Cod testat unitar,

Documentatie conceptie detaliata actualizata

Fisa de test (unitare, integrare, validare)

Fisa de test unitara:

Scopul testului: test unitar pentru determinarea actiunilor declansate la selectarea

anului de lucru

Configuratia utilizata:fisiere an_1999.mdb, an_2000.mdb, an_2001.mbd

Procedura: actiunile propriu-zise care declanseaza testul: selectarea anului pentru care se doreste accesarea programului din combobox-ul de pe frmAlegAn

Rezultatele asteptate: incarcarea formei corespunzatoare anului selectat

Raportare si rezolvarea anomaliilor: problema este usor de rezolvat pentru un nr redus de ani de studiu dar devine complicata pentru un nr mai mare (peste 4)

Am rezolvat anomalia optand pentru o alta abordare a acestei probleme, si anume: aplicatia sa lucreze numai cu datele pentru 2 ani de studiu: curent si precedent, datele pentru ceilalti ani de studiu, arhivati pe diferite medii de stocare, urmand a fi accesati prin redenumirea fisierelor .mdb care le contin. Acesta este una din o soluti. O alta solutie ar fi aceea ca aplicatia sa lucreze cu 5 ani consecutivi, solutie care ar ajuta la obtnerea datelor de la sfarsit de gimnaziu pentru fiecare generatie in parte.

Scopul testului: test unitar pentru determinarea actiunilor declansate la selectarea

unei clase de la ciclul primar si apoi a unei clase de la ciclul gimnazial

Configuratia utilizata: tabela clase cu 2 campuri; cls_id (declarat primary key) si cls_nr (ex:1A, 5A)

Procedura: actiunile propriu-zise care declanseaza testul: selectarea clasei pentru care se doreste vizualizarea datelor in forma Prezent.UC_prezent_Viz_Clase

Rezultatele asteptate: afisarea notelor sub forma de calificative la ciclul primar si sub forma de note la gimnaziu

Raportare si rezolvarea anomaliilor: am ales solutia identificarii tipului de ciclu de invatamant dupa id-ul clasei, considerand ca pentru o cifra maxima de scoalarizare intr-o scoala nu pot exista mai mult de 8 clase pe an de studiu. Astfel pentru cls_id <=33 se lucreaza cu date ale claselor de la ciclul primar, deci cu calificative in loc de note, iar pentru cls_id > 33 datele apartin claselor de gimnaziu

Teste de integrare

a) Intrare: modulele testate: cele 5 user controale de pe forma Prezent-

UC_Prezent_Viz_Elevi.ctl

UC_Prezent_Viz_clasa.ctl

UC_Prezent_Viz_Prof.ctl

UC_Prezent_Edit_Elevi.ctl

UC_Prezent_Edit_Prof.ctl

incarcarea lor in conformitate cu slectia facuta de utilizator

date de test: valori de test din baza de date tabelele: elev_dp, elev_sitsc, prof

Iesire: Sistem integrat, Fise de anomalie ridicate, Raport de testare

b) Intrare modulele testate: cele 3 user controale de pe forma Trecut:

UC_Trecut_Viz_Clasa.ctl

UC_Trecut_Viz_Elevi.ctl

UC_Trecut_Viz_Prof .ctl

Iesire: Sistem integrat,

Fise de anomalie ridicate, Raport de testare, Fisa de anomalie, Identificare,

Descriere: Context:cofigutatie hard, soft, circumstante, Descriere, Documente

asociate

Teste de validare

Intrare: sistem integrat, plan de teste de validare, date de test, planul de dezvoltare

Proiect;

Datele intoduse in forma Prezent, la editare elevi sau clase trebuie sa prevata

o posibila eroare umana la introducerea datelor; astfel cand utilizatorul

introduce nr de absente pe semestrul I apoi pe cele de pe semestrul II, in mod

automat este afisat in caseta de text respectiva, suma celor 2 valori. Si mai

important este de prevenit posibile erori umane la calcularea mediilor, variabilele

care stocheaza aceste informatii au fost declarate de tip double iar afisarea lor se

face pana la a treia zecimala

Iesire: Sistem testat,

Fise de anomalie ridicate: nu au existat

Raport de testare: problemele care ar fi putut intervenii au fost prevenite si rezolvate

Plan de dezvoltare proiect actualizat

Teste de receptie

Intrare: sistemul validat, Planul de teste de receptie, planul de dezvoltare proiect

Iesire: Proces verbal de receptie semnat, Planul de dezvoltare proiect

Mentenanta (evolutivitate)

Intrare: Sistem acceptat, fise de anomalie

Iesire: fise de anomalie ridicate

Implementarea unor noi cerinte sau modificarea unor functionalitati ale produsului, eliminarea bug-urilor, portari, diverse

Cap 3 Proiectarea aplicatiei

3.1 Codificarea datelor

3.1.1 Proiectarea bazei de date

Aplicatia permite gestionarea unei baze de date ce cuprinde informatii referitoare la elevii unei scoli

Organizarea datelor in vederea prelucrarii este la fel de importanta ca si realizarea programului. Aceasta permite: memorarea datelor pe suportul extern prin sistemul de gestiune a fisierelor, gestiunea datelor si a legaturilor dintre ele in vederea regasirii rapide prin inermediul sistemului de acces, introducerea si extragerea datelor din / spre exterior in forma ceruta de utilizator.

Aplicatia ruleaza cu 3 fisiere de baze de date localizate intr-un folder numit Baza:

Baza-an-curent.mdb, Baza-an-precedent.mdb, Baza-Sterg.mdb

Baza-an-curent si Baza-an-precedent cuprind cate 4 tabele:

Elev_dp cae stocheaza informatii cu privire la datele personale ale elevilor

Elev_sitsc care stocheaza informatii cu privire la situatia scolara a elevilor

Clase care stocheaza nr si tipul claselor

Prof_sc care stocheaza date cu privire la profesorii scolii

Tabela elev_dp (date personale)

Tabela elev_sitsc (situatia scolara)

Tabela prof_sc (profesori scolii)

Tabela clasa

Baza-Sterg cuprinde exact aceleasi 4 tabele dar ele se populeaza cu date numai pentru acele inregistrari pentru care in Baza-an-curent, in tabela elev_dp, campul edp_sterg =’sterg’

3.1.2 Schema relationala si indecsii:

Conectarea la baza de date in VB se realizeaza foarte comod folosind controale de tipul ADO, DAO sau din cod prin declararea unor variabile care definesc ConnectionString-ul, RecordsSource, RecordSet s.a

Am folosit ambele metode in acest proiect

Programarea orientata pe evenimente

3.2.1 Submodule

1) Login.frm – forma de logare, permite securizarea accesului la datele programului

2) AlegAnSc.frm – forma in care utilizatorul poate sa verifice data si ora sistemului si

trebuie sa aleaga daca doreste sa lucreze cu date ale anului scolar in curs sau cu date

ale anului scolar precedent

actiuni directe: actiuni indirecte

Combo1_Click() Form_Load

selectare an scolar With Combo1

an=Combo1.Text .AddItem(“an precedent”)

MDIForm1.Show .AddItem(“an curent”)

End with

Dim d As Date

d = Now

Text1.Text = Format(d, "dd/mmm/yyyy")

Text2.Text = Format(d, "Long Time")

In Module1.bas am declarat variabila “an” astfel:

Public an As String / pastreaza valoarea selectiei utilizatorului din ComboBox-ul din forma AlegAnSc.frm in variabila “an” declarata cu “Public” pt a fi vizibila din celelalte forme ale proiectului

3) MDIForm1.frm Multiple Document Interface permite crearea aplicatiilor care pastreaza mai multe formulare in cadrul unui singur formular container, permite utilizatorului afisarea mai multor documente in acelasi timp, fiecare document fiind afisat in propria fereastra. “Ferestrele copil” sunt continute de o “fereastra parinte” care ofera spatiu de lucru pentru toate ferestrele copil ale aplicatiei. In functie de valoarea variabilei “an” in “fereastra parinte” am amplasat bara de meniu corespunzatoare si anume:

Pentru an precedent Vizualizare, An scolar, Iesire

Pentru an curent Editare, Vizualizare, An scolar, Iesire

Apoi, in functie de optiunile facute de utilizator din meniu, se incarca “fereastra copil”

corespunzatoare

Meniu Editare vizibil doar pentru “an curent” seletat

Editare Elevi Prezent.frm UC_Prezent_Edit_Elevi.ctl

Editare Profesori Prezent.frm UC_Prezent_Edit_Prof.ctl

Meniul Vizualizare vizibil si pentru an curent si pentru an precedent

Vizualizare Elevi Prezent.frm UC_Prezent_Viz_Elevi.ctl

Trecut.frm UC_Trecut_Viz_Elevi.ctl

Vizualizare Clase Prezent.frm UC_Prezent_Viz_clasa.ctl

Trecut.frm UC_Trecut_Viz_Clasa.ctl

Vizualizare Profesori Prezent.frm UC_Prezent_Viz_Prof.ctl

Trecut.frm UC_Trecut_Viz_Prof.ctl

Meniul An Scolar, vizibil si pentru an curent si pentru an precedent, permite selectarea

unui alt an scolar

Meniul Iesire, vizibil si pentru an curent si pentru an precedent, permite iesirea din

program

actiuni directe actiuni indirecte

end_user MDIForm_Load()

if alege “an precedent”

meniul “Editare” se ascunde

meniul “Vizualizaer” devine vizibil

elseIf alege "an curent" Then

meniul “Editare” devine vizibil

meniul “Vizualizaer” devine vizibil

end If

mnu_edit_elevi_Click()

ascunde forma “Trecut” si

vizualizeaza forme “Prezent”

incarca pe ea UC_Prezent_Edit_Elevi

mnu_ansc_Click()

Unload Me

AlegAnSc.Show

mnu_edit_prof_Click()

ascunde forma “Trecut” si

vizualizeaza forme “Prezent”

incarca pe ea UC_Prezent_Edit_Prof

mnu_viz_cls_Click()

if "an precedent" Then

ascunde forma “Prezent” si

vizualizeaza forme “Trecut”

incarca pe ea UC_ Trecut_Viz_Clasa

elseIf "an curent" Then

ascunde forma “Trecut”

vizualizeaza forma”Prezent”

incarca pe ea UC_Prezent_Viz_clasa

end If

mnu_viz_elevi_Click()

If "an precedent" Then

ascunde forma “Prezent” si

vizualizeaza forme “Trecut”

incarca pe ea UC_ Trecut_Viz_Elevi

elseIf an = "an curent" Then

ascunde forma “Trecut” si

vizualizeaza forme “Prezent”

incarca pe ea UC_ Prezent_Viz_Elevi

end If

mnu_viz_prof_Click()

If "an precedent" Then

ascunde forma “Prezent” si

vizualizeaza forme “Trecut”

incarca pe ea UC_ Trecut_Viz_Prof

elseIf an = "an curent" Then

ascunde forma “Trecut” si

vizualizeaza forme “Prezent”

incarca pe ea UC_ Prezent_Viz_Elevi

end If

mnu_iesire_Click() End

4) Prezent.frm cuprinde 5 obiecte de tip user control

UC_Prezent_Viz_Elevi.ctl

UC_Prezent_Viz_clasa.ctl

UC_Prezent_Viz_Prof.ctl

UC_Prezent_Edit_Elevi.ctl

UC_Prezent_Edit_Prof.ctl

UC_Prezent_Viz_Elevi

Cuprinde: urmatoarele controale:

dbcElev un DataCombo cu urmatoarele proprietati:

RowSourse un Adodc numit: adoElev

ListFields: edp_nume_ip (rezultat din concatenarea a 3 campuri: edp_nume & edp_it & edp_pren a tabelei elevi_dp (elevi date personale)

BoundColumn: edp_id

Style: dbcDropDownList (permite selectarea dupa primul caracter tastat)

AdoElev cu urmatoarele proprietati:

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security

Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\

BAZA-an-curent.mdb

CommandType: 1-adCmdText

RecordSource: SELECT * , edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip FROM elev_dp , elev_sitsc, clasa WHERE edp_id=ess_id AND

edp_nr_elev= ess_edp_nr_elev AND edp_cls_nr=cls_nr

ORDER BY edp_nume

Data1 cu urmatoarele proprietati:

DataBaseName: C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-curent.mdb

RecordSource: elev_dp

Data2 cu urmatoarele proprietati:

DataBaseName: C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-curent.mdb

RecordSource: elev_sitsc

SSTab1 cu prop: Caption: Date personale si cuprinde 3 frame-uri

Date personale fiecare cuprinde TextFields-uri cu informatii referitoare

Parinti la tema fiecerui frame si isi extrag datele cu ajutorul

Alocatia unui control de date: Data1 avand

DataBase Name: C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-curent.mdb

RecordSource: elev_dp

SSTab1 cu prop: Caption: Situatia scolara si cuprinde TextFields-uri cu informatii privind situatia scolara a elevului selectat, informatii extrase cu ajutorul unui control de date Data2 cu

DataBase Name: C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-curent.mdb si RecordSource: elev_sitsc

Daca utilizatorul alege din meniu “Vizualizare elevi” atunci va trebui sa aleaga dintr-un combo box numele elevului pentru care doreste vizualizarea datelor si obtine tab-ul “Date personale” si “Situatia scolara” cu datele corespunzatoare elevului selectat

actiuni directe actiuni indirecte

dbcElev_Change() prin adoElev sse identifica edp_id –ul pentru

este selectat numele elevului elevul selectat

se incarca toate txtFields.Text daca un camp din tabele nu are completata

cu valorile regasite in tabele valoarea atunci text box-ul corespunzator este

elev_dp si elev_sitsc incarcat cu zero respectiv sirul nul in functie de

cmdInchide_Click() tipul de data al campului

UserControl_Initialize()

ascunde UC_Prezent_Viz_Elevi1

-se afiseaza primul tab de pe user control

-se declara niste variabile in care se mem valorile

pt absente si note pentru a calcula si afisa automat

nr de absente nemotivate(t-m), motivate/an, total/an

-se initializeaza cu “” txtFields(i) de pe user control

Data1_Error

gestionarea mesajelor de eroare, pot da control urmatoarei linii de cod (datele din elev_dp)

analog pt Data2 (datele din tabela elev_sitsc)

Data1_Reposition()

va afisa pozitia curenta in tabela elev_dp

Data2_Reposition()

va afisa pozitia curenta in tabela elev_sitsc

UC_Prezent_Viz_clasa cuprinde:

dbcVizClasa un DataCombo cu urmatoarele proprietati:

RowSource: adoClasa

ListField: cls_nr

BoundColumn: cls_id

Frame1: Nr de elevi total / fete/ baieti

Frame2: Promovati cu medii intre 5-6.99, 7-8.99, 9-10 pe sem I , sem II, pe an

Frame3: Note la purtare cuprinse intre 10-9, 8-7, sub 7 pe sem I, sem II, pe an

Frame4: Nr de absente: total, motivate, nemotivate pe sem I, sem II, pe an

DataGrid1: Caption: Elevi clasei

DataSource: adoVizClasa cu

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;

Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1

\BAZA\BAZA-an-curent.mdb si

RecordSource: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS

edp_numeip FROM clasa, elev_dp, elev_sitsc WHERE

edp_id = ess_id AND edp_cls_nr =cls_nr

Properties: Column 0 cu Caption: Nr. crt., DataField: edp_nr_elev

Column 1 cu Caption: Numele si prenumele, DataField edp_nume

DataGrid2: Caption: Elevii cu abateri disciplinare:

DataSource: adoAbateri cu

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;

Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-

1\BAZA\BAZA-an-curent.mdb si

RecordSource: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS

edp_numeip FROM clasa, elev_dp, elev_sitsc WHERE edp_id =

ess_id AND edp_cls_nr =cls_nr AND ess_abateri<> ' '

Properties: Column 0 cu Caption: Nume si prenume, DataField:

edp_numeip

Column 1 cu Caption: Abateri, DataField ess_abateri

DataGrid3: Caption: Profesorii clasei:

DataSource: adoProf cu

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;

Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1

\BAZA\BAZA-an-curent.mdb si

RecordSource: SELECT * FROM clasa, prof ORDER BY p_cls

Properties: Column 0 cu Caption: Numele si prenumele,

DataField: p_nume

Column 1 cu Caption: Specialitatea, DataField p_specialitatea

DataGrid4: Caption: Elevi corigenti:

DataSource: adoCorig cu

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security

Info=False;Data Source=C:\Sanda\SCOALA-ver-1

\BAZA\BAZA-an-curent.mdb si

RecordSource: SELECT *, edp_nr_elev, edp_nume & ' ' & edp_it & ' ' &

edp_pren AS edp_numeip, ess_sem1corig, ess_sem2corig,

ess_iuncorig FROM clasa, elev_dp, elev_sitsc

WHERE edp_id = ess_id AND edp_cls_nr =cls_nr AND

(ess_sem1corig<>' ' OR ess_sem2corig<>' ' OR ess_iuncorig<>' ')

Properties: Column 0 cu Caption: Numele si prenumele,

DataField: edp_numeip

Column 1 cu Caption: sem I –corigent la, DataField ess_sem1corig

Column 2 cu Caption: sem II –corigent la, DataField: ess_sem2corig

Column 3 cu Caption: iun –corigent la,

DataField: ess_iuncorig

cmdPrint1 (un CommandButton) cu Caption: Tabel Nominal care deschide un

DataReport cu Caption: DPR_prezent_Elevi si

DataSource: DataEnvironment2 avand

Connection: Provider=Microsoft.Jet.OLEDB.3.51; Persist Security

Info=False;DataSource= C:\Sanda \SCOALA-ver-1\

BAZA\BAZA-an-curent.mdb

CommandText: SELECT edp_nr_elev, edp_nume & ' ' & edp_it & '

' & edp_pren AS edp_numeip, edp_cls_nr FROM elev_dp

cmdPrint2 cu Caption: Tabel Nominal care deschide un

DataReport cu Caption: DRP_Prezent_edp

DataSource: DataEnvironment2 avand

Connection: Provider=Microsoft.Jet.OLEDB.3.51; Persist Security

Info=False;DataSource= C:\Sanda \SCOALA-ver-1\

BAZA\BAZA-an-curent.mdb

CommandText: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS

edp_numeip FROM elev_dp ORDER BY edp_nume

adoVizClasa

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security

Info=False;Data Source=C:\Sanda\SCOALA-ver-1\

BAZA\BAZA-an-curent.mdb

RecordSource: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip FROM clasa, elev_dp, elev_sitsc WHERE edp_id = ess_id AND edp_cls_nr =cls_nr

adoClasa

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\

BAZA\BAZA-an- curent.mdb

RecordSource: SELECT * FROM clasa ORDER BY cls_id

adoProf

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an- curent.mdb

RecordSource: SELECT * FROM clasa, prof ORDER BY p_cls

adoAbateri

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an- curent.mdb

RecordSource: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip FROM clasa, elev_dp, elev_sitsc WHERE edp_id = ess_id AND edp_cls_nr =cls_nr AND ess_abateri<> ' '

adoCorig

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an- curent.mdb

RecordSource: SELECT *, edp_nr_elev, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip, ess_sem1corig, ess_sem2corig, ess_iuncorig FROM clasa, elev_dp, elev_sitsc WHERE edp_id = ess_id AND edp_cls_nr =cls_nr AND

(ess_sem1corig<>' ' OR ess_sem2corig<>' ' OR ess_iuncorig<>' ')

Daca utilizatorul selecteaza din meniu “Vizualizare clase” atunci va trebui sa aleaga dintr-un combo box clasa pentru care doreste vizualizarea datelor. Daca este clasa de ciclu primar va avea afisat invatatoarea / invatatorul clasei, daca este clasa de gimnaziu va afisa si colectivul de profesori care predau la clasa respectiva

actiuni directe actiuni indirecte

dbcVizClasa_Change() prin adoClasa se identifica cls_id –ul pentru clasa este selectata clasa selectata si in functie de aceasta alegere se

se incarca toate controalele schimba, prin interogari SQL campurile selectate cu valorile aferente din tabelele din tabelele clasa, elev_dp si

elev_dp si elev_sitsc DataEnvironment2, DataEnvironment6

se incarca cu valorile corespunzatoare adoVizClasa

DataGrid1 (elevii clasei) adoProf

DataGrid2 (abateri disciplinare) adoAbateri

DataGrid3 (prof. clasei) adoCorig

DataGrid4 (corigentii) atata timp cat EOF=false

-memoreaza in variabile si calculeaza valoript

cmdPrint1_Click() campurile:edp_sex,ess_abs…, ess_dirig;

DRP_prezent_elevi.Show daca intalneste valori nule atunci retine

cmdPrint2_Click() valoarea zore respectiv sirul nul

DRP_Prezent_edp.Show -daca cls_id >=33 (clasa gimnaziu) atunci

cmdInchide_Click() -va afisa campul diriginte

ascunde UC_Prezent_Viz_clasa -va afisa in DataGrid3 profesorii clasei

-va afisa notele declarate double

-altfel

-nu va afisa DataGrid3 (nu sunt profesori)

-notele sun t calificative, deci de tip string

-endif

-se trece la urmatoarea inregistrare

se declara variabile care memoreaza valorile

pentru absente, si note

se calculeaza abs totale, medii si se completeaza

in mod automat campurile care retin val calculate

UserControl_Initialize()

initializeaza toate controalele de tip DataGrid de

pe UC

UC_Prezent_Viz_Prof cuprinde:

MSHFlexGrid1 cu urmatoarele proprietati:

DataMember: Command1_Grouping

DataSource: DataEnvironment3 cu urmatoarele proprietati0

Connection: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security

Info=False;Data Source=C:\Sanda\SCOALA-ver-1\

BAZA\BAZA-an-curent.mdb

CommandText: SELECT * FROM prof_sc ORDER BY p_specialitatea

Command1_Grouping: p_specialitatea

Daca utilizatorul a ales din meniu “Vizualizare profesori” atunci va avea afisat in forma expandata sau nu acces la informatii legate de incadrarea fiecarui profesor din scoala, clasele la care este diriginte, nr de ore la fiecare clasa

actiuni directe actiuni indirecte

mnu_viz_prof_Click() UserControl_Initialize() cmdInchide_Click() MSHFlexGrid1 –se initializeaza capul de tabel

ascunde UC_Prezent_Viz_Prof

UC_Prezent_Edit_Elevi care cuprinde urmatoarele controale:

dbcClasa un control Data Combo cu urmatoarele proprietati:

RowSourse un Adodc numit: adoClasa

ListFields: cls_nr

BoundColumn: cls_id

Style: dbcDropDownList (permite selectarea dupa primul caracter tastat)

adoClasa un control ADO cu urmatoarele proprietati:

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;DataSource=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-curent.mdb

CommandType: 1-adCmdText

RecordSource: SELECT * FROM clasa ORDER BY cls_id

adoEditElev un control ADO cu urmatoarele proprietati:

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security

Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-curent.mdb

CommandType: 1-adCmdText

RecordSource: SELECT * FROM elev_dp, elev_sitsc, clasa WHERE edp_id=ess_id AND edp_cls_nr=ess_cls_nr AND edp_nr_elev=ess_edp_nr_elev And edp_cls_nr=cls_nr ORDER BY edp_id

SSTab1 cu prop: Caption: Date personale si cuprinde 3 frame-uri

Date personale fiecare cuprinde TextFields-uri cu informatii referitoare

Parinti la tema fiecerui frame si isi extrag datele cu ajutorul

Alocatia unui control de date: AdoEditElev avand

DataBase Name: C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-curent.mdb

RecordSource: elev_dp

SSTab1 cu prop: Caption: Situatia scolara si cuprinde TextFields-uri cu informatii privind situatia scolara a elevului selectat, informatii extrase cu ajutorul unui control de date

adoEditElev cu DataBase Name: C:\Sanda\SCOALA-ver-1\BAZA\

BAZA-an-curent.mdb si

RecordSource: elev_sitsc

cmdAdauga

cmdSterge

cmdSalveaza

cmdInchide

UC_Prezent_Edit_Prof care cuprinde: urmatoarele controale:

AdoProf cu urmatoarele proprietati:

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-curent.mdb

CommandType: 1-adCmdText

RecordSource: SELECT * FROM prof_sc

cmdAdd

cmdDelete

cmdRefresh

cmdUpdate

cmdClose

5) Trecut.frm cuprinde:

UC_Trecut_Viz_Elevi

UC_Trecut_Viz_Clasa

UC_Trecut_Viz_Prof

UC_Trecut_Viz_Elevi.ctl care cuprinde:

dbcElev un DataCombo cu urmatoarele proprietati:

RowSourse un Adodc numit: adoElev

ListFields: edp_nume_ip (rezultat din concatenarea a 3 campuri: edp_nume & edp_it & edp_pren a tabelei elevi_dp (elevi date personale)

BoundColumn: edp_id

Style: dbcDropDownList (permite selectarea dupa primul caracter tastat)

AdoElev cu urmatoarele proprietati:

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

CommandType: 1-adCmdText

RecordSource: SELECT * , edp_nume & ' ' & edp_it & ' ' & edp_pren AS

edp_numeip FROM elev_dp , elev_sitsc, clasa WHERE edp_id=ess_id AND

edp_nr_elev= ess_edp_nr_elev AND edp_cls_nr=cls_nr ORDER BY

edp_nume

Data1 cu urmatoarele proprietati:

DataBaseName: C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

RecordSource: elev_dp

Data2 cu urmatoarele proprietati:

DataBaseName: C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

RecordSource: elev_sitsc

SSTab1 cu prop: Caption: Date personale si cuprinde 3 frame-uri

Date personale fiecare cuprinde TextFields-uri cu informatii referitoare

Parinti la tema fiecerui frame si isi extrag datele cu ajutorul

Alocatia unui control de date: Data1 avand

DataBase Name: C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

RecordSource: elev_dp

SSTab1 cu prop: Caption: Situatia scolara si cuprinde TextFields-uri cu informatii privind situatia scolara a elevului selectat, informatii extrase cu ajutorul unui control de date Data2 cu DataBase Name: C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb si

RecordSource: elev_sitsc

Daca utilizatorul alege din meniu “Vizualizare elevi” atunci va trebui sa aleaga dintr-un combo box numele elevului pentru care doreste vizualizarea datelor si obtine tab-ul “Date personale” si “Situatia scolara” cu datele corespunzatoare elevului selectat

UC_Trecut_Viz_Clasa cuprinde

DbcVizClasa un Data Combo cu urmatoarele proprietati:

RowSource: adoClasa

ListField: cls_nr

BoundColumn: cls_id

Frame1: Nr de elevi total / fete/ baieti

Frame2: Promovati cu medii intre 5-6.99, 7-8.99, 9-10 pe sem I , sem II, pe an

Frame3: Note la purtare cuprinse intre 10-9, 8-7, sub 7 pe sem I, sem II, pe an

Frame4: Nr de absente: total, motivate, nemotivate pe sem I, sem II, pe an

DataGrid1: Caption: Elevi clasei

DataSource: adoVizClasa cu

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1

\BAZA\BAZA-an-precedent.mdb si

RecordSource: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip FROM clasa, elev_dp, elev_sitsc WHERE

edp_id = ess_id AND edp_cls_nr =cls_nr

Properties: Column 0 cu Caption: Nr. crt., DataField: edp_nr_elev

Column 1 cu Caption: Numele si prenumele, DataField edp_nume

DataGrid2: Caption: Elevii cu abateri disciplinare:

DataSource: adoAbateri cu

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1 \BAZA\BAZA-an-precedent.mdb si

RecordSource: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip FROM clasa, elev_dp, elev_sitsc

WHERE edp_id = ess_id AND edp_cls_nr =cls_nr AND

ess_abateri<> ' '

Properties: Column 0 cu Caption: Numele si prenumele,

DataField: edp_numeip

Column 1 cu Caption: Abateri, DataField ess_abateri

DataGrid3: Caption: Profesorii clasei:

DataSource: adoProf cu

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1

\BAZA\BAZA-an-precedent.mdb si

RecordSource: SELECT * FROM clasa, prof ORDER BY p_cls

Properties: Column 0 cu Caption: Numele si prenumele,

DataField: p_nume

Column 1 cu Caption: Specialitatea,

DataField p_specialitatea

DataGrid4: Caption: Elevi corigenti:

DataSource: adoCorig cu

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1

\BAZA\BAZA-an-precedent.mdb si

RecordSource: SELECT *, edp_nr_elev, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip, ess_sem1corig,

ess_sem2corig, ess_iuncorig FROM clasa, elev_dp, elev_sitsc

WHERE edp_id = ess_id AND edp_cls_nr =cls_nr AND

(ess_sem1corig<>' ' OR ess_sem2corig<>' ' OR ess_iuncorig<>' ')

Properties: Column 0 cu Caption: Numele si prenumele,

DataField: edp_numeip

Column 1 cu Caption: sem I –corigent la,

DataField ess_sem1corig

Column 2 cu Caption: sem II –corigent la,

DataField: ess_sem2corig

Column 3 cu Caption: iun –corigent la,

DataField: ess_iuncorig

cmdPrint1 (un CommandButton) cu Caption: Tabel Nominal care deschide un

DataReport cu Caption: DPR_prezent_Elevi si

DataSource: DataEnvironment2 avand

Connection: Provider=Microsoft.Jet.OLEDB.3.51; Persist Security

Info=False;DataSource= C:\Sanda \SCOALA-ver-1

\BAZA\BAZA-an-precedent.mdb

CommandText: SELECT edp_nr_elev, edp_nume & ' ' & edp_it & '

' & edp_pren AS edp_numeip, edp_cls_nr FROM elev_dp

cmdPrint2 cu Caption: Tabel Nominal care deschide un

DataReport cu Caption: DRP_Prezent_edp

DataSource: DataEnvironment2 avand

Connection: Provider=Microsoft.Jet.OLEDB.3.51; Persist Security Info=False;

DataSource=c:\Sanda \SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

ommandText: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS

edp_numeip FROM elev_dp ORDER BY edp_nume

adoVizClasa

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

RecordSource: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip FROM clasa, elev_dp, elev_sitsc WHERE edp_id = ess_id AND edp_cls_nr =cls_nr

adoClasa

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

RecordSource: SELECT * FROM clasa ORDER BY cls_id

adoProf

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

RecordSource: SELECT * FROM clasa, prof ORDER BY p_cls

adoAbateri

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

RecordSource: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip FROM clasa, elev_dp, elev_sitsc WHERE edp_id = ess_id AND edp_cls_nr =cls_nr AND ess_abateri<> ' '

adoCorig

ConnectionString: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

RecordSource: SELECT *, edp_nr_elev, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip, ess_sem1corig, ess_sem2corig, ess_iuncorig FROM clasa, elev_dp, elev_sitsc WHERE edp_id = ess_id AND edp_cls_nr =cls_nr AND (ess_sem1corig<>' ' OR ess_sem2corig<>' ' OR ess_iuncorig<>' ')

Daca utilizatorul selecteaza din meniu “Vizualizare clase” atunci va trebui sa aleaga dintr-un combo box clasa pentru care doreste vizualizarea datelor. Daca este clasa de ciclu primar va avea afisat invatatoarea / invatatorul clasei, daca este clasa de gimnaziu va afisa si colectivul de profesori care predau la clasa respectiva

UC_Trecut_Viz_Prof cuprinde:

MSHFlexGrid1 cu urmatoarele proprietati:

DataMember: Command1_Grouping

DataSource: DataEnvironment3 cu urmatoarele proprietati0

Connection: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security

Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-

an-precedent.mdb

CommandText: SELECT * FROM prof_sc ORDER BY p_specialitatea

Command1_Grouping: p_specialitatea

Daca utilizatorul a ales din meniu “Vizualizare profesori” atunci va avea afisat in forma expandata sau nu acces la informatii legate de incadrarea fiecarui profesor din scoala, clasele la care este diriginte, nr de ore la fiecare clasa

6) Designers

DataEnvironment1

ConnectionSource: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

ComandText: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip FROM clasa, elev_dp, elev_sitsc WHERE edp_id = ess_edp_id AND edp_nr_elev = ess_edp_nr_elev AND edp_cls_nr = cls_nr ORDER BY edp_nume

DataEnvironment2

ConnectionSource: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-ancurent.mdb

ComandText: SELECT edp_nr_elev, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip, edp_cls_nr FROM elev_dp

DataEnvironment3

ConnectionSource: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-curent.mdb

Sumary CommandText: SELECT * FROM prof_sc ORDER BY p_specialitatea

Detail Command: SELECT * FROM prof_sc ORDER BY p_specialitatea

DataEnvironment4

ConnectionSource: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

Sumary CommandText: SELECT * FROM prof_sc ORDER BY p_specialitatea

Detail Command: SELECT * FROM prof_sc ORDER BY p_specialitatea

DataEnvironment5

ConnectionSource: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-precedent.mdb

CommandText: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip FROM elev_dp ORDER BY edp_nume

DataEnvironment6

ConnectionSource: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-an-curent.mdb

CommandText: SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip FROM elev_dp ORDER BY edp_nume

DataReport2_prof

DataSource: DataEnvironment2

DataMember: Command1_Grouping:

DRP_elevi

DataSource: DataEnvironment1

DataMember: Command1

DRP_Prezent_edp

DataSource: DataEnvironment6

DataMember: Command1

DRP_prezent_elevi

DataSource: DataEnvironment2

DataMember: Command1

DRP_Trecut_edp

DataSource: DataEnvironment5

DataMember: Command1

3.3 Conditii de respectat , probleme de rezolvat (rezolvate)

-la vizualizare toate controalele sunt Loked=True

-valorile de tip data sunt intr-un format care leimina posibilele confuzii intre nr ce reprezinta luna si cel ce reprezinta ziua Format (d,”zz/mmm/yyyy”) iar anul este reprezentat pe 4 caractere

-am prevazut posibilitatea ca la editare sa nu fie completate de prima data toate rubricile cu

IF IsNull(nume_camp.value)=true then nume.txtbox=”” sau 0 dupa cum valoarea campului era de tip sir de caractere sau numeric; aceeasi problema am rezolvat-o si la vizualizare

-Caption-ul la fiecare forma este astfel definit incat sa ajute utilizatorul sa se orienteze in program, sa stie in permanenta pe c eforma se afla si cum poate ajunge pe forma care il intereseaza la un moment dat

-stergerea unui record din bd presupune marcarea inregistrarii respective prin completarea campului edp_sterg, cu rol de “flag” cu valoarea “sters” apoi transcrierea inregistrarii astfel marcate intr-o tabela “sterse.mdb” care are rolul de a arhiva inregistrarile sterse.

-pentru a putea face deosebirea intre notele elevilor din clasele 5-8 de tip double si cele ale elevilor din clasele 1-4 de tip caracter am folosit id_cls pentru a face distintia si anume id_cls>33, respectiv <33

-necesitatea selectarii unui elev din scoala dupa nume, initiala tatalui si prenume a dus folosirea campului edp_numeip rezultat din concatenarea celor 3 campuri

-am prevazut realizarea automata, nu am lasat la latitudinea utilizatorului, a completarii unor campuri cum ar fi: media, nr total de absente (motivate, nemotivate….etc), sex (M sau F), sustinator legal (Da sau Nu),

corigent la “1, 2, 3, 4 sau mai multe materii” pentru a micsora nr greselilor accidentale subiective

-ideea stocarii datelor in fisiere de tip .mdb permite arhivarea si pastrarea lor in conditii de siguranta, duplicarea lor, pastrand in actualitate numai 2 tabele: cele cu datele anului de studiu curent si cele cu da

tele anului de studiu precedent; se poate realiza astfel usor o incarcarea a datelor pentru anul scolar urmator prin dublarea bd-ului curent apoi redenumirea ei urmata de actualizare

Cap. 4 Gestiunea controalelor utilizate in proiect

Principalele proprietati, evenimente, metode

Visual Basic este un mediu de programare vizual, orietat pe obiect, pentru dezvoltarea de inalta productivitate a aplicatiilor pentru Windows.

Forme

Pot fi utilizate un nr mare de proprietati care pot fi stabilite atat in perioada de elaborare a proiectului cat si in executie. Pot sa reactioneze la un nr destul de mare de evenimente

Sunt prevazute cu diverse metode ce pot fi apelate in timpul executiei

Proprietati principale:

Name, Caption, Visible, Enable, Appearance, BackColor, ForeColor, Picture, Width, Height, Left, Top

ScaleMode –permite selectarea unitatii de masura folosita pt stabilirea coordonatelor

ControlBox –stabileste daca la run time bara de titlu va apare sau nu

MaxButton, MinButton –stabileste daca ferestra va avea sau butoane de maximizare, minimizare

WindowState –se refera la starea vizuala a formei in executie ((normal, Maximize, Minimize)

MousePointer –indica tipul cursorului

MDIChild –indica dac forma este o fereastra MDI copil in interiorul unei ferestre MDI parinte

KeyPreview –se refera la modul de gestiune a evenimentelor referitoare la tastatura KeyDown, KeyPress, KeyUp; daca acesta proprietate este configurata cu valoarea true, atunci evenimentele referitoare la tastatura sunt gestionate de forma si nu de controalele asezate pe forma, chiar daca in momentul respectiv in focar se afla un control

Evenimentele principale

Initialize – cand o aplicatie creeaza o instanta a unei forme

Load –declansat in momentul in care forma este incarcata in memorie, este declansat dupa Initialize

Resize –este declansat in momentul in care forma este afisata prima data, precum si atunci cand se modifica dimensiunea ferestrei

Activate –declansat in momentul in care fereastra atasata formei devine fereastra activa a aplicatiei

GotFocus –declansat in momentul in care forma ajunge in focar

LostFocus – declansat in momentul in care o forma urmeaza sa piarda focarul

Deactivate – declansat in momentul in care fereastra aferenta formei nu mai este fereastra activa

Unload –declansat in momentul in care forma urmeaza sa fie indepartata de pe ecran

Terminate –declansat in momentul in care toate referintele la o instanta a unei forme sunt indepartate din memorie

Click –declansat in momentul in care utilizatorul efectueaza un clic pe o zona neacoperita a formei

DblClick – declansat in momentul in care utilizatorul efectueaza dublu clic

MouseDown, MouseMove, MouseUp –declansat la apasarea butonului de mouse, glisarea si la eliberarea butonului

DragDrop si DragOver –se refera la operatiile de tragere cu mouse-ul

KeyDown, KeyPress si KeyUp –se refera la actionarea unei taste in momentul in care un anumit control sau o forma este in focar

Metode principale sintaxa: NumeForma.NumeMetoda

Move –apelata atunci cand se doreste modificarea locatiei unei forme fata de ecran

Refresh –are ca efect redesenarea completa a unei forme

SetFocus –muta focarul intr-o forma specificata

Zorder –cand aplicatia foloseste mai multe forme care se suprapun total sau partial si se doreste plasarea unei forme specificate in fata sau in spatele celorlalte forme

Show si Hide –cand se lucreaza cu mai multe forme simultan

ComboBox (lista combinata)

Afiseaza o cutie de text care are atasata o lista si care poate contine mai multe elemente

Afiseaza continutul unui camp specificat din articolul actual al bazei de date, sub forma unei liste combinate.

Utilizatorul poate sa slecteze un element al listei; elementul selectat va fi introdus in cutia de text a controlului

In executie, pentru adaugarea sau stergerea elementelor unui control ComboBox se utilizeaza metodele AddItem, respectiv RemoveItem

Pentru a avea acces la elementele controlului se folosesc proprietatile ListIdex, ListCount si List

Particularitatile unui control ComboBox sunt urmatoarele:

-proprietatea Style –permite desemnarea stilului cutiei combinate; trebuie configurata in faza de proiectare:

vbComboDropDown –lista combinata derulanta –controlul contine o cutie de text si o lista derulanta utilizatorul poate selecta un element al listei sau poate introduce un text

dupa selectarea elementului lista se inchide automat –stil implicit

vbComboSimple –lista combinata simpla –controlul contine o lista nederulanta, afisata permanent, si o cutie de text; controlul se dimensioneaza implicit astfel incat nici un element al listei derulante nu este vizibil

vbComboDropDownList –lista derulanta –controlul contine o caseta de text dar utilizatorul nu poate introduce informatii in aceasta cutie; permite selectarea unui element al listei elementul selectat va fi afisat in cuti a de text

-proprietatea DataField –specifica campul din baza de date vizualizat

-evenimentul Change –se declanseaza in momentul in care utilizatorul modifica textul din cutia de text aferenta controlului sau daca –prin program-se modifica valoarea proprietatii Text

DBCombo

Este asemanator controlului ComboBox, insa elementele listei sunt incarcate automat, deci utilizatorul nu mai trebuie sa initializeze lista apeland metoda AddItem

Proprietatile DataSource si RowSource trebuie sa fie initializate cu numele componentei Data

Proprietatile DataField, BoundColumn si ListField trebuie sa fie initializate cu numele campului din lista care se afiseaza; controlul DBCombo nu este un control standard

ADO Data

-Controlul utilizeaza MicrosoftActiveXDataObject (ADO)pentru a crea rapid legaturi intre controalele asociate datelor si sursele de date

-Utilizari posibile:

conectarea la o baza de datelocala sau la distanta

deschiderea unei tabele dintr-o baza dedate, definirea unui set de inregistrari bazate pe o interogare de tip SQL (Structured Query Language), o procedura stocata sau vizualizarea tabelelor din baza de date

transferarea de valori ale campurilor de date inspre controalele asociate datelor, acolo unde ele pot fi afisate sau li se poate modifica valoarea

adaugarea de noi inregistrari sau actualizarea unei baze de date, bazata pe schimbarile facute la nivelul datelor afisate in controalele asociate

-Principalele Evenimente ale controlului ADO Data

WillMove –apare pt Recordset.Open, MoveNext (last, First, Previous), Bockmark, AddNew, Delete,..

MoveComplete -apare dupa WillMove

WillChangeField –apare inainte de modificarea proprietatii Value

FieldChangeComplete –apare dupa WillChangeField

WillChangeRecord –pt OnRecordset.Update, Delete, CancelUpdate

RecordChangeComplete –apare dupa WillChangeRecord s.a.

-Principalele Proprietati ale controlului ADO Data

ConnectionString –sir de caractere ce cuprinde toate informatiile necesare realizarii legaturii (numele driverului, furnizorului, b.d. implicita, nume utilizator, parola)

RecordSource –cuprinde o instructiune ce determina ce se va prelua din bd

CommandType –anunta sursa de date daca sursa este o declaratie SQL, un nume de tabela, a procedura memorata sau un tip necunoscut

BOFAction, EOFAction –determina ce se intampla atunci cand controlul se afla la inceputul sau la sfarsitul cursorului

MSHFlexGrid

-Controleaza prezentarea datelor dintr-un set de inregistrari sub forma de grila, date provenind din una sau mai multe talebe

-Facilitati ale acestui control:

legaturi cu date read-only

rearanjare dinamica a coloanelor si randurilor

regrupare automata a datelor in cursul ajustarii coloanelor

fiecare celula poate contine text, imagine sau ambele

modificarea textului din celula curenta prin cod sau la momentul executiei

citirea automata a datelor atunci cand controlul este asociat unui control de date

legare directa lcu seturile de inregistrari ADO grupate si corelate intre ele in cadrul unei ierarhii Command

Hierrarchical FlexGrid asociat lui DataSource

MSHFlexGrid Control Data Environment Designer

SSTab

Este continut in fisierul TABCTL32.OCX, deci pt a-l folosi trebuie sa adaugam acest fisier la proiect iar cand distribuim aplicatia install the appropriate .OCX file in the user's Microsoft Windows System or System32 directory.

Controlul reprezinta o versiune imbunatatita a controlului Sheridan SSTab, inclus in VB4. Cu acest control se pot desena controle pentru fiecare sectiune in momentul proiectarii; continutul fiecarei sectiuni este afisat automat atunci cand utilizatorul selecteaza o eticheta

Controlul SSTab creeaza un grup de pagini, fiecare functionand ca un container pentru alte controale. Numai un tab este activ la un mom dat, afisand controalele pe care le contine si le ascunde pe cele de pe celelalte tab-uri.

Avantajul acestui control consta in faptul ca in aceeasi portiune a ferestrei pot fi depuse mai multe controale, care sunt independente intre ele

Particularitatile unui control ComboBox sunt urmatoarele:

-Proprietatea Tabs –se refera la nr paginilor din control, paginile controlului sunt numerotate (incepand cu 0

-Proprietatea Tab –permite citirea nr-ului paginii curente sau specificarea nr-ului paginii care se va afisa

-Proprietatea TabsPerRow –stabileste numarul de pagini care sunt afisate intr-o linie; proprietatea se configureaza in faza de proiectare

La run time utilizatorul poate naviga intre tab-uri si cu CTRL+TAB sau folosind accelerator keys definite in caption-ul fiecarui tab. Se poate customiza controlul prin definirea proprietatilor Style, ShowFocusRect, TabOrientation si WordWrap

-Evenimentul Click -estre declansat in momentul in care utilizatorul selecteaza o anumita pagina

Data

Control invizibil in executie, care apare in paleta controalelor standard

Controlul este utilizat pentru a conecta o aplicatie VB cu o sursa de date selectata si pentru a avea acces la articoleleunui tabel dintr-o baza de date specificata

Acest control este utilizat si pentru realizarea interfetei cu controale “legate”

Controlul creaza un panou format din 4 butoane de comanda, prin care se poate naviga printre articolele tabelului: trecerea la primul articol, la articolul precedent, urmator, ultimul

Un numar de controale vizuale, denumite controale “legate” la controlul Data, care permit afisarea si editarea articolelor tabelului: TextBox, Label, CheckBox, ListBox, ComboBox, PictureBox, Image, DBGrid, DBList, DBCombo s.a. Aceste controale realizeaza o inlantuire spre anumite campuri ale tabelului selectat.

In momentul in care un control vizual este inlantuit la un anumit camp, orice modificare a continutului controlului este inregistrata automat in campul asociat.

-Proprietati: Conect –numele programului cu care afost creata baza de date (ex Access)

DataBaseName –numele bazei de date cu calea completa

RecordSource –numele tabelului bazei de date

Exclusive –stabileste daca baza dedate se deschide pt un singur utilizator sau pt mai multi

ReadOnly –stabileste daca articolele bazei de date pot fi editate sau nu

BOFAction –stabileste actiunea controluluii Data in momentul in care BOF=true (ex: MoveFirst)

EOFAction – stabileste actiunea controluluii Data in momentul in care EOF=true (ex: MoveFirst)

In momentul lansarii in executie a aplicatiei, inainte de declansarea evenimentului Load pentru forma, controlul Data este initializat automat. VB va crea un obiect de tip Recordset. Acest obiect va fi accesibil prin intermediul proprietatii Recordset a controlului Data.

-principalele metode aferente obiectului Recordset:

AddNew, Update, Delete, MoveFirst, MoveLast, MoveNext, MovePrevious

-principalele proprietati aferente obiectului Recordset:

AbsolutePosition, RecordCount, Bookmark, EOF, BOF

-evenimentul Reposition al unui control Data -este declansat in momentul in care un articol oarecare al bazei de date devine articol curent al bazei; aceasta procedura-eveniment este utilizata de regula pentru afisarea numarului articolului curent

DataCombo

control este un data-bound combo box care este populat in mod automat dintr-un camp al unei data source asociata si, optional, updateaza un camp intr-o tabela updates a field in a related table of another data source.

O caracteristica aparte a controlului DataCombo este capacitatea de a permite accesul la doua tabele diferite si de a asocia datele din prima tabela cu un camp din cea de-a doua tabela. Aceasta se face utilizand doua surse de date (cum sunt controalele ADO Data sau Data Environment)

Controlul DataCombo este compatibil cu controlul DBCombo. Dar controlul DataCombo este optimizat si optim sa lucreze cu ActiveX Data Objects (ADO).

Controlul DataCombo se gaseste impreuna cu controlul DataList in fisierul Msdatlst.ocx. To use this control in your application, you must add the .OCX file to the project. When distributing your application, install the Msdatlst.ocx file in the user's Microsoft Windows System or System32 directory. Spre deosebire de controlul stanard combo box, acest DataCombo ofera o mai mare flexibilitate si utilitate in aplicatiile cu baze de date: controlul poate fi completat automat cu valori dintr-un camp al unei bd din controlul de date la care este asociat. In plus, poate, optional, transfera un camp selectat catre un al doilea control de date, fiind astfel ideal pentru aplicatii de tip "lookup table" (“tabela de cautare”).

DataGrid

Este un control asemanator unei foi de calcul care afiseaza o serie de randuri si coloane care reprezinta inregistrari si campuri ale unui obiect Recordset. Cu Data Grid se pot crea aplicatii care permit utilizatorului final sa scrie si sa citeasca in / din cele mai multe baze de date. Controlul poate fi configurat rapid in momentul proiectarii din putine linii de cod. Daca la momentul proiectarii atribuim o valoare proprietatii DataSource a controlului DataGrid, controlul este completat automat, iar antetele de coloana sunt extrase automat din setul de inregistrari al sursei de date. Apoi se pot edita coloanele grilei: stergere, rearanjare, adaugarea de antete sau ajustarea latimii coloanelor. Nu este un control standard.

CAP 5 COD -fragm

Login.frm

Option Explicit

Public LoginSucceeded As Boolean

Private Sub cmdCancel_Click()

LoginSucceeded = False

Me.Hide

End Sub

Private Sub cmdOK_Click()

Static iTries

If UCase(txtPassword) = txtPassword.Tag Then

LoginSucceeded = True

Me.Hide

AlegAnSc.Show

Else

iTries = iTries + 1

If iTries = 3 Then

MsgBox "Ne pare rau , prea multe incercari !", vbCritical, "Acces interzis !"

Unload Me

Else

MsgBox "Apasati OK si incercati din nou !", vbInformation, "Parola gresita !"

txtPassword.SelStart = 0

txtPassword.SelLength = Len(txtPassword)

txtPassword.SetFocus

'SendKeys "{Home}+{End}"

End If

End If

End Sub

Private Sub Form_Activate()

txtPassword.SetFocus

End Sub

AlegAnSc.frm

Private Sub Combo1_Click()

an = Combo1.Text

MDIForm1.Show

End Sub

Private Sub Form_Activate()

Combo1.SetFocus

End Sub

Private Sub Form_Load()

With Combo1

.AddItem ("an precedent")

.AddItem ("an curent")

End With

Dim d As Date

d = Now

Text1.Text = Format(d, "dd/mm/yyyy")

Text2.Text = Format(d, "Long Time")

End Sub

MDIForm1

Private Sub MDIForm_Load()

If an = "an precedent" Then

mnu_edit.Visible = False

mnu_viz.Visible = True

ElseIf an = "an curent" Then

mnu_edit.Visible = True

mnu_viz.Visible = True

End If

End Sub

Private Sub mnu_ansc_Click()

Unload Me

AlegAnSc.Show

End Sub

Private Sub mnu_edit_elevi_Click()

If an = "an curent" Then

Trecut.Hide

Prezent.Show

MDIForm1.Caption = "Prezent"

Prezent.UC_Prezent_Edit_Elevi1.Visible = True

Prezent.UC_Prezent_Edit_Prof1.Visible = False

Prezent.UC_Prezent_Viz_clasa1.Visible = False

Prezent.UC_Prezent_Viz_Prof1.Visible = False

Prezent.UC_Prezent_Viz_Elevi1.Visible = False

Prezent.Caption = "Prezent Edit Elevi"

End If

End Sub

Private Sub mnu_edit_prof_Click()

If an = "an curent" Then

Trecut.Hide

Prezent.Show

MDIForm1.Caption = "Prezent"

Prezent.UC_Prezent_Edit_Elevi1.Visible = False

Prezent.UC_Prezent_Edit_Prof1.Visible = True

Prezent.UC_Prezent_Viz_clasa1.Visible = False

Prezent.UC_Prezent_Viz_Prof1.Visible = False

Prezent.UC_Prezent_Viz_Elevi1.Visible = False

Prezent.Caption = "Prezent Editare Profesori"

End If

End Sub

Private Sub mnu_iesire_Click()

End

End Sub

Private Sub mnu_viz_cls_Click()

If an = "an precedent" Then

mnu_edit.Visible = False

Trecut.Show

Prezent.Hide

MDIForm1.Caption = "Trecut"

Trecut.UC_Trecut_Viz_Elevi1.Visible = False

Trecut.UC_Trecut_Viz_Clasa2.Visible = True

Trecut.UC_Trecut_Viz_Prof2.Visible = False

Trecut.Caption = "Trecut Vizualizare Clase"

ElseIf an = "an curent" Then

Trecut.Hide

Prezent.Show

Prezent.UC_Prezent_Edit_Elevi1.Visible = False

Prezent.UC_Prezent_Edit_Prof1.Visible = False

Prezent.UC_Prezent_Viz_clasa1.Visible = True

Prezent.UC_Prezent_Viz_Prof1.Visible = False

Prezent.UC_Prezent_Viz_Elevi1.Visible = False

Prezent.Caption = "Prezent Vizualizare Clase"

End If

End Sub

Private Sub mnu_viz_elevi_Click()

If an = "an precedent" Then

mnu_edit.Visible = False

Trecut.Show

Prezent.Hide

MDIForm1.Caption = "Trecut"

Trecut.UC_Trecut_Viz_Elevi1.Visible = True

Trecut.UC_Trecut_Viz_Clasa2.Visible = False

Trecut.UC_Trecut_Viz_Prof2.Visible = False

Trecut.Caption = "Trecut Vizualizare Elevi"

ElseIf an = "an curent" Then

Trecut.Hide

Prezent.Show

Prezent.UC_Prezent_Edit_Elevi1.Visible = False

Prezent.UC_Prezent_Edit_Prof1.Visible = False

Prezent.UC_Prezent_Viz_clasa1.Visible = False

Prezent.UC_Prezent_Viz_Prof1.Visible = False

Prezent.UC_Prezent_Viz_Elevi1.Visible = True

Prezent.Caption = "Prezent Vizualizare Elevi"

End If

End Sub

Private Sub mnu_viz_prof_Click()

If an = "an precedent" Then

mnu_edit.Visible = False

Trecut.Show

Prezent.Hide

MDIForm1.Caption = "Trecut"

Trecut.UC_Trecut_Viz_Elevi1.Visible = False

Trecut.UC_Trecut_Viz_Clasa2.Visible = False

Trecut.UC_Trecut_Viz_Prof2.Visible = True

Trecut.Caption = "Trecut Vizualizare Profesori"

ElseIf an = "an curent" Then

Trecut.Hide

Prezent.Show

Prezent.UC_Prezent_Edit_Elevi1.Visible = False

Prezent.UC_Prezent_Edit_Prof1.Visible = False

Prezent.UC_Prezent_Viz_clasa1.Visible = False

Prezent.UC_Prezent_Viz_Prof1.Visible = True

Prezent.UC_Prezent_Viz_Elevi1.Visible = False

Prezent.Caption = "Prezent Vizualizare Profesori"

End If

End Sub

UC_Trecut_Viz_Elevi

Private Sub cmdAdd_Click()

Data1.Recordset.AddNew

End Sub

Private Sub cmdAdd2_Click()

Data2.Recordset.AddNew

End Sub

Private Sub cmdDelete2_Click()

'this may produce an error if you delete the last

'record or the only record in the recordset

Data2.Recordset.Delete

Data2.Recordset.MoveNext

End Sub

Private Sub cmdDelete_Click()

'this may produce an error if you delete the last

'record or the only record in the recordset

Data1.Recordset.Delete

Data1.Recordset.MoveNext

End Sub

Private Sub cmdRefresh2_Click()

'this is really only needed for multi user apps

Data2.Refresh

End Sub

Private Sub cmdRefresh_Click()

'this is really only needed for multi user apps

Data1.Refresh

End Sub

Private Sub cmdUpdate2_Click()

Data2.UpdateRecord

Data2.Recordset.Bookmark = Data2.Recordset.LastModified

End Sub

Private Sub cmdUpdate_Click()

Data1.UpdateRecord

Data1.Recordset.Bookmark = Data1.Recordset.LastModified

End Sub

Private Sub cmdClose2_Click()

'Unload Me

End Sub

Private Sub cmdClose_Click()

'Unload Me

End Sub

Private Sub Data2_Error(DataErr As Integer, Response As Integer)

'This is where you would put error handling code

'If you want to ignore errors, comment out the next line

'If you want to trap them, add code here to handle them

MsgBox "Data error event hit err:" & Error$(DataErr)

Response = 0 'throw away the error

End Sub

Private Sub Data1_Error(DataErr As Integer, Response As Integer)

'This is where you would put error handling code

'If you want to ignore errors, comment out the next line

'If you want to trap them, add code here to handle them

MsgBox "Data error event hit err:" & Error$(DataErr)

Response = 0 'throw away the error

End Sub

Private Sub Data2_Reposition()

Screen.MousePointer = vbDefault

On Error Resume Next

Data2.Caption = "Record: " & (Data2.Recordset.AbsolutePosition + 1)

'for the table object you must set the index property when

'the recordset gets created and use the following line

End Sub

Private Sub Data1_Reposition()

Screen.MousePointer = vbDefault

On Error Resume Next

Data1.Caption = "Record: " & (Data1.Recordset.AbsolutePosition + 1)

'for the table object you must set the index property when

'the recordset gets created and use the following line

End Sub

Private Sub Data2_Validate(Action As Integer, Save As Integer)

Select Case Action

Case vbDataActionMoveFirst

Case vbDataActionMovePrevious

Case vbDataActionMoveNext

Case vbDataActionMoveLast

Case vbDataActionAddNew

Case vbDataActionUpdate

Case vbDataActionDelete

Case vbDataActionFind

Case vbDataActionBookmark

Case vbDataActionClose

End Select

Screen.MousePointer = vbHourglass

End Sub

Private Sub Data1_Validate(Action As Integer, Save As Integer)

Select Case Action

Case vbDataActionMoveFirst

Case vbDataActionMovePrevious

Case vbDataActionMoveNext

Case vbDataActionMoveLast

Case vbDataActionAddNew

Case vbDataActionUpdate

Case vbDataActionDelete

Case vbDataActionFind

Case vbDataActionBookmark

Case vbDataActionClose

End Select

Screen.MousePointer = vbHourglass

End Sub

Private Sub dcElev_Change()

adoElev.Recordset.Find "edp_id = " & dcElev.BoundText, , , adBookmarkFirst

txtFields(66).Text = adoElev.Recordset!edp_nr_elev

txtFields(0).Text = adoElev.Recordset!edp_id

'txtFields(1).Text = adoElev.Recordset!edp_an_i

txtFields(2).Text = adoElev.Recordset!edp_cls_nr

txtFields(3).Text = adoElev.Recordset!edp_nume

txtFields(4).Text = adoElev.Recordset!edp_it

txtFields(5).Text = adoElev.Recordset!edp_pren

txtFields(6).Text = adoElev.Recordset!edp_varsta

txtFields(7).Text = adoElev.Recordset!edp_sex

txtFields(8).Text = adoElev.Recordset!edp_datan

txtFields(9).Text = adoElev.Recordset!edp_locn

txtFields(10).Text = adoElev.Recordset!edp_judn

txtFields(11).Text = adoElev.Recordset!edp_domloc

txtFields(12).Text = adoElev.Recordset!edp_domjud

txtFields(13).Text = adoElev.Recordset!edp_domstr

txtFields(14).Text = adoElev.Recordset!edp_domnr

If IsNull(adoElev.Recordset!edp_dombl) Then

txtFields(15).Text = ""

Else

txtFields(15).Text = adoElev.Recordset!edp_dombl

End If

If IsNull(adoElev.Recordset!edp_domap) Then

txtFields(16).Text = ""

Else

txtFields(16).Text = adoElev.Recordset!edp_domap

End If

If IsNull(adoElev.Recordset!edp_domtel) Then

txtFields(17).Text = ""

Else

txtFields(17).Text = adoElev.Recordset!edp_domtel

End If

If IsNull(adoElev.Recordset!edp_nat) Then

txtFields(18).Text = ""

Else

txtFields(18).Text = adoElev.Recordset!edp_nat

End If

txtFields(19).Text = adoElev.Recordset!edp_mnume

txtFields(20).Text = adoElev.Recordset!edp_mpren

If IsNull(adoElev.Recordset!edp_mlocm) Then

txtFields(21).Text = ""

Else

txtFields(21).Text = adoElev.Recordset!edp_mlocm

End If

If IsNull(adoElev.Recordset!edp_mfunct) Then

txtFields(22).Text = ""

Else

txtFields(22).Text = adoElev.Recordset!edp_mfunct

End If

If IsNull(adoElev.Recordset!edp_mtel) Then

txtFields(23).Text = ""

Else

txtFields(23).Text = adoElev.Recordset!edp_mtel

End If

txtFields(24).Text = adoElev.Recordset!edp_msust

txtFields(25).Text = adoElev.Recordset!edp_tnume

txtFields(26).Text = adoElev.Recordset!edp_tpren

If IsNull(adoElev.Recordset!edp_tlocm) Then

txtFields(27).Text = ""

Else

txtFields(27).Text = adoElev.Recordset!edp_tlocm

End If

If IsNull(adoElev.Recordset!edp_tfunct) Then

txtFields(28).Text = ""

Else

txtFields(28).Text = adoElev.Recordset!edp_tfunct

End If

If IsNull(adoElev.Recordset!edp_ttel) Then

txtFields(29).Text = ""

Else

txtFields(29).Text = adoElev.Recordset!edp_ttel

End If

txtFields(30).Text = adoElev.Recordset!edp_tsust

txtFields(31).Text = adoElev.Recordset!edp_aserie

txtFields(32).Text = adoElev.Recordset!edp_anr

txtFields(33).Text = adoElev.Recordset!edp_atitular

txtFields(34).Text = adoElev.Recordset!edp_abeneficiar

If IsNull(adoElev.Recordset!edp_aimputernicit) Then

txtFields(35).Text = ""

Else

txtFields(35).Text = adoElev.Recordset!edp_aimputernicit

End If

txtFields(68).Text = adoElev.Recordset!ess_edp_nr_elev

txtFields(65).Text = adoElev.Recordset!ess_id

txtFields(62).Text = adoElev.Recordset!ess_cls_nr

If IsNull(adoElev.Recordset!ess_venit) Then

txtFields(61).Text = ""

End If

If IsNull(adoElev.Recordset!ess_plecat) Then

txtFields(60).Text = ""

End If

txtFields(59).Text = adoElev.Recordset!ess_regnr

txtFields(58).Text = adoElev.Recordset!ess_regpag

txtFields(57).Text = adoElev.Recordset!ess_lb1

txtFields(56).Text = adoElev.Recordset!ess_lb2

If IsNull(adoElev.Recordset!ess_abssem1t) Then

txtFields(55).Text = 0

Else

txtFields(55).Text = adoElev.Recordset!ess_abssem1t

End If

If IsNull(adoElev.Recordset!ess_abssem1m) Then

txtFields(54).Text = 0

Else

txtFields(54).Text = adoElev.Recordset!ess_abssem1m

End If

If IsNull(adoElev.Recordset!ess_abssem1n) Then

txtFields(53).Text = 0

Else

txtFields(53).Text = adoElev.Recordset!ess_abssem1n

End If

If IsNull(adoElev.Recordset!ess_abssem2t) Then

txtFields(52).Text = 0

Else

txtFields(52).Text = adoElev.Recordset!ess_abssem2t

End If

If IsNull(adoElev.Recordset!ess_abssem2m) Then

txtFields(51).Text = 0

Else

txtFields(51).Text = adoElev.Recordset!ess_abssem2m

End If

If IsNull(adoElev.Recordset!ess_abssem2n) Then

txtFields(50).Text = 0

Else

txtFields(50).Text = adoElev.Recordset!ess_abssem2n

End If

If IsNull(adoElev.Recordset!ess_absant) Then

txtFields(49).Text = 0

Else

txtFields(49).Text = adoElev.Recordset!ess_absant

End If

If IsNull(adoElev.Recordset!ess_absanm) Then

txtFields(48).Text = 0

Else

txtFields(48).Text = adoElev.Recordset!ess_absanm

End If

If IsNull(adoElev.Recordset!ess_absann) Then

txtFields(47).Text = 0

Else

txtFields(47).Text = adoElev.Recordset!ess_absann

End If

If IsNull(adoElev.Recordset!ess_sem1corig) Then

txtFields(41).Text = ""

Else

txtFields(41).Text = adoElev.Recordset!ess_sem1corig

End If

If IsNull(adoElev.Recordset!ess_sem1sitn) Then

Text1.Text = ""

Else

Text1.Text = adoElev.Recordset!ess_sem1sitn

End If

If IsNull(adoElev.Recordset!ess_sem2corig) Then

txtFields(39).Text = ""

Else

txtFields(39).Text = adoElev.Recordset!ess_sem2corig

End If

If IsNull(adoElev.Recordset!ess_sem2sitn) Then

Text2.Text = ""

Else

Text2.Text = adoElev.Recordset!ess_sem2sitn

End If

If IsNull(adoElev.Recordset!ess_iuncorig) Then

txtFields(37).Text = ""

Else

txtFields(37).Text = adoElev.Recordset!ess_iuncorig

End If

If IsNull(adoElev.Recordset!ess_iunsitn) Then

Text3.Text = ""

Else

Text3.Text = adoElev.Recordset!ess_iunsitn

End If

If IsNull(adoElev.Recordset!ess_augrepetent) Then

txtFields(69).Text = ""

Else

txtFields(69).Text = adoElev.Recordset!ess_augrepetent

End If

If adoElev.Recordset!cls_id >= 33 Then

If IsNull(adoElev.Recordset!ess_notap1) Then

txtFields(46).Text = 0

Else

txtFields(46).Text = adoElev.Recordset!ess_notap1

End If

If IsNull(adoElev.Recordset!ess_notap2) Then

txtFields(45).Text = 0

Else

txtFields(45).Text = adoElev.Recordset!ess_notap2

End If

If IsNull(adoElev.Recordset!ess_notapan) Then

txtFields(44).Text = 0

Else

txtFields(44).Text = adoElev.Recordset!ess_notapan

End If

If IsNull(adoElev.Recordset!ess_sem1promovat) Then

txtFields(40).Text = 0

Else

txtFields(40).Text = adoElev.Recordset!ess_sem1promovat

End If

If IsNull(adoElev.Recordset!ess_sem2promovat) Then

txtFields(38).Text = 0

Else

txtFields(38).Text = adoElev.Recordset!ess_sem2promovat

End If

If IsNull(adoElev.Recordset!ess_iunpromovat) Then

txtFields(36).Text = 0

Else

txtFields(36).Text = adoElev.Recordset!ess_iunpromovat

End If

If IsNull(adoElev.Recordset!ess_augpromovat) Then

txtFields(67).Text = 0

Else

txtFields(67).Text = adoElev.Recordset!ess_augpromovat

End If

ElseIf adoElev.Recordset!cls_id < 32 Then

If IsNull(adoElev.Recordset!ess_notap14) Then

txtFields(46).Text = ""

Else

txtFields(46).Text = adoElev.Recordset!ess_notap14

End If

If IsNull(adoElev.Recordset!ess_notap24) Then

txtFields(45).Text = ""

Else

txtFields(45).Text = adoElev.Recordset!ess_notap24

End If

If IsNull(adoElev.Recordset!ess_notapan4) Then

txtFields(44).Text = ""

Else

txtFields(44).Text = adoElev.Recordset!ess_notapan4

End If

If IsNull(adoElev.Recordset!ess_sem1promovat4) Then

txtFields(40).Text = ""

Else

txtFields(40).Text = adoElev.Recordset!ess_sem1promovat4

End If

If IsNull(adoElev.Recordset!ess_sem2promovat4) Then

txtFields(38).Text = ""

Else

txtFields(38).Text = adoElev.Recordset!ess_sem2promovat4

End If

If IsNull(adoElev.Recordset!ess_iunpromovat4) Then

txtFields(36).Text = ""

Else

txtFields(36).Text = adoElev.Recordset!ess_iunpromovat4

End If

If IsNull(adoElev.Recordset!ess_augpromovat4) Then

txtFields(67).Text = ""

Else

txtFields(67).Text = adoElev.Recordset!ess_augpromovat4

End If

End If

If IsNull(adoElev.Recordset!ess_abateri) Then

txtFields(43).Text = ""

Else

txtFields(43).Text = adoElev.Recordset!ess_abateri

End If

If IsNull(adoElev.Recordset!ess_dirig) Then

txtFields(42).Text = ""

Else

txtFields(42).Text = adoElev.Recordset!ess_dirig

End If

End Sub

Private Sub UserControl_Initialize()

SSTab1.Tab = 0

End Sub

UC_Trecut_Viz_Clasa

Private Sub cmdPrint1_Click()

DRP_elevi.Show

End Sub

Private Sub cmdPrint2_Click()

DRP_Trecut_edp.Show

End Sub

Private Sub dbcVizClasa_Change()

cmdPrint1.Enabled = True

cmdPrint2.Enabled = True

Dim s As String

Dim f As Integer

Dim m As Integer

Dim promovat1 As Double

Dim promovat2 As Double

Dim purtare1 As Double

Dim purtare2 As Double

Dim sem11 As Integer

Dim sem12 As Integer

Dim sem13 As Integer

sem11 = 0

sem12 = 0

sem13 = 0

Dim sem21 As Integer

Dim sem22 As Integer

Dim sem23 As Integer

sem21 = 0

sem22 = 0

sem23 = 0

Dim notap11 As Integer

Dim notap12 As Integer

Dim notap13 As Integer

notap11 = 0

notap12 = 0

nota13 = 0

Dim notap21 As Integer

Dim notap22 As Integer

Dim notap23 As Integer

notap21 = 0

notap22 = 0

notap23 = 0

Dim abst1 As Integer

Dim absm1 As Integer

Dim a1t As Integer

Dim a1m As Integer

Dim a1n As String

Dim abst2 As Integer

Dim absm2 As Integer

Dim a2t As Integer

Dim a2m As Integer

Dim a2n As Integer

Dim aant As Integer

Dim aanm As Integer

Dim aann As Integer

Dim promovat14 As String

Dim promovat24 As String

Dim purtare14 As String

Dim purtare24 As String

Dim sem114 As Integer

Dim sem124 As Integer

Dim sem134 As Integer

Dim sem144 As Integer

sem114 = 0

sem124 = 0

sem134 = 0

sem144 = 0

Dim sem214 As Integer

Dim sem224 As Integer

Dim sem234 As Integer

Dim sem244 As Integer

sem214 = 0

sem224 = 0

sem234 = 0

sem244 = 0

Dim notap114 As Integer

Dim notap124 As Integer

Dim notap134 As Integer

Dim notap144 As Integer

notap114 = 0

notap124 = 0

notap134 = 0

notap144 = 0

Dim notap214 As Integer

Dim notap224 As Integer

Dim notap234 As Integer

Dim notap244 As Integer

notap214 = 0

notap224 = 0

notap234 = 0

notap244 = 0

f = 0

m = 0

adoClasa.Recordset.Find "cls_id = " & dbcVizClasa.BoundText, , , adBookmarkFirst

aaa = "SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip " & _

"FROM clasa, elev_dp, elev_sitsc " & _

"WHERE edp_id = ess_id AND " & _

"edp_nr_elev = ess_edp_nr_elev AND " & _

"edp_cls_nr = cls_nr AND " & _

"cls_id = " & adoClasa.Recordset!cls_id & _

" ORDER BY edp_nume"

DataEnvironment1.Commands.Item(1).CommandText = aaa

DataEnvironment5.Commands.Item(1).CommandText = aaa

s = "SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip " & _

"FROM clasa, elev_dp, elev_sitsc " & _

"WHERE edp_id = ess_id AND " & _

"edp_cls_nr = cls_nr AND " & _

"cls_id = " & adoClasa.Recordset!cls_id & _

" ORDER BY edp_nume"

adoVizClasa.RecordSource = s

adoVizClasa.Refresh

Dim s1 As String

s1 = "SELECT * " & _

"FROM prof, clasa " & _

"WHERE p_cls = cls_nr " & _

"AND cls_id =" & adoClasa.Recordset!cls_id & _

" ORDER BY cls_nr"

adoProf.RecordSource = s1

adoProf.Refresh

Dim s2 As String

s2 = "SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip " & _

"FROM clasa, elev_dp, elev_sitsc " & _

"WHERE edp_id = ess_id AND " & _

"edp_cls_nr = cls_nr AND " & _

"ess_abateri <> '' AND " & _

"cls_id = " & adoClasa.Recordset!cls_id & _

" ORDER BY edp_nume"

adoAbateri.RecordSource = s2

adoAbateri.Refresh

Dim sa3 As String

sa3 = "SELECT *, edp_nr_elev, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip, ess_sem1corig, ess_sem2corig, ess_iuncorig " & _

"FROM clasa, elev_dp, elev_sitsc " & _

"WHERE edp_id = ess_id AND " & _

"edp_cls_nr = cls_nr AND " & _

"( ess_sem1corig <> '' OR ess_sem2corig <> '' OR ess_iuncorig <> '') AND " & _

"cls_id = " & adoClasa.Recordset!cls_id & _

" ORDER BY edp_nume"

adoCorig.RecordSource = sa3

adoCorig.Refresh

Do Until adoVizClasa.Recordset.AbsolutePosition <= adPosEOF

If adoVizClasa.Recordset("edp_sex").Value = "F" Then

f = f + 1

ElseIf adoVizClasa.Recordset("edp_sex").Value = "M" Then

m = m + 1

End If

'On Error Resume Next

If IsNull(adoVizClasa.Recordset.Fields("ess_abssem1t")) Then

abst1 = 0

Else

abst1 = adoVizClasa.Recordset.Fields("ess_abssem1t").Value

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_abssem1m")) Then

absm1 = 0

Else

absm1 = adoVizClasa.Recordset.Fields("ess_abssem1m").Value

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_abssem2t")) Then

abst2 = 0

Else

abst2 = adoVizClasa.Recordset.Fields("ess_abssem2t").Value

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_abssem2m")) Then

absm2 = 0

Else

absm2 = adoVizClasa.Recordset.Fields("ess_abssem2m").Value

End If

'MsgBox "absm2", , absm2

Text26.Text = adoVizClasa.Recordset.Fields("ess_dirig").Value

If adoClasa.Recordset("cls_id") >= 33 Then

Frame1.Visible = True

Frame3.Visible = True

Frame2.Visible = False

Frame4.Visible = False

DataGrid3.Visible = True

Label2.Visible = True

Label2.Caption = "Diriginte:"

If IsNull(adoVizClasa.Recordset.Fields("ess_sem1promovat")) Then

promovat1 = 0

Else

promovat1 = adoVizClasa.Recordset.Fields("ess_sem1promovat").Value

End If

If promovat1 >= 5 And promovat1 <= 6.99 Then

sem11 = sem11 + 1

ElseIf promovat1 >= 7 And promovat1 <= 8.99 Then

sem12 = sem12 + 1

ElseIf promovat1 >= 9 And promovat1 <= 10 Then

sem13 = sem13 + 1

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_sem2promovat")) Then

promovat2 = 0

Else

promovat2 = adoVizClasa.Recordset.Fields("ess_sem2promovat").Value

End If

If promovat2 >= 5 And promovat2 <= 6.99 Then

sem21 = sem21 + 1

ElseIf promovat2 >= 7 And promovat2 <= 8.99 Then

sem22 = sem22 + 1

ElseIf promovat2 >= 9 And promovat2 <= 10 Then

sem23 = sem23 + 1

End If

purtare1 = adoVizClasa.Recordset.Fields("ess_notap1").Value

If purtare1 >= 9 And purtare1 <= 10 Then

notap11 = notap11 + 1

ElseIf purtare1 >= 7 And purtare1 <= 8 Then

notap12 = notap12 + 1

ElseIf purtare1 < 7 Then

notap13 = notap13 + 1

End If

purtare2 = adoVizClasa.Recordset.Fields("ess_notap2").Value

If purtare2 >= 9 And purtare2 <= 10 Then

notap21 = notap21 + 1

ElseIf purtare2 >= 7 And purtare2 <= 8 Then

notap22 = notap22 + 1

ElseIf purtare2 < 7 Then

notap23 = notap23 + 1

End If

Else

Frame1.Visible = False

Frame3.Visible = False

Frame2.Visible = True

Frame4.Visible = True

DataGrid3.Visible = False

Label2.Visible = True

Label2.Caption = "Invatator:"

promovat14 = adoVizClasa.Recordset.Fields("ess_sem1promovat4").Value

If promovat14 = "FB" Then

sem114 = sem114 + 1

ElseIf promovat14 = "B" Then

sem124 = sem124 + 1

ElseIf promovat14 = "SUF" Then

sem134 = sem134 + 1

ElseIf promovat14 = "INSUF" Then

sem144 = sem144 + 1

End If

promovat24 = adoVizClasa.Recordset.Fields("ess_sem2promovat4").Value

If promovat24 = "FB" Then

sem214 = sem214 + 1

ElseIf promovat24 = "B" Then

sem124 = sem124 + 1

ElseIf promovat24 = "SUF" Then

sem234 = sem234 + 1

ElseIf promovat24 = "INSUF" Then

sem244 = sem244 + 1

End If

purtare14 = adoVizClasa.Recordset.Fields("ess_notap14").Value

If purtare14 = "FB" Then

notap114 = notap114 + 1

ElseIf purtare14 = "B" Then

notap124 = notap124 + 1

ElseIf purtare14 = "SUF" Then

notap134 = notap134 + 1

ElseIf purtare14 = "INSUF" Then

notap144 = notap144 + 1

End If

purtare24 = adoVizClasa.Recordset.Fields("ess_notap24").Value

If purtare24 = "FB" Then

notap214 = notap214 + 1

ElseIf purtare24 = "B" Then

notap224 = notap224 + 1

ElseIf purtare24 = "SUF" Then

notap234 = notap234 + 1

ElseIf purtare24 = "INSUF" Then

notap244 = notap244 + 1

End If

End If

adoVizClasa.Recordset.MoveNext

a1t = a1t + abst1

a1m = a1m + absm1

a1n = a1t – a1m

a2t = a2t + abst2

a2m = a2m + absm2

a2n = a2t – a2m

aant = a1t + a2t

aanm = a1m + a2m

aann = a1n + a2n

Loop

Text69.Text = a1t

Text70.Text = a1m

Text71.Text = a1n

Text72.Text = a2t

Text73.Text = a2m

Text74.Text = a2n

Text75.Text = aant

Text76.Text = aanm

Text77.Text = aann

Text51.Text = sem11

Text52.Text = sem12

Text53.Text = sem13

Text54.Text = sem21

Text55.Text = sem22

Text56.Text = sem23

Text57.Text = sem11 + sem21

Text58.Text = sem12 + sem22

Text59.Text = sem13 + sem23

Text60.Text = notap11

Text61.Text = notap12

Text62.Text = notap13

Text63.Text = notap21

Text64.Text = notap22

Text65.Text = notap23

Text66.Text = notap11 + notap21

Text67.Text = notap12 + notap22

Text68.Text = notap13 + notap23

Text25(0).Text = f + m

Text25(1).Text = f

Text25(2).Text = m

Text16.Text = sem114

Text13.Text = sem124

Text10.Text = sem134

Text7.Text = sem144

Text17.Text = sem214

Text14.Text = sem224

Text11.Text = sem234

Text8.Text = sem244

Text18.Text = sem114 + sem214

Text15.Text = sem124 + sem224

Text12.Text = sem134 + sem234

Text9.Text = sem144 + sem244

Text24.Text = notap114

Text3.Text = notap124

Text23.Text = notap134

Text4.Text = notap144

Text22.Text = notap214

Text2.Text = notap224

Text21.Text = notap234

Text5.Text = notap244

Text20.Text = notap114 + notap214

Text1.Text = notap124 + notap224

Text19.Text = notap134 + notap234

Text6.Text = notap144 + notap244

End Sub

Private Sub UserControl_Initialize()

cmdPrint1.Enabled = False

cmdPrint2.Enabled = False

Dim Col1 As Column

Dim Col2 As Column

Set Col1 = DataGrid1.Columns(0)

Set Col2 = DataGrid1.Columns(1)

Col1.Caption = "Nr.crt."

Col2.Caption = "Numele si prenumele"

For i = 0 To adoVizClasa.Recordset.RecordCount

With Col1

.Width = 500

.DataField = adoVizClasa.Recordset.Fields("edp_nr_elev").Name

End With

With Col2

.Width = 3000

.DataField = adoVizClasa.Recordset.Fields("edp_numeip").Name

End With

Next

DataGrid1.ReBind

Dim C1 As Column

Dim C2 As Column

Set C1 = DataGrid2.Columns(0)

Set C2 = DataGrid2.Columns(1)

C1.Caption = "Numele si prenumele"

C2.Caption = "Tipul abaterii"

With C1

.Width = 2000

.DataField = adoVizClasa.Recordset.Fields("edp_numeip").Name

End With

With C2

.Width = 3000

.DataField = adoVizClasa.Recordset.Fields("ess_abateri").Name

End With

DataGrid2.ReBind

Dim Co1 As Column

Dim Co2 As Column

Set Co1 = DataGrid3.Columns(0)

Set Co2 = DataGrid3.Columns(1)

Co1.Caption = "Numele si prenumele"

Co2.Caption = "Specialitatea"

For i = 0 To adoProf.Recordset.RecordCount

With Co1

.Width = 2500

.DataField = adoProf.Recordset.Fields("p_nume").Name

End With

With Co2

.Width = 2000

.DataField = adoProf.Recordset.Fields("p_specialitatea").Name

End With

Next

DataGrid3.ReBind

Dim Coloana1 As Column

Dim Coloana2 As Column

Dim Coloana3 As Column

Dim Coloana4 As Column

Dim Coloana5 As Column

Set Coloana1 = DataGrid4.Columns(0)

Set Coloana2 = DataGrid4.Columns(1)

Set Coloana3 = DataGrid4.Columns(2)

Set Coloana4 = DataGrid4.Columns(3)

Set Coloana5 = DataGrid4.Columns(4)

Coloana1.Caption = "nr.crt."

Coloana2.Caption = "Numele si prenumele"

Coloana3.Caption = "sem I corigent la"

Coloana4.Caption = "sem II corigent la"

Coloana5.Caption = "iunie corigent la"

For i = 0 To adoCorig.Recordset.RecordCount

With Coloana1

.Width = 500

.DataField = adoCorig.Recordset.Fields("edp_nr_elev").Name

End With

With Coloana2

.Width = 2500

.DataField = adoCorig.Recordset.Fields("edp_numeip").Name

End With

With Coloana3

.Width = 4000

.DataField = adoCorig.Recordset.Fields("ess_sem1corig").Name

End With

With Coloana4

.Width = 4000

.DataField = adoCorig.Recordset.Fields("ess_sem2corig").Name

End With

With Coloana5

.Width = 4000

.DataField = adoCorig.Recordset.Fields("ess_iuncorig").Name

End With

Next

DataGrid4.ReBind

End Sub

UC_Prezent_Viz_Prof

Private Sub UserControl_Initialize()

MSHFlexGrid1.FormatString = "specialitatea |Numele |Total ore|diriginte |5 A|5 B|5 C|5 D|5 E|5 F|5 G|5 H|6 A|6 B|6 C|6 D|6 E|6 F|6 G|6 H|7 A|7 B|7 C|7 D|7 E|7 F|7 G|7 H|8 A|8 B|8 C|8 "

End Sub

UC_Prezent_Viz_Elevi

Private Sub cmdAdd_Click()

Data1.Recordset.AddNew

End Sub

Private Sub cmdDelete_Click()

'atentie la stergerea ultimei sau unicei inregistrari

Data1.Recordset.Delete

Data1.Recordset.MoveNext

End Sub

Private Sub cmdRefresh_Click()

'utila numai in aplicatii multiuser

Data1.Refresh

End Sub

Private Sub cmdUpdate_Click()

Data1.UpdateRecord

Data1.Recordset.Bookmark = Data1.Recordset.LastModified

End Sub

Private Sub cmdClose_Click()

Unload Me

End Sub

Private Sub Data1_Error(DataErr As Integer, Response As Integer)

'gestionarea mesajelor de eroare

'altfel pot da controlul urmatoarei linii de cod

MsgBox "Data error event hit err:" & Error$(DataErr)

Response = 0 'throw away the error

End Sub

Private Sub Data1_Reposition()

Screen.MousePointer = vbDefault

On Error Resume Next

Data1.Caption = "Record: " & (Data1.Recordset.AbsolutePosition + 1)

End Sub

Private Sub Data1_Validate(Action As Integer, Save As Integer)

'codul de validare, acest eveniment este apelat cand intervin urmatoarele actiuni

Select Case Action

Case vbDataActionMoveFirst

Case vbDataActionMovePrevious

Case vbDataActionMoveNext

Case vbDataActionMoveLast

Case vbDataActionAddNew

Case vbDataActionUpdate

Case vbDataActionDelete

Case vbDataActionFind

Case vbDataActionBookmark

Case vbDataActionClose

End Select

Screen.MousePointer = vbHourglass

End Sub

Private Sub cmdAdd2_Click()

Data2.Recordset.AddNew

End Sub

Private Sub cmdDelete2_Click()

'atentie la stergerea ultimei sau unicei inregistrari

Data2.Recordset.Delete

Data2.Recordset.MoveNext

End Sub

Private Sub cmdRefresh2_Click()

Data2.Refresh

End Sub

Private Sub cmdUpdate2_Click()

Data2.UpdateRecord

Data2.Recordset.Bookmark = Data1.Recordset.LastModified

End Sub

Private Sub cmdClose2_Click()

'Unload Me

End Sub

Private Sub Data2_Error(DataErr As Integer, Response As Integer)

MsgBox "Data error event hit err:" & Error$(DataErr)

Response = 0 'throw away the error

End Sub

Private Sub Data2_Reposition()

Screen.MousePointer = vbDefault

On Error Resume Next

Data2.Caption = "Record: " & (Data2.Recordset.AbsolutePosition + 1)

End Sub

Private Sub Data2_Validate(Action As Integer, Save As Integer)

Select Case Action

Case vbDataActionMoveFirst

Case vbDataActionMovePrevious

Case vbDataActionMoveNext

Case vbDataActionMoveLast

Case vbDataActionAddNew

Case vbDataActionUpdate

Case vbDataActionDelete

Case vbDataActionFind

Case vbDataActionBookmark

Case vbDataActionClose

End Select

Screen.MousePointer = vbHourglass

End Sub

Private Sub dcElev_Change()

adoElev.Recordset.Find "edp_id = " & dcElev.BoundText, , , adBookmarkFirst

txtFields(66).Text = adoElev.Recordset!edp_nr_elev

txtFields(0).Text = adoElev.Recordset!edp_id

'txtFields(1).Text = adoElev.Recordset!edp_an_i

txtFields(2).Text = adoElev.Recordset!edp_cls_nr

txtFields(3).Text = adoElev.Recordset!edp_nume

txtFields(4).Text = adoElev.Recordset!edp_it

txtFields(5).Text = adoElev.Recordset!edp_pren

txtFields(6).Text = adoElev.Recordset!edp_varsta

txtFields(7).Text = adoElev.Recordset!edp_sex

txtFields(8).Text = adoElev.Recordset!edp_datan

txtFields(9).Text = adoElev.Recordset!edp_locn

txtFields(10).Text = adoElev.Recordset!edp_judn

txtFields(11).Text = adoElev.Recordset!edp_domloc

txtFields(12).Text = adoElev.Recordset!edp_domjud

txtFields(13).Text = adoElev.Recordset!edp_domstr

If IsNull(adoElev.Recordset!edp_domnr) Then

txtFields(14).Text = ""

Else

txtFields(14).Text = adoElev.Recordset!edp_domnr

End If

If IsNull(adoElev.Recordset!edp_dombl) Then

txtFields(15).Text = ""

Else

txtFields(15).Text = adoElev.Recordset!edp_dombl

End If

If IsNull(adoElev.Recordset!edp_domap) Then

txtFields(16).Text = ""

Else

txtFields(16).Text = adoElev.Recordset!edp_domap

End If

If IsNull(adoElev.Recordset!edp_domtel) Then

txtFields(17).Text = ""

Else

txtFields(17).Text = adoElev.Recordset!edp_domtel

End If

If IsNull(adoElev.Recordset!edp_nat) Then

txtFields(18).Text = ""

Else

txtFields(18).Text = adoElev.Recordset!edp_nat

End If

txtFields(19).Text = adoElev.Recordset!edp_mnume

txtFields(20).Text = adoElev.Recordset!edp_mpren

If IsNull(adoElev.Recordset!edp_mlocm) Then

txtFields(21).Text = ""

Else

txtFields(21).Text = adoElev.Recordset!edp_mlocm

End If

If IsNull(adoElev.Recordset!edp_mfunct) Then

txtFields(22).Text = ""

Else

txtFields(22).Text = adoElev.Recordset!edp_mfunct

End If

If IsNull(adoElev.Recordset!edp_mtel) Then

txtFields(23).Text = ""

Else

txtFields(23).Text = adoElev.Recordset!edp_mtel

End If

txtFields(24).Text = adoElev.Recordset!edp_msust

txtFields(25).Text = adoElev.Recordset!edp_tnume

txtFields(26).Text = adoElev.Recordset!edp_tpren

If IsNull(adoElev.Recordset!edp_tlocm) Then

txtFields(27).Text = ""

Else

txtFields(27).Text = adoElev.Recordset!edp_tlocm

End If

If IsNull(adoElev.Recordset!edp_tfunct) Then

txtFields(28).Text = ""

Else

txtFields(28).Text = adoElev.Recordset!edp_tfunct

End If

If IsNull(adoElev.Recordset!edp_ttel) Then

txtFields(29).Text = ""

Else

txtFields(29).Text = adoElev.Recordset!edp_ttel

End If

txtFields(30).Text = adoElev.Recordset!edp_tsust

txtFields(31).Text = adoElev.Recordset!edp_aserie

txtFields(32).Text = adoElev.Recordset!edp_anr

txtFields(33).Text = adoElev.Recordset!edp_atitular

txtFields(34).Text = adoElev.Recordset!edp_abeneficiar

If IsNull(adoElev.Recordset!edp_aimputernicit) Then

txtFields(35).Text = ""

Else

txtFields(35).Text = adoElev.Recordset!edp_aimputernicit

End If

txtFields(68).Text = adoElev.Recordset!ess_edp_nr_elev

txtFields(65).Text = adoElev.Recordset!ess_id

'txtFields(64).Text = adoElev.Recordset!ess_edp_id

'txtFields(63).Text = adoElev.Recordset!ess_an_i

txtFields(62).Text = adoElev.Recordset!ess_cls_nr

If IsNull(adoElev.Recordset!ess_venit) Then

txtFields(61).Text = ""

End If

If IsNull(adoElev.Recordset!ess_plecat) Then

txtFields(60).Text = ""

End If

If IsNull(adoElev.Recordset!ess_regnr) Then

txtFields(59).Text = 0

Else

txtFields(59).Text = adoElev.Recordset!ess_regnr

End If

If IsNull(adoElev.Recordset!ess_regpag) Then

txtFields(58).Text = 0

Else

txtFields(58).Text = adoElev.Recordset!ess_regpag

End If

If IsNull(adoElev.Recordset!ess_lb1) Then

txtFields(57).Text = ""

Else

txtFields(57).Text = adoElev.Recordset!ess_lb1

End If

If IsNull(adoElev.Recordset!ess_lb2) Then

txtFields(56).Text = ""

Else

txtFields(56).Text = adoElev.Recordset!ess_lb2

End If

If IsNull(adoElev.Recordset!ess_abssem1t) Then

txtFields(55).Text = 0

Else

txtFields(55).Text = adoElev.Recordset!ess_abssem1t

End If

If IsNull(adoElev.Recordset!ess_abssem1m) Then

txtFields(54).Text = 0

Else

txtFields(54).Text = adoElev.Recordset!ess_abssem1m

End If

If IsNull(adoElev.Recordset!ess_abssem1n) Then

txtFields(53).Text = 0

Else

txtFields(53).Text = adoElev.Recordset!ess_abssem1n

End If

If IsNull(adoElev.Recordset!ess_abssem2t) Then

txtFields(52).Text = 0

Else

txtFields(52).Text = adoElev.Recordset!ess_abssem2t

End If

If IsNull(adoElev.Recordset!ess_abssem2m) Then

txtFields(51).Text = 0

Else

txtFields(51).Text = adoElev.Recordset!ess_abssem2m

End If

If IsNull(adoElev.Recordset!ess_abssem2n) Then

txtFields(50).Text = 0

Else

txtFields(50).Text = adoElev.Recordset!ess_abssem2n

End If

If IsNull(adoElev.Recordset!ess_absant) Then

txtFields(49).Text = 0

Else

txtFields(49) = adoElev.Recordset!ess_absant

End If

If IsNull(adoElev.Recordset!ess_absanm) Then

txtFields(48).Text = 0

Else

txtFields(48).Text = adoElev.Recordset!ess_absanm

End If

If IsNull(adoElev.Recordset!ess_absann) Then

txtFields(47).Text = 0

Else

txtFields(47).Text = adoElev.Recordset!ess_absann

End If

If IsNull(adoElev.Recordset!ess_sem1corig) Then

txtFields(41).Text = ""

Else

txtFields(41) = adoElev.Recordset!ess_sem1corig

End If

If IsNull(adoElev.Recordset!ess_sem1sitn) Then

Text1.Text = ""

Else

Text1.Text = adoElev.Recordset!ess_sem1sitn

End If

If IsNull(adoElev.Recordset!ess_sem2corig) Then

txtFields(39).Text = ""

Else

txtFields(39).Text = adoElev.Recordset!ess_sem2corig

End If

If IsNull(adoElev.Recordset!ess_sem2sitn) Then

Text2.Text = ""

Else

Text2.Text = adoElev.Recordset!ess_sem2sitn

End If

If IsNull(adoElev.Recordset!ess_iuncorig) Then

txtFields(37).Text = ""

Else

txtFields(37).Text = adoElev.Recordset!ess_iuncorig

End If

If IsNull(adoElev.Recordset!ess_iunsitn) Then

Text3.Text = ""

Else

Text3.Text = adoElev.Recordset!ess_iunsitn

End If

If IsNull(adoElev.Recordset!ess_augrepetent) Then

txtFields(69).Text = ""

Else

txtFields(69).Text = adoElev.Recordset!ess_augrepetent

End If

If adoElev.Recordset!cls_id >= 33 Then

If IsNull(adoElev.Recordset!ess_notap1) Then

txtFields(46).Text = 0

Else

txtFields(46).Text = adoElev.Recordset!ess_notap1

End If

If IsNull(adoElev.Recordset!ess_notap2) Then

txtFields(45).Text = 0

Else

txtFields(45).Text = adoElev.Recordset!ess_notap2

End If

If IsNull(adoElev.Recordset!ess_notapan) Then

txtFields(44).Text = 0

Else

txtFields(44).Text = adoElev.Recordset!ess_notapan

End If

If IsNull(adoElev.Recordset!ess_sem1promovat) Then

txtFields(40).Text = 0

Else

txtFields(40) = adoElev.Recordset!ess_sem1promovat

End If

If IsNull(adoElev.Recordset!ess_sem2promovat) Then

txtFields(38).Text = 0

Else

txtFields(38).Text = adoElev.Recordset!ess_sem2promovat

End If

If IsNull(adoElev.Recordset!ess_iunpromovat) Then

txtFields(36).Text = 0

Else

txtFields(36) = adoElev.Recordset!ess_iunpromovat

End If

If IsNull(adoElev.Recordset!ess_augpromovat) Then

txtFields(67).Text = 0

Else

txtFields(67).Text = adoElev.Recordset!ess_augpromovat

End If

ElseIf adoElev.Recordset!cls_id < 32 Then

If IsNull(adoElev.Recordset!ess_notap14) Then

txtFields(46).Text = ""

Else

txtFields(46).Text = adoElev.Recordset!ess_notap14

End If

If IsNull(adoElev.Recordset!ess_notap24) Then

txtFields(45).Text = ""

Else

txtFields(45).Text = adoElev.Recordset!ess_notap24

End If

If IsNull(adoElev.Recordset!ess_notapan4) Then

txtFields(44).Text = ""

Else

txtFields(44).Text = adoElev.Recordset!ess_notapan4

End If

If IsNull(adoElev.Recordset!ess_sem1promovat4) Then

txtFields(40).Text = ""

Else

txtFields(40).Text = adoElev.Recordset!ess_sem1promovat4

End If

If IsNull(adoElev.Recordset!ess_sem2promovat4) Then

txtFields(38).Text = ""

Else

txtFields(38).Text = adoElev.Recordset!ess_sem2promovat4

End If

If IsNull(adoElev.Recordset!ess_iunpromovat4) Then

txtFields(36).Text = ""

Else

txtFields(36).Text = adoElev.Recordset!ess_iunpromovat4

End If

If IsNull(adoElev.Recordset!ess_augpromovat4) Then

txtFields(67).Text = ""

Else

txtFields(67).Text = adoElev.Recordset!ess_augpromovat4

End If

End If

If IsNull(adoElev.Recordset!ess_abateri) Then

txtFields(43).Text = ""

Else

txtFields(43).Text = adoElev.Recordset!ess_abateri

End If

If IsNull(adoElev.Recordset!ess_dirig) Then

txtFields(42).Text = ""

Else

txtFields(42).Text = adoElev.Recordset!ess_dirig

End If

End Sub

Private Sub UserControl_Initialize()

SSTab1.Tab = 0

X1 = Data2.Recordset("ess_abssem1t").Value

Y1 = Data2.Recordset("ess_abssem1m").Value

X2 = Data2.Recordset("ess_abssem2t").Value

Y2 = Data2.Recordset("ess_abssem2m").Value

x3 = Data2.Recordset("ess_notap1").Value

y3 = Data2.Recordset("ess_notap2").Value

v1 = X1 – Y1

v2 = X2 – Y2

v3 = X1 + X2

v4 = Y1 + Y2

End Sub

UC_Prezent_Viz_clasa

Public aaa As String

Private Sub cmdPrint1_Click()

DRP_prezent_elevi.Show

End Sub

Private Sub cmdPrint2_Click()

DRP_Prezent_edp.Show

End Sub

Private Sub dbcVizClasa_Change()

cmdPrint1.Enabled = True

cmdPrint2.Enabled = True

Dim s As String

Dim f As Integer

Dim m As Integer

Dim promovat1 As Double

Dim promovat2 As Double

Dim purtare1 As Double

Dim purtare2 As Double

Dim sem11 As Integer

Dim sem12 As Integer

Dim sem13 As Integer

sem11 = 0

sem12 = 0

sem13 = 0

Dim sem21 As Integer

Dim sem22 As Integer

Dim sem23 As Integer

sem21 = 0

sem22 = 0

sem23 = 0

Dim notap11 As Integer

Dim notap12 As Integer

Dim notap13 As Integer

notap11 = 0

notap12 = 0

nota13 = 0

Dim notap21 As Integer

Dim notap22 As Integer

Dim notap23 As Integer

notap21 = 0

notap22 = 0

notap23 = 0

Dim abst1 As Integer

Dim absm1 As Integer

Dim a1t As Integer

Dim a1m As Integer

Dim a1n As String

Dim abst2 As Integer

Dim absm2 As Integer

Dim a2t As Integer

Dim a2m As Integer

Dim a2n As Integer

Dim aant As Integer

Dim aanm As Integer

Dim aann As Integer

Dim promovat14 As String

Dim promovat24 As String

Dim purtare14 As String

Dim purtare24 As String

Dim sem114 As Integer

Dim sem124 As Integer

Dim sem134 As Integer

Dim sem144 As Integer

sem114 = 0

sem124 = 0

sem134 = 0

sem144 = 0

Dim sem214 As Integer

Dim sem224 As Integer

Dim sem234 As Integer

Dim sem244 As Integer

sem214 = 0

sem224 = 0

sem234 = 0

sem244 = 0

Dim notap114 As Integer

Dim notap124 As Integer

Dim notap134 As Integer

Dim notap144 As Integer

notap114 = 0

notap124 = 0

notap134 = 0

notap144 = 0

Dim notap214 As Integer

Dim notap224 As Integer

Dim notap234 As Integer

Dim notap244 As Integer

notap214 = 0

notap224 = 0

notap234 = 0

notap244 = 0

f = 0

m = 0

adoClasa.Recordset.Find "cls_id = " & dbcVizClasa.BoundText, , , adBookmarkFirst

aaa = "SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip " & _

"FROM clasa, elev_dp, elev_sitsc " & _

"WHERE edp_id = ess_id AND " & _

"edp_nr_elev = ess_edp_nr_elev AND " & _

"edp_cls_nr = cls_nr AND " & _

"cls_id = " & adoClasa.Recordset!cls_id & _

" ORDER BY edp_nume"

DataEnvironment2.Commands.Item(1).CommandText = aaa

DataEnvironment6.Commands.Item(1).CommandText = aaa

s = "SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip " & _

"FROM clasa, elev_dp, elev_sitsc " & _

"WHERE edp_id = ess_id AND " & _

"edp_cls_nr = cls_nr AND " & _

"cls_id = " & adoClasa.Recordset!cls_id & _

" ORDER BY edp_nume"

adoVizClasa.RecordSource = s

adoVizClasa.Refresh

Dim s1 As String

s1 = "SELECT * " & _

"FROM prof, clasa " & _

"WHERE p_cls = cls_nr " & _

"AND cls_id =" & adoClasa.Recordset!cls_id & _

" ORDER BY cls_nr"

adoProf.RecordSource = s1

adoProf.Refresh

Dim s2 As String

s2 = "SELECT *, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip " & _

"FROM clasa, elev_dp, elev_sitsc " & _

"WHERE edp_id = ess_id AND " & _

"edp_cls_nr = cls_nr AND " & _

"ess_abateri <> '' AND " & _

"cls_id = " & adoClasa.Recordset!cls_id & _

" ORDER BY edp_nume"

adoAbateri.RecordSource = s2

adoAbateri.Refresh

Dim sa3 As String

sa3 = "SELECT *, edp_nr_elev, edp_nume & ' ' & edp_it & ' ' & edp_pren AS edp_numeip, ess_sem1corig, ess_sem2corig, ess_iuncorig " & _

"FROM clasa, elev_dp, elev_sitsc " & _

"WHERE edp_id = ess_id AND " & _

"edp_cls_nr = cls_nr AND " & _

"( ess_sem1corig <> '' OR ess_sem2corig <> '' OR ess_iuncorig <> '') AND " & _

"cls_id = " & adoClasa.Recordset!cls_id & _

" ORDER BY edp_nume"

adoCorig.RecordSource = sa3

adoCorig.Refresh

Do Until adoVizClasa.Recordset.AbsolutePosition <= adPosEOF

If adoVizClasa.Recordset("edp_sex").Value = "F" Then

f = f + 1

ElseIf adoVizClasa.Recordset("edp_sex").Value = "M" Then

m = m + 1

End If

'On Error Resume Next

If IsNull(adoVizClasa.Recordset.Fields("ess_abssem1t")) Then

abst1 = 0

Else

abst1 = adoVizClasa.Recordset.Fields("ess_abssem1t").Value

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_abssem1m")) Then

absm1 = 0

Else

absm1 = adoVizClasa.Recordset.Fields("ess_abssem1m").Value

End If

'MsgBox "absm1", , absm1

If IsNull(adoVizClasa.Recordset.Fields("ess_abssem2t")) Then

abst2 = 0

Else

abst2 = adoVizClasa.Recordset.Fields("ess_abssem2t").Value

End If

'MsgBox "abst2", , abst2

If IsNull(adoVizClasa.Recordset.Fields("ess_abssem2m")) Then

absm2 = 0

Else

absm2 = adoVizClasa.Recordset.Fields("ess_abssem2m").Value

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_dirig").Value) Then

Text26.Text = ""

Else

Text26.Text = adoVizClasa.Recordset.Fields("ess_dirig").Value

End If

If adoClasa.Recordset("cls_id") >= 33 Then

Frame1.Visible = True

Frame3.Visible = True

Frame2.Visible = False

Frame4.Visible = False

DataGrid3.Visible = True

Label2.Visible = True

Label2.Caption = "Diriginte:"

If IsNull(adoVizClasa.Recordset.Fields("ess_sem1promovat")) Then

promovat1 = 0

Else

promovat1 = adoVizClasa.Recordset.Fields("ess_sem1promovat").Value

End If

If promovat1 >= 5 And promovat1 <= 6.99 Then

sem11 = sem11 + 1

ElseIf promovat1 >= 7 And promovat1 <= 8.99 Then

sem12 = sem12 + 1

ElseIf promovat1 >= 9 And promovat1 <= 10 Then

sem13 = sem13 + 1

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_sem2promovat")) Then

promovat2 = 0

Else

promovat2 = adoVizClasa.Recordset.Fields("ess_sem2promovat").Value

End If

If promovat2 >= 5 And promovat2 <= 6.99 Then

sem21 = sem21 + 1

ElseIf promovat2 >= 7 And promovat2 <= 8.99 Then

sem22 = sem22 + 1

ElseIf promovat2 >= 9 And promovat2 <= 10 Then

sem23 = sem23 + 1

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_notap1").Value) Then

purtare1 = 0

Else

purtare1 = adoVizClasa.Recordset.Fields("ess_notap1").Value

End If

If purtare1 >= 9 And purtare1 <= 10 Then

notap11 = notap11 + 1

ElseIf purtare1 >= 7 And purtare1 <= 8 Then

notap12 = notap12 + 1

ElseIf purtare1 < 7 Then

notap13 = notap13 + 1

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_notap2")) Then

purtare2 = 0

Else

purtare2 = adoVizClasa.Recordset.Fields("ess_notap2").Value

End If

If purtare2 >= 9 And purtare2 <= 10 Then

notap21 = notap21 + 1

ElseIf purtare2 >= 7 And purtare2 <= 8 Then

notap22 = notap22 + 1

ElseIf purtare2 < 7 Then

notap23 = notap23 + 1

End If

Else

Frame1.Visible = False

Frame3.Visible = False

Frame2.Visible = True

Frame4.Visible = True

DataGrid3.Visible = False

Label2.Visible = True

Label2.Caption = "Invatator:"

If IsNull(adoVizClasa.Recordset.Fields("ess_sem1promovat4").Value) Then

promovat14 = ""

Else

promovat14 = adoVizClasa.Recordset.Fields("ess_sem1promovat4").Value

End If

If promovat14 = "FB" Then

sem114 = sem114 + 1

ElseIf promovat14 = "B" Then

sem124 = sem124 + 1

ElseIf promovat14 = "SUF" Then

sem134 = sem134 + 1

ElseIf promovat14 = "INSUF" Then

sem144 = sem144 + 1

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_sem2promovat4").Value) Then

promovat24 = ""

Else

promovat24 = adoVizClasa.Recordset.Fields("ess_sem2promovat4").Value

End If

If promovat24 = "FB" Then

sem214 = sem214 + 1

ElseIf promovat24 = "B" Then

sem124 = sem124 + 1

ElseIf promovat24 = "SUF" Then

sem234 = sem234 + 1

ElseIf promovat24 = "INSUF" Then

sem244 = sem244 + 1

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_notap14").Value) Then

purtare14 = ""

Else

purtare14 = adoVizClasa.Recordset.Fields("ess_notap14").Value

End If

If purtare14 = "FB" Then

notap114 = notap114 + 1

ElseIf purtare14 = "B" Then

notap124 = notap124 + 1

ElseIf purtare14 = "SUF" Then

notap134 = notap134 + 1

ElseIf purtare14 = "INSUF" Then

notap144 = notap144 + 1

End If

If IsNull(adoVizClasa.Recordset.Fields("ess_notap24").Value) Then

purtare24 = ""

Else

purtare24 = adoVizClasa.Recordset.Fields("ess_notap24").Value

End If

If purtare24 = "FB" Then

notap214 = notap214 + 1

ElseIf purtare24 = "B" Then

notap224 = notap224 + 1

ElseIf purtare24 = "SUF" Then

notap234 = notap234 + 1

ElseIf purtare24 = "INSUF" Then

notap244 = notap244 + 1

End If

End If

adoVizClasa.Recordset.MoveNext

a1t = a1t + abst1

a1m = a1m + absm1

a1n = a1t – a1m

a2t = a2t + abst2

a2m = a2m + absm2

a2n = a2t – a2m

aant = a1t + a2t

aanm = a1m + a2m

aann = a1n + a2n

Loop

Text69.Text = a1t

Text70.Text = a1m

Text71.Text = a1n

Text72.Text = a2t

Text73.Text = a2m

Text74.Text = a2n

Text75.Text = aant

Text76.Text = aanm

Text77.Text = aann

Text51.Text = sem11

Text52.Text = sem12

Text53.Text = sem13

Text54.Text = sem21

Text55.Text = sem22

Text56.Text = sem23

Text57.Text = sem11 + sem21

Text58.Text = sem12 + sem22

Text59.Text = sem13 + sem23

Text60.Text = notap11

Text61.Text = notap12

Text62.Text = notap13

Text63.Text = notap21

Text64.Text = notap22

Text65.Text = notap23

Text66.Text = notap11 + notap21

Text67.Text = notap12 + notap22

Text68.Text = notap13 + notap23

Text25(0).Text = f + m

Text25(1).Text = f

Text25(2).Text = m

Text16.Text = sem114

Text13.Text = sem124

Text10.Text = sem134

Text7.Text = sem144

Text17.Text = sem214

Text14.Text = sem224

Text11.Text = sem234

Text8.Text = sem244

Text18.Text = sem114 + sem214

Text15.Text = sem124 + sem224

Text12.Text = sem134 + sem234

Text9.Text = sem144 + sem244

Text24.Text = notap114

Text3.Text = notap124

Text23.Text = notap134

Text4.Text = notap144

Text22.Text = notap214

Text2.Text = notap224

Text21.Text = notap234

Text5.Text = notap244

Text20.Text = notap114 + notap214

Text1.Text = notap124 + notap224

Text19.Text = notap134 + notap234

Text6.Text = notap144 + notap244

Dim Col1 As Column

Dim Col2 As Column

Set Col1 = DataGrid1.Columns(0)

Set Col2 = DataGrid1.Columns(1)

Col1.Caption = "Nr.crt."

Col2.Caption = "Numele si prenumele"

For i = 0 To adoVizClasa.Recordset.RecordCount

With Col1

.Width = 500

.DataField = i + 1

'adoVizClasa.Recordset.Fields("edp_nr_elev").Name

End With

With Col2

.Width = 3000

.DataField = adoVizClasa.Recordset.Fields("edp_numeip").Name

End With

Next

DataGrid1.ReBind

Dim C1 As Column

Dim C2 As Column

Set C1 = DataGrid2.Columns(0)

Set C2 = DataGrid2.Columns(1)

C1.Caption = "Numele si prenumele"

C2.Caption = "Tipul abaterii"

With C1

.Width = 2000

.DataField = adoVizClasa.Recordset.Fields("edp_numeip").Name

End With

With C2

.Width = 3000

.DataField = adoVizClasa.Recordset.Fields("ess_abateri").Name

End With

DataGrid2.ReBind

Dim Co1 As Column

Dim Co2 As Column

Set Co1 = DataGrid3.Columns(0)

Set Co2 = DataGrid3.Columns(1)

Co1.Caption = "Numele si prenumele"

Co2.Caption = "Specialitatea"

For i = 0 To adoProf.Recordset.RecordCount

With Co1

.Width = 2500

.DataField = adoProf.Recordset.Fields("p_nume").Name

End With

With Co2

.Width = 2000

.DataField = adoProf.Recordset.Fields("p_specialitatea").Name

End With

Next

DataGrid3.ReBind

Dim Coloana1 As Column

Dim Coloana2 As Column

Dim Coloana3 As Column

Dim Coloana4 As Column

Dim Coloana5 As Column

Set Coloana1 = DataGrid4.Columns(0)

Set Coloana2 = DataGrid4.Columns(1)

Set Coloana3 = DataGrid4.Columns(2)

Set Coloana4 = DataGrid4.Columns(3)

Set Coloana5 = DataGrid4.Columns(4)

Coloana1.Caption = "nr.crt."

Coloana2.Caption = "Numele si prenumele"

Coloana3.Caption = "sem I corigent la"

Coloana4.Caption = "sem II corigent la"

Coloana5.Caption = "iunie corigent la"

For i = 0 To adoCorig.Recordset.RecordCount

With Coloana1

.Width = 500

.DataField = adoCorig.Recordset.Fields("edp_nr_elev").Name

End With

With Coloana2

.Width = 2500

.DataField = adoCorig.Recordset.Fields("edp_numeip").Name

End With

With Coloana3

.Width = 4000

.DataField = adoCorig.Recordset.Fields("ess_sem1corig").Name

End With

With Coloana4

.Width = 4000

.DataField = adoCorig.Recordset.Fields("ess_sem2corig").Name

End With

With Coloana5

.Width = 4000

.DataField = adoCorig.Recordset.Fields("ess_iuncorig").Name

End With

Next

DataGrid4.ReBind

End Sub

Private Sub UserControl_Initialize()

cmdPrint1.Enabled = False

cmdPrint2.Enabled = False

Dim Col1 As Column

Dim Col2 As Column

Set Col1 = DataGrid1.Columns(0)

Set Col2 = DataGrid1.Columns(1)

Col1.Caption = "Nr.crt."

Col2.Caption = "Numele si prenumele"

'For i = 0 To adoVizClasa.Recordset.RecordCount

With Col1

.Width = 500

.DataField = ""

'adoVizClasa.Recordset.Fields("edp_nr_elev").Name

End With

With Col2

.Width = 3000

.DataField = ""

'adoVizClasa.Recordset.Fields("edp_numeip").Name

End With

'Next

DataGrid1.ReBind

Dim C1 As Column

Dim C2 As Column

Set C1 = DataGrid2.Columns(0)

Set C2 = DataGrid2.Columns(1)

C1.Caption = "Numele si prenumele"

C2.Caption = "Tipul abaterii"

'Do Until adoVizClasa.Recordset.Fields("ess_abateri") = ""

With C1

.Width = 2000

.DataField = ""

'adoVizClasa.Recordset.Fields("edp_numeip").Name

End With

With C2

.Width = 3000

.DataField = ""

'adoVizClasa.Recordset.Fields("ess_abateri").Name

End With

DataGrid2.ReBind

Dim Co1 As Column

Dim Co2 As Column

Set Co1 = DataGrid3.Columns(0)

Set Co2 = DataGrid3.Columns(1)

Co1.Caption = "Numele si prenumele"

Co2.Caption = "Specialitatea"

With Co1

.Width = 2500

.DataField = ""

'adoProf.Recordset.Fields("p_nume").Name

End With

With Co2

.Width = 2000

.DataField = ""

'adoProf.Recordset.Fields("p_specialitatea").Name

End With

DataGrid3.ReBind

Dim Coloana1 As Column

Dim Coloana2 As Column

Dim Coloana3 As Column

Dim Coloana4 As Column

Dim Coloana5 As Column

Set Coloana1 = DataGrid4.Columns(0)

Set Coloana2 = DataGrid4.Columns(1)

Set Coloana3 = DataGrid4.Columns(2)

Set Coloana4 = DataGrid4.Columns(3)

Set Coloana5 = DataGrid4.Columns(4)

Coloana1.Caption = "nr.crt."

Coloana2.Caption = "Numele si prenumele"

Coloana3.Caption = "sem I corigent la"

Coloana4.Caption = "sem II corigent la"

Coloana5.Caption = "iunie corigent la"

With Coloana1

.Width = 500

.DataField = ""

End With

With Coloana2

.Width = 2500

.DataField = ""

End With

With Coloana3

.Width = 4000

.DataField = ""

End With

With Coloana4

.Width = 4000

.DataField = ""

End With

With Coloana5

.Width = 4000

.DataField = ""

End With

DataGrid4.ReBind

End Sub

UC_Prezent_Edit_Elevi

Dim ord_scoala As Integer

Dim ord_cls As Integer

Dim v1 As Integer

Dim v2 As Integer

Dim v3 As Integer

Dim v4 As Integer

Dim v5 As Integer

Private Sub adoEditElev_EndOfRecordset(fMoreData As Boolean, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

Screen.MousePointer = vbDefault

On Error Resume Next

adoEditElev.Caption = "Record: " & (adoEditElev.Recordset.AbsolutePosition + 1)

'adoEditElev.Caption = "Record: " & (adoEditElev.Recordset.RecordCount * (adoEditElev.Recordset.PercentPosition * 0.01)) + 1

End Sub

Private Sub adoEditElev_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean)

MsgBox "Data error event hit err:" & Error$(DataErr)

Response = 0 'throw away the error

End Sub

Private Sub adoEditElev_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

adoEditElev.Caption = "Record: " & (adoEditElev.Recordset.AbsolutePosition)

End Sub

Private Sub cmdAdauga_Click()

cmdSalveaza.Enabled = True

cmdInchide.Enabled = True

cmdSterge.Enabled = False

ord_cls = txtFields(31).Text

MsgBox "nr ordine clasa era:", , ord_cls

MsgBox "nr ordine scoala era:", , ord_scoala

On Error Resume Next

Combo2.Visible = True

Combo1(6).Visible = True

Combo3(2).Visible = True

Combo3(3).Visible = True

n_cls = adoEditElev.Recordset.RecordCount

ord_cls = n_cls + 1

ord_scoala = ord_scoala + 1

adoEditElev.Recordset.AddNew

txtFields(31).Text = ord_cls

txtFields(32).Text = ord_cls

txtFields(7).Text = ord_scoala

txtFields(64).Text = ord_scoala

txtFields(65).Text = ord_scoala

Dim clasa As String

clasa = dbcClasa.Text

txtFields(9).Text = clasa

txtFields(62).Text = clasa

txtFields(10).SetFocus

'txtFields(8).Text = "01.09.2000"

'txtFields(63).Text = "01.09.2000"

End Sub

Private Sub cmdInchide_Click()

n_cls = adoEditElev.Recordset.RecordCount

adoEditElev.Recordset.MoveFirst

For i = 1 To n_cls

If i = n_cls Then

adoEditElev.Recordset.Fields("edp_nr_elev").Value = i

adoEditElev.Recordset.Fields("ess_edp_nr_elev").Value = i

adoEditElev.Recordset.MoveLast

' MsgBox "", , "gata !"

Else

adoEditElev.Recordset.Fields("edp_nr_elev").Value = i

adoEditElev.Recordset.Fields("ess_edp_nr_elev").Value = i

adoEditElev.Recordset.MoveNext

End If

Next

Prezent.UC_Prezent_Edit_Elevi1.Visible = False

End Sub

Private Sub cmdSalveaza_Click()

adoEditElev.Recordset.Update

On Error Resume Next

MsgBox "Salvare reusita", , "Operatiune reusita"

adoEditElev.Recordset.Bookmark = adoEditElev.Recordset.AbsolutePosition + 1

End Sub

Private Sub cmdSterge_Click()

cmdSalveaza.Enabled = True

cmdInchide.Enabled = True

cmdAdauga.Enabled = False

Dim edpid As Long

Dim cls As String

Dim nr_elev As Long

Dim nume As String

Dim it As String

Dim pren As String

Dim varsta As Integer

Dim sex As String

Dim datan As Date

Dim locn As String

Dim judn As String

Dim domloc As String

Dim domjud As String

Dim domstr As String

Dim domnr As String

Dim dombl As String

Dim domap As String

Dim domtel As String

Dim nat As String

Dim mnume As String

Dim mpren As String

Dim mlocm As String

Dim mfunct As String

Dim mtel As String

Dim msust As String

Dim tnume As String

Dim tpren As String

Dim tlocm As String

Dim tfunct As String

Dim ttel As String

Dim tsust As String

Dim aserie As String

Dim anr As Long

Dim atitular As String

Dim abeneficiar As String

Dim aimputernicit As String

Dim essid As Long

Dim essclsnr As String

Dim essnrelev As Long

Dim venit As String

Dim plecat As String

Dim regnr As Integer

Dim regpag As Integer

Dim lb1 As String

Dim lb2 As String

Dim abssem1t As Integer

Dim abssem1m As Integer

Dim abssem1n As Integer

Dim abssem2t As Integer

Dim abssem2m As Integer

Dim abssem2n As Integer

Dim absant As Integer

Dim absanm As Integer

Dim absann As Integer

Dim notap1 As Double

Dim notap2 As Double

Dim notapan As Double

Dim notap14 As String

Dim notap24 As String

Dim notapan4 As String

Dim abateri As String

Dim dirig As String

Dim sem1corig As String

Dim sem1promovat As String

Dim sem1promovat4 As String

Dim sem1sitn As String

Dim sem2corig As String

Dim sem2promovat As Double

Dim sem2promovat4 As String

Dim sem2sitn As String

Dim iuncorig As String

Dim iunpromovat As Double

Dim iunpromovat4 As String

Dim iunsitn As String

Dim augpromovat As Double

Dim augpromovat4 As String

Dim augrepetent As Boolean

If MsgBox("Chiar vrei sa-l stergi?", vbYesNo + vbDefaultButton2 + vbQuestion, gsDialogTitle) = vbYes Then

ord_scoala = adoEditElev.Recordset.Fields("edp_id").Value

ord_cls = adoEditElev.Recordset.Fields("edp_nr_elev").Value

adoEditElev.Recordset.Fields("edp_sters").Value = "sters"

edpid = adoEditElev.Recordset.Fields("edp_id").Value

cls = adoEditElev.Recordset.Fields("edp_cls_nr").Value

nr_elev = adoEditElev.Recordset.Fields("edp_nr_elev").Value

nume = adoEditElev.Recordset.Fields("edp_nume").Value

it = adoEditElev.Recordset.Fields("edp_it").Value

pren = adoEditElev.Recordset.Fields("edp_pren").Value

varsta = adoEditElev.Recordset.Fields("edp_varsta").Value

sex = adoEditElev.Recordset.Fields("edp_sex").Value

datan = adoEditElev.Recordset.Fields("edp_datan").Value

If IsNull(adoEditElev.Recordset.Fields("edp_locn").Value) Then

locn = ""

Else

locn = adoEditElev.Recordset.Fields("edp_locn").Value

End If

If IsNull(adoEditElev.Recordset.Fields("edp_judn").Value) Then

judn = ""

Else

judn = adoEditElev.Recordset.Fields("edp_judn").Value

End If

If IsNull(adoEditElev.Recordset.Fields("edp_domloc").Value) Then

domloc = ""

Else

domloc = adoEditElev.Recordset.Fields("edp_domloc").Value

End If

If IsNull(adoEditElev.Recordset.Fields("edp_domjud").Value) Then

domjud = ""

Else

domjud = adoEditElev.Recordset.Fields("edp_domjud").Value

End If

If IsNull(adoEditElev.Recordset.Fields("edp_domstr").Value) Then

domstr = ""

Else

domstr = adoEditElev.Recordset.Fields("edp_domstr").Value

End If

If IsNull(adoEditElev.Recordset.Fields("edp_domnr").Value) Then

domnr = ""

Else

domnr = adoEditElev.Recordset.Fields("edp_domnr").Value

End If

If IsNull(adoEditElev.Recordset!edp_dombl) Then

dombl = ""

Else

dombl = adoEditElev.Recordset.Fields("edp_dombl").Value

End If

If IsNull(adoEditElev.Recordset!edp_domap) Then

domap = ""

Else

domap = adoEditElev.Recordset.Fields("edp_domap").Value

End If

If IsNull(adoEditElev.Recordset!edp_domtel) Then

domtel = ""

Else

domtel = adoEditElev.Recordset.Fields("edp_domtel").Value

End If

If IsNull(adoEditElev.Recordset!edp_nat) Then

nat = ""

Else

nat = adoEditElev.Recordset.Fields("edp_nat").Value

End If

If IsNull(adoEditElev.Recordset!edp_mnume) Then

mnume = ""

Else

mnume = adoEditElev.Recordset.Fields("edp_mnume").Value

End If

If IsNull(adoEditElev.Recordset!edp_mpren) Then

mpren = ""

Else

mpren = adoEditElev.Recordset.Fields("edp_mpren").Value

End If

If IsNull(adoEditElev.Recordset!edp_mlocm) Then

mlocm = ""

Else

mlocm = adoEditElev.Recordset.Fields("edp_mlocm").Value

End If

If IsNull(adoEditElev.Recordset!edp_mfunct) Then

mfunct = ""

Else

mfunct = adoEditElev.Recordset.Fields("edp_mfunct").Value

End If

If IsNull(adoEditElev.Recordset!edp_mtel) Then

mtel = ""

Else

mtel = adoEditElev.Recordset.Fields("edp_mtel").Value

End If

If IsNull(adoEditElev.Recordset!edp_msust) Then

msust = ""

Else

msust = adoEditElev.Recordset.Fields("edp_msust").Value

End If

If IsNull(adoEditElev.Recordset!edp_tnume) Then

tnume = ""

Else

tnume = adoEditElev.Recordset.Fields("edp_tnume").Value

End If

If IsNull(adoEditElev.Recordset!edp_tpren) Then

tpren = ""

Else

tpren = adoEditElev.Recordset.Fields("edp_tpren").Value

End If

If IsNull(adoEditElev.Recordset!edp_tlocm) Then

tlocm = ""

Else

tlocm = adoEditElev.Recordset.Fields("edp_tlocm").Value

End If

If IsNull(adoEditElev.Recordset!edp_tfunct) Then

tfunct = ""

Else

tfunct = adoEditElev.Recordset.Fields("edp_tfunct").Value

End If

If IsNull(adoEditElev.Recordset!edp_ttel) Then

ttel = ""

Else

ttel = adoEditElev.Recordset.Fields("edp_ttel").Value

End If

If IsNull(adoEditElev.Recordset!edp_tsust) Then

tsust = ""

Else

tsust = adoEditElev.Recordset.Fields("edp_tsust").Value

End If

If IsNull(adoEditElev.Recordset!edp_aserie) Then

aserie = ""

Else

aserie = adoEditElev.Recordset.Fields("edp_aserie").Value

End If

If IsNull(adoEditElev.Recordset!edp_anr) Then

anr = ""

Else

anr = adoEditElev.Recordset.Fields("edp_anr").Value

End If

If IsNull(adoEditElev.Recordset!edp_atitular) Then

atitular = ""

Else

atitular = adoEditElev.Recordset.Fields("edp_atitular").Value

End If

If IsNull(adoEditElev.Recordset!edp_abeneficiar) Then

abeneficiar = ""

Else

abeneficiar = adoEditElev.Recordset.Fields("edp_abeneficiar").Value

End If

If IsNull(adoEditElev.Recordset!edp_aimputernicit) Then

aimputernicit = ""

Else

aimputernicit = adoEditElev.Recordset.Fields("edp_aimputernicit").Value

End If

essid = adoEditElev.Recordset.Fields("ess_id").Value

If IsNull(adoEditElev.Recordset!ess_cls_nr) Then

essclsnr = ""

Else

essclsnr = adoEditElev.Recordset.Fields("ess_cls_nr").Value

End If

If IsNull(adoEditElev.Recordset!ess_edp_nr_elev) Then

essnrelev = ""

Else

essnrelev = adoEditElev.Recordset.Fields("ess_edp_nr_elev").Value

End If

If IsNull(adoEditElev.Recordset!ess_venit) Then

venit = ""

Else

venit = adoEditElev.Recordset.Fields("ess_venit").Value

End If

If IsNull(adoEditElev.Recordset!ess_plecat) Then

plecat = ""

Else

plecat = adoEditElev.Recordset.Fields("ess_plecat").Value

End If

If IsNull(adoEditElev.Recordset!ess_regnr) Then

regnr = 0

Else

regnr = adoEditElev.Recordset.Fields("ess_regnr").Value

End If

If IsNull(adoEditElev.Recordset!ess_regpag) Then

regpag = 0

Else

regpag = adoEditElev.Recordset.Fields("ess_regpag").Value

End If

If IsNull(adoEditElev.Recordset!ess_lb1) Then

lb1 = ""

Else

lb1 = adoEditElev.Recordset.Fields("ess_lb1").Value

End If

If IsNull(adoEditElev.Recordset!ess_lb2) Then

lb2 = ""

Else

lb2 = adoEditElev.Recordset.Fields("ess_lb2").Value

End If

If IsNull(adoEditElev.Recordset!ess_abssem1t) Then

abssem1t = 0

Else

abssem1t = adoEditElev.Recordset.Fields("ess_abssem1t").Value

End If

If IsNull(adoEditElev.Recordset!ess_abssem1m) Then

abssem1m = 0

Else

abssem1m = adoEditElev.Recordset.Fields("ess_abssem1m").Value

End If

If IsNull(adoEditElev.Recordset!ess_abssem1n) Then

abssem1n = ""

Else

abssem1n = adoEditElev.Recordset.Fields("ess_abssem1n").Value

End If

If IsNull(adoEditElev.Recordset!ess_abssem2t) Then

abssem2t = 0

Else

abssem2t = adoEditElev.Recordset.Fields("ess_abssem2t").Value

End If

If IsNull(adoEditElev.Recordset!ess_abssem2m) Then

abssem2m = 0

Else

abssem2m = adoEditElev.Recordset.Fields("ess_abssem2m").Value

End If

If IsNull(adoEditElev.Recordset!ess_abssem2n) Then

abssem2n = 0

Else

abssem2n = adoEditElev.Recordset.Fields("ess_abssem2n").Value

End If

If IsNull(adoEditElev.Recordset!ess_absant) Then

absant = 0

Else

absant = adoEditElev.Recordset.Fields("ess_absant").Value

End If

If IsNull(adoEditElev.Recordset!ess_absanm) Then

absanm = 0

Else

absanm = adoEditElev.Recordset.Fields("ess_absanm").Value

End If

If IsNull(adoEditElev.Recordset!ess_absann) Then

absann = 0

Else

absann = adoEditElev.Recordset.Fields("ess_absann").Value

End If

If IsNull(adoEditElev.Recordset!ess_notap1) Then

notap1 = 0

Else

notap1 = adoEditElev.Recordset.Fields("ess_notap1").Value

End If

If IsNull(adoEditElev.Recordset!ess_notap2) Then

notap2 = 0

Else

notap2 = adoEditElev.Recordset.Fields("ess_notap2").Value

End If

If IsNull(adoEditElev.Recordset!ess_notapan) Then

notapan = 0

Else

notapan = adoEditElev.Recordset.Fields("ess_notapan").Value

End If

If IsNull(adoEditElev.Recordset!ess_notap14) Then

notap14 = ""

Else

notap14 = adoEditElev.Recordset.Fields("ess_notap14").Value

End If

If IsNull(adoEditElev.Recordset!ess_notap24) Then

notap24 = ""

Else

notap24 = adoEditElev.Recordset.Fields("ess_notap24").Value

End If

If IsNull(adoEditElev.Recordset!ess_notapan4) Then

notapan4 = ""

Else

notapan4 = adoEditElev.Recordset.Fields("ess_notapan4").Value

End If

If IsNull(adoEditElev.Recordset!ess_abateri) Then

abateri = ""

Else

abateri = adoEditElev.Recordset.Fields("ess_abateri").Value

End If

If IsNull(adoEditElev.Recordset!ess_dirig) Then

dirig = ""

Else

dirig = adoEditElev.Recordset.Fields("ess_dirig").Value

End If

If IsNull(adoEditElev.Recordset!ess_sem1corig) Then

sem1corig = ""

Else

sem1corig = adoEditElev.Recordset.Fields("ess_sem1corig").Value

End If

If IsNull(adoEditElev.Recordset!ess_sem1promovat) Then

sem1promovat = 0

Else

sem1promovat = adoEditElev.Recordset.Fields("ess_sem1promovat").Value

End If

If IsNull(adoEditElev.Recordset!ess_sem1promovat4) Then

sem1promovat4 = ""

Else

sem1promovat4 = adoEditElev.Recordset.Fields("ess_sem1promovat4").Value

End If

If IsNull(adoEditElev.Recordset!ess_sem1sitn) Then

sem1sitn = ""

Else

sem1sitn = adoEditElev.Recordset.Fields("ess_sem1sitn").Value

End If

If IsNull(adoEditElev.Recordset!ess_sem2corig) Then

sem2corig = ""

Else

sem2corig = adoEditElev.Recordset.Fields("ess_sem2corig").Value

End If

If IsNull(adoEditElev.Recordset!ess_sem2promovat) Then

sem2promovat = 0

Else

sem2promovat = adoEditElev.Recordset.Fields("ess_sem2promovat").Value

End If

If IsNull(adoEditElev.Recordset!ess_sem2promovat4) Then

sem2promovat4 = ""

Else

sem2promovat4 = adoEditElev.Recordset.Fields("ess_sem2promovat4").Value

End If

If IsNull(adoEditElev.Recordset!ess_sem2sitn) Then

sem2sitn = ""

Else

sem2sitn = adoEditElev.Recordset.Fields("ess_sem2sitn").Value

End If

If IsNull(adoEditElev.Recordset!ess_iuncorig) Then

iuncorig = ""

Else

iuncorig = adoEditElev.Recordset.Fields("ess_iuncorig").Value

End If

If IsNull(adoEditElev.Recordset!ess_iunpromovat) Then

iunpromovat = 0

Else

iunpromovat = adoEditElev.Recordset.Fields("ess_iunpromovat").Value

End If

If IsNull(adoEditElev.Recordset!ess_iunpromovat4) Then

iunpromovat4 = ""

Else

iunpromovat4 = adoEditElev.Recordset.Fields("ess_iunpromovat4").Value

End If

If IsNull(adoEditElev.Recordset!ess_iunsitn) Then

iunsitn = ""

Else

iunsitn = adoEditElev.Recordset.Fields("ess_iunsitn").Value

End If

If IsNull(adoEditElev.Recordset!ess_augpromovat) Then

augpromovat = 0

Else

augpromovat = adoEditElev.Recordset.Fields("ess_augpromovat").Value

End If

If IsNull(adoEditElev.Recordset!ess_augpromovat4) Then

augpromovat4 = ""

Else

augpromovat4 = adoEditElev.Recordset.Fields("ess_augpromovat4").Value

End If

If IsNull(adoEditElev.Recordset!ess_augrepetent) Then

augrepetent = ""

Else

augrepetent = adoEditElev.Recordset.Fields("ess_augrepetent").Value

End If

adoEditElev.Recordset.Update

'adoEditElev.Recordset.Delete

Dim cnn1 As ADODB.Connection

Dim rstElevdp As ADODB.Recordset

Dim strCnn As String

strCnn = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-Sterg.mdb"

Set cnn1 = New ADODB.Connection

cnn1.Open strCnn

Set rstElevdp = New ADODB.Recordset

rstElevdp.CursorType = adOpenKeyset

rstElevdp.LockType = adLockOptimistic

rstElevdp.Open "elev_dp", cnn1, , , adCmdTable

With rstElevdp

.AddNew

!edp_id = edpid

!edp_cls_nr = cls_nr

!edp_nr_elev = nr_elev

!edp_nume = nume

!edp_it = it

!edp_pren = pren

!edp_varsta = varsta

!edp_sex = sex

!edp_datan = datan

!edp_locn = locn

!edp_judn = judn

!edp_domloc = domloc

!edp_domjud = domjud

!edp_judn = domstr

!edp_domnr = domnr

!edp_dombl = dombl

!edp_domap = domap

!edp_domtel = domtel

!edp_nat = nat

!edp_mnume = mnume

!edp_mpren = mpren

!edp_mlocm = mlocm

!edp_mfunct = mfunct

!edp_mtel = mtel

!edp_msust = msust

!edp_tnume = tnume

!edp_tpren = tpren

!edp_tlocm = tlocm

!edp_tfunct = tfunct

!edp_ttel = ttel

!edp_tsust = tsust

!edp_aserie = aserie

!edp_anr = anr

!edp_atitular = atitular

!edp_abeneficiar = abeneficiar

!edp_aimputernicit = aimputernicit

End With

rstElevdp.Update

rstElevdp.Close

cnn1.Close

Dim cnn2 As ADODB.Connection

Dim rstElevsitsc As ADODB.Recordset

Dim strCnn2 As String

strCnn2 = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Sanda\SCOALA-ver-1\BAZA\BAZA-Sterg.mdb"

Set cnn2 = New ADODB.Connection

cnn2.Open strCnn

Set rstElevsitsc = New ADODB.Recordset

rstElevsitsc.CursorType = adOpenKeyset

rstElevsitsc.LockType = adLockOptimistic

rstElevsitsc.Open "elev_sitsc", cnn2, , , adCmdTable

With rstElevsitsc

.AddNew

!ess_id = essid

!ess_cls_nr = essclsnr

!ess_edp_nr_elev = essnrelev

!ess_venit = venit

!ess_plecat = plecat

!ess_regnr = regnr

!ess_regpag = regpag

!ess_lb1 = lb1

!ess_lb2 = lb2

!ess_abssem1t = abssem1t

!ess_abssem1m = abssem1m

!ess_abssem1n = abssem1n

!ess_abssem2t = abssem2t

!ess_abssem2m = abssem2m

!ess_abssem2n = abssem2n

!ess_absant = absant

!ess_absanm = absanm

!ess_absann = absann

!ess_notap1 = notap1

!ess_notap2 = notap2

!ess_notapan = notapan

!ess_notap14 = notap14

!ess_notap24 = notap24

!ess_notapan4 = notapan4

!ess_abateri = abateri

!ess_dirig = dirig

!ess_sem1corig = sem1corig

!ess_sem1promovat = sem1promovat

!ess_sem1promovat4 = sem1promovat4

!ess_sem1sitn = sem1sitn

!ess_sem2corig = sem2corig

!ess_sem2promovat = sem2promovat

!ess_sem2promovat4 = sem2promovat4

!ess_sem2sitn = sem2sitn

!ess_iuncorig = iuncorig

!ess_iunpromovat = iunpromovat

!ess_iunpromovat4 = iunpromovat4

!ess_iunsitn = ess_iunsitn

!ess_augpromovat = augpromovat

!ess_augpromovat4 = augpromovat4

!ess_augrepetent = augrepetent

End With

rstElevsitsc.Update

rstElevsitsc.Close

cnn2.Close

Else

cmdAdauga.Enabled = True

End If

End Sub

Private Sub Combo1_LostFocus(Index As Integer)

Dim a As String

a = Combo1(6).Text

txtFields(14) = a

End Sub

Private Sub Combo3_LostFocus(Index As Integer)

Dim a1 As String

Dim a2 As String

Dim a3 As String

a1 = Combo3(2).Text

txtFields(5).Text = a1

a2 = Combo3(3).Text

txtFields(66).Text = a2

a3 = Combo2.Text

txtFields(72).Text = a3

End Sub

Private Sub dbcClasa_Change()

cmdAdauga.Enabled = True

cmdSterge.Enabled = True

cmdSalveaza.Enabled = True

adoEditElev.Enabled = True

Dim strQ As String

adoClasa.Recordset.Find "cls_id = " & dbcClasa.BoundText, , , adBookmarkFirst

strQ = "SELECT * " & _

"FROM elev_dp, elev_sitsc " & _

"WHERE edp_id = ess_id AND " & _

"edp_nr_elev = ess_edp_nr_elev AND " & _

"edp_cls_nr IN (" & _

"SELECT cls_nr FROM clasa WHERE cls_id = " & adoClasa.Recordset!cls_id & _

") " & _

" AND IsNull(edp_sters)= " & "true" & _

" ORDER BY edp_cls_nr, edp_nume, edp_it, edp_pren "

adoEditElev.RecordSource = strQ

adoEditElev.Refresh

If adoClasa.Recordset("cls_id").Value >= 33 Then

Frame5.Visible = True

Frame10.Visible = False

Else

Frame5.Visible = False

Frame10.Visible = True

End If

If adoEditElev.Recordset.RecordCount <> 0 Then

n_cls = adoEditElev.Recordset.RecordCount

adoEditElev.Recordset.MoveFirst

For i = 1 To n_cls

If i = n_cls Then

adoEditElev.Recordset.Fields("edp_nr_elev").Value = i

adoEditElev.Recordset.Fields("ess_edp_nr_elev").Value = i

adoEditElev.Recordset.MoveLast

Else

adoEditElev.Recordset.Fields("edp_nr_elev").Value = i

adoEditElev.Recordset.Fields("ess_edp_nr_elev").Value = i

adoEditElev.Recordset.MoveNext

End If

Next

Else

adoEditElev.Recordset.AddNew

Combo2.Visible = True

Combo1(6).Visible = True

Combo3(2).Visible = True

Combo3(3).Visible = True

a = dbcClasa.Text

txtFields(9).Text = a

txtFields(62).Text = a

txtFields(31).Text = 1

txtFields(32).Text = 1

ord_scoala = ord_scoala + 1

txtFields(7).Text = ord_scoala

txtFields(65).Text = ord_scoala

' MsgBox "", , "ok"

txtFields(10).SetFocus

End If

End Sub

Private Sub txtFields_LostFocus(Index As Integer)

If IsNull(adoEditElev.Recordset("ess_abssem1t")) Then X1 = 0

Else

X1 = adoEditElev.Recordset("ess_abssem1t").Value

End If

If IsNull(adoEditElev.Recordset("ess_abssem1m")) Then Y1 = 0

Else

Y1 = adoEditElev.Recordset("ess_abssem1m").Value

End If

If IsNull(adoEditElev.Recordset("ess_abssem2t")) Then X2 = 0

Else

X2 = adoEditElev.Recordset("ess_abssem2t").Value

End If

If IsNull(adoEditElev.Recordset("ess_abssem2m")) Then Y2 = 0

Else

Y2 = adoEditElev.Recordset("ess_abssem2m").Value

End If

If IsNull(adoEditElev.Recordset("ess_notap1")) Then x3 = 0

Else

x3 = adoEditElev.Recordset("ess_notap1").Value

End If

If IsNull(adoEditElev.Recordset("ess_notap2")) Then y3 = 0

Else

y3 = adoEditElev.Recordset("ess_notap2").Value

End If

If IsNull(adoEditElev.Recordset("ess_notap14")) Then x34 = 0

Else

x34 = adoEditElev.Recordset("ess_notap24").Value

End If

If IsNull(adoEditElev.Recordset("ess_notap24")) Then y34 = 0

Else

y34 = adoEditElev.Recordset("ess_notap14").Value

End If

Select Case txtFields(Index)

Case txtFields(54)

v1 = X1 – Y1

If IsNull(txtFields(55).Text) And IsNull(txtFields(54).Text) Then

txtFields(53).Text = 0

Else

txtFields(53).Text = v1

End If

Case txtFields(52)

Case txtFields(51)

v2 = X2 – Y2

v3 = X1 + X2

v4 = Y1 + Y2

If IsNull(txtFields(55).Text) And IsNull(txtFields(52).Text) Then

txtFields(49).Text = 0

Else

txtFields(49).Text = v3

End If

If IsNull(txtFields(52).Text) And IsNull(txtFields(51).Text) Then

txtFields(50).Text = 0

Else

txtFields(50).Text = v2

End If

If IsNull(txtFields(51).Text) And IsNull(txtFields(54).Text) Then

txtFields(48).Text = 0

Else

txtFields(48).Text = v4

End If

If IsNull(txtFields(49).Text) And IsNull(txtFields(48).Text) Then

txtFields(47).Text = 0

Else

txtFields(47).Text = v5

End If

Case txtFields(45)

txtFields(44).Text = (x3 + y3) / 2

Case txtFields(34)

txtFields(33).Text = " "

End Select

End Sub

Private Sub UserControl_Initialize()

adoEditElev.Enabled = False

adoEditElev.Caption = "Record: 0"

adoEditElev.Recordset.MoveLast

ord_scoala = adoEditElev.Recordset.Fields("edp_id").Value

SSTab1.Tab = 0

Dim i As Integer

Dim i1 As Integer

Dim ii As Integer

Dim ii1 As Integer

For i = 0 To 7

txtFields(i).Text = ""

Next

For ii = 9 To 32

txtFields(ii).Text = ""

Next

For i1 = 42 To 62

txtFields(i1).Text = ""

Next

For ii1 = 65 To 66

txtFields(ii1).Text = ""

Next

For i2 = 68 To 71

txtFields(i2) = ""

Next

Combo3(2).AddItem "Da"

Combo3(2).AddItem "Nu"

Combo3(3).AddItem "Da"

Combo3(3).AddItem "Nu"

Combo2.AddItem "Nu"

Combo2.AddItem "Da"

Combo1(6).AddItem "F"

Combo1(6).AddItem "M"

End Sub

UC_Prezent_Edit_Prof

Dim z As Integer

Private Sub adoProf_EndOfRecordset(fMoreData As Boolean, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

Screen.MousePointer = vbDefault

On Error Resume Next

'This will display the current record position

'for dynasets and snapshots

adoProf.Caption = "Record: " & (adoProf.Recordset.AbsolutePosition + 1)

End Sub

Private Sub adoProf_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean)

MsgBox "Data error event hit err:" & Error$(DataErr)

Response = 0 'throw away the error

End Sub

Private Sub adoProf_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

adoProf.Caption = "Record: " & (adoProf.Recordset.AbsolutePosition)

End Sub

Private Sub cmdAdd_Click()

MsgBox "Urmatorul nr. crt. este:", , z + 1

adoProf.Recordset.AddNew

txtFields(0).Text = z + 1

txtFields(1).SetFocus

End Sub

Private Sub cmdDelete_Click()

adoProf.Recordset.Delete

adoProf.Recordset.MoveNext

End Sub

Private Sub cmdRefresh_Click()

'this is really only needed for multi user apps

adoProf.Refresh

End Sub

Private Sub cmdUpdate_Click()

adoProf.Recordset.Update

MsgBox "Salvare reusita", , "Operatiune reusita"

adoProf.Refresh

adoProf.Recordset.MoveLast

z = adoProf.Recordset.Fields("p_id").Value

'adoProf.Recordset.Bookmark = adoProf.Recordset.AbsolutePosition + 1

'Data1.Recordset.Bookmark = Data1.Recordset.LastModified

End Sub

Private Sub cmdClose_Click()

'Unload Me

End Sub

Private Sub UserControl_Initialize()

adoProf.Caption = "Record: 0"

adoProf.Recordset.MoveLast

z = adoProf.Recordset.Fields("p_id").Value

'MsgBox ord_sc, , "Nr de elevi din baza de date: "

adoProf.Caption = "Record: " & (adoProf.Recordset.AbsolutePosition)

End Sub

Similar Posts