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
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplicatii ale Sistemelor de Gestiune a Bazelor de Date, cu Interogare In Visual Basic (ID: 149051)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
