module de clasă

Un al doilea tip de modul în Access este un modul de clasă. modul de clasă diferă de un modul standard care, în plus față de proceduri, aceasta conține o descriere a obiectului și este folosit pentru a crea obiecte. Procedurile definite în acest modul sunt metode și proprietăți ale obiectului. Exemple de module de clasă sunt module formulare și rapoarte.







Module formulare și rapoarte legate de forma sau raportul specific, și conține proceduri de evenimente pentru formularul sau raportul. Modulul de formular nu este creat imediat atunci când creați o nouă formă. Acesta este creat și asociat cu forma de îndată ce încercați să creați prima procedură eveniment pentru forma sau unul dintre controalele pe formular sau apăsați butonul de program (cod) în fereastra Form Designer.

Fig. 13.9. Dialog formează proprietăți

Pentru a de la codul VBA pentru a deschide forma și schimba orice proprietate de formă sau de formă controalele, pot fi utilizate două metode.

  • OpenForm macro, ca metodă a obiectului DoCmd, de exemplu:
  • O referire la modulul de clasă corespunzătoare, de exemplu:

În acest caz și într-un alt, atunci când efectuează instanță standard deschis de forma, „Produse“ (Produse) și se înlocuiește cu sursa de înregistrare pentru forma.

VBA vă permite să deschideți mai multe instanțe ale clasei formular. Acest lucru poate fi necesar, cum ar fi atunci când doresc să arate organizației-mamă și companiile subsidiare în diferite ferestre. Informații despre una sau alta pot fi stocate în diferite înregistrări într-un tabel, și aveți nevoie pentru a deschide două instanțe de aceeași formă cu diferite înregistrări în fiecare caz.

Clasa de formular poate avea doar o singură copie a standardului, astfel încât în ​​acest caz, trebuie să creați o instanță personalizată a formularului. În acest scop, este necesar ca programul pentru a descrie tipul de variabilă, care este numele clasei de forma modulului, în timp ce în declarația de variabilă pentru a include un nou cuvânt cheie. De exemplu, următoarea comandă creează o nouă instanță a formularului „Clienții“ (clienți) și leagă-l la o variabilă de tip Formă:







Acum, schimba sursa de date pentru această formă, locația de pe ecran (doar o altă formă de suprapunere) și atribuie proprietatea apare pe ecran (Vizibilul) la Da (Da):

frm.RecordSource = "Organizația noastră" DoCmd.MoveSize 1440, 2400 frm.Visible = True

Pentru a schimba poziția pe ecran utilizând SdvigRazmer macro (MoveSize), în care, în acest caz, coordonatele colțul din stânga sus al ferestrei principale de acces relativ fereastra forma.

Pentru a forma a doua instanță nu dispare de pe ecran, imediat după apariția, variabilei FRM trebuie declarate la nivelul modulului, adică. E. este declarat în secțiunea modul (Declarații) folosind cuvântul cheie privată.

Valori de proprietate sau formă de control se aplică numai instanța curentă a formularului și nu vor fi salvate după ce se închide. Acest lucru este în contrast cu modulul de clasă de la un modul standard: acestea au diferite date stocate. Modulul standard poate declara o variabilă publică, și acesta este instalat, acesta își păstrează valoarea sa, atâta timp cât nu există în mod clar nu va fi schimbat de o altă echipă în orice alt modul. In clasa de date ale modulului aparțin aceeași instanță de clasă, adică. E. Un singur obiect. Ele apar atunci când obiectul este creat, și dispar atunci când obiectul dispare. Acest lucru înseamnă că variabilele publice dintr-un modul clasă va fi disponibil numai atâta timp cât există o variabilă care conține o trimitere la o instanță separată a clasei. Acest lucru este valabil și pentru procedurile declarate publice.

Formulare și rapoarte sunt clase standard de obiecte de acces, dar puteți utiliza module de clasă pentru a crea obiecte personalizate. Denumirea sub care a păstrat modul de clasă devine numele unui obiect special. Sub-tip și de funcții, astfel cum este definit în procedura de modul de clasă, obiectul va fi metodele și procedurile de tip Property Let, Property Get și proprietăți Set-obiect. Pentru o descriere a metodei nu are valoare de întoarcere, utilizați procedura Sub, și pentru o metodă care returnează o valoare, - procedura de funcții. Procedura de proprietate Obțineți returnează valoarea obiectului. Procedura de Set de proprietăți atribuie valoarea proprietății obiectului. Proprietatea Fie Procedura stabilește valoarea proprietăților care nu aparțin obiectului. Mai multe informații detaliate cu privire la aceste proceduri pot fi obținute de la Access Help prin tastarea într-un criteriu nume procedura de căutare: Proprietate Let, Property Get și o proprietate, respectiv.

După acest apel la metodele și proprietățile sale, prin utilizarea acestei variabile. De exemplu, în cazul în care modulul este definit MyProcedure procedură, pentru a efectua această procedură, expresia