Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Baze de date


Qdidactic » stiinta & tehnica » informatica » baze de date
Clase de obiecte in VBA



Clase de obiecte in VBA


Clase de obiecte in VBA


O clasa este un fel de tipar de unde provin obiectele. Obiectele din aceeasi clasa mostenesc sistematic trasaturi din toate metodele (coduri), proprietati (date) si evenimentele claselor lor de origine. Prin urmare, caracteristicile si comportamentul fiecaruia vor putea fi adaptate in functie de necesitatile aplicatiei. De fapt, orice obiect Acess provine dintr-o clasa.

MODULELE DE CLASA

Modulele de clasa permit crearea si manipularea propriilor tipuri de obiecte in aplicatii.

Prezinta caracteristicile urmatoare:

poarta numele obiectului,

cuprind procedurile Sub si Function ce corespund metodelor proprii obiectului,

includ procedurile Property Get ce permit citirea valorilor proprietatilor obiectului si procedurlor Property Set/Property Let permitand fixarea valorilor acestor proprietati.

Odata ce ansamblul acestor proceduri sunt descrise in cadrul modulului de clasa, este posibila crearea unui nou obiect de tipul definit mai sus. Pentru aceasta, este suficienta crearea unei noi instante de clasa prin intermediul unei variabile obiect de tipul clasei:


Dim <object name> As New <class name>.




Modulele de clasa sunt rar utilizate in programarea VBA, adresandu-se in special specialistilor.


EXEMPLE DE MODULE DE CLASE

Acest exemplu este un ghid pas cu pas in crearea si utilizarea unui modul de clasa. Modulul creat va permite afisarea mesajelor utilizatorului.

Acest modul prezinta urmatoarele elemente:

o metoda Confirmation ce afiseaza o casuta de dialog care invita utilizatorul sa raspunda „Da” sau „Nu” la o intrebarea si primeste raspunsul utilizatorului,

doua proprietati: proprietatea IsBeep indica daca un beep trebuie emis inaintea afisarii mesajului; proprietatea Title ce contine titlul casutei de dialog.


Exemplu:

Pentru a crea un modul de clasa, se selecteaza optiunea Class Module (modul de clasa) al meniul Insert.

Se defineste numele clasei in campul Name.


Daca fereastra Properties nu este afisata, se alege optiunea Window Properties din meniul View sau se foloseste tasta F4.

Pentru utilizarea proprietatilor in modulul de clasa Message, se definesc variabilele necesare. Variabila strTitle este asociata proprietatii Title, iar variabila blnBeep proprietatii IsBeep.


Option Compare Database

Option Explicit

`Emiterea beep-ului

Dim blnBeep As Boolean

`Titlul ferestrei MsgBox

Dim strTitle As String


Proprietatile IsBeep si Title sunt create folosind optiunea Procedure din meniul Insert.


Sunt create pentru fiecare proprietate procedurile Property Get si Property Set; pentru obtinerea codului urmator, acestea sunt modificate:



Public Property Get IsBeep() As Boolean

Is Beep = blnBeep

End Property

Public Property Let Is Beep(ByVal blnNewValue As Boolean)

blnBeep = blnNewValue

End Property


Public Property Get Title() As String

Title = strTitle

End Property


Public Property Let Title(ByVal strNewValue As String)

StrTitle = strNewValue

End Property


Apoi se creaza metoda confirmarii folosind optiunea Procedure al meniului Insert.


Se modifica procedura Confirmation pentru obtinerea codului urmator:


Public Function Confirmation(strMsg) As Boolean

Is MsgBox(strMsg, vbYesNo, strTitle) = vbYes Then

Confirmation = True

Else

Confirmation = False

EndIf

If blnBeep Then Beep

EndFunction


Se poate observa ca aceasta metoda foloseste cele doua variabile, strTitle si blnBeep. Metoda a fost creata ca o functie deoarece  returneaza raspunsul utilizaarului sub forma unei variabile logice (boolean).

Odata creata, aceasta clasa va fi utilizata pornind de la un formular. In acest scop, se va crea un formular Angajati cu doua butone de comanda cmdClose si cmdQuit. Se atribuie codul de mai jos evenimentelor click:


Private Sub CmdInchidere_Click()

`Obiect mesaj

Dim Msg as New Message


`Fara emiterea unui beep

msg.IsBeep = False

`Titlul casutei de dialog

msg.Title = „Aplicatie gestiunea personalului”

`Cerere de confirmare

If msg.Confirmation(„Doriti inchiderea  _ formularului” & „?”) Then

DoCmd.Close

EndIf

EndSub


Private Sub CmdTerminare_Click()

`Obiect mesaj

Dim msg As New Message

`Emiterea unui beep

msg.IsBeep = True

` Titlul casutei de dialog

msg.Title = „Aplicatie   gestiunea personalului”

`Cerere de confirmare

If msg.Confirmation(„Doriti sa parasiti aplicatia ?” Then _

DoCmd.Quit

EndIf

EndSub



Apoi se tasteaza formularul. Casuta de mesaj afisata de metoda Confirmation utilizeaza cele doua proprietati si returneaza raspunsul utilizatorului.

Modulul de clasa Message poate fi imbunatatit definind proprietatile si metodele noi (ex: mesajele in caz de eroare).




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright