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
Instructiuni utilizate cu obiecte in VBA



Instructiuni utilizate cu obiecte in VBA


Instructiuni utilizate cu obiecte in VBA


INSTRUCTIUNEA WITH

Permite accesul repetat la acelasi obiect numindu-l doar o singura data.

Ofera mai multe avantaje.

- optimizeaza timpul de executare a codului,

- castiga timp in scriereea codului,

- face codul mai lizibil.

Sintaxa:

With <object>

<cod utilizand metode si proprietati>

<ce se raporteaza la obiect>

EndWith

Exemplu

Obiect formular activ

With Screen.ActiveForm



.Caption = „Formular de plata”

.Controls(„CmdValidare”).Enabled = False

GoToPage2

EndWith


INSTRUCTIUNEA FOR EACHNEXT

Permite trecerea in revista a obiectelor unei colectii sau a elementelor unui tabel.

Sintaxa:

For Each <element> In <tabel>|<colectie>

<secventa de instructiuni>

[Exit For]

<secventa de instructiuni>

Next <element>

Exemplu

Exemplul urmator permite atribuirea unei culori de font fiecarui

Control al formularului „Angajat”, in functie de tipul sau (proprietate ControlType). De asemenea, acesta foloseste colectia

by default al obiectului Form (Screen .ActiveForm .Controls)

Dim ctl As Control

For Each ctl In Screen.ActiveForm

Parcurgerea controalelor formularului activ

With ctl

Select Case.Control Type

` Etichete

Case acLabel

.ForeColor = vbBlue

` Zone de text

Case acTextBox

.Forecolor = vbYellow

` Liste derulante

Case acListBox, acComboBox

.ForeColor =vbRed

EndSelect

EndWith

Nextctl


3.4.3. INSTRUCTIUNEA IFTYPE OF

Permite testarea tipului de obiect.


Sintaxa:

If TypeOf <object> Is <TypeObject> Then

<cod ce foloseste metode si proprietati>

<ce se raporteaza la obiect>

EndIf

Exemplu

If TypeOf ctl Is acListBox Then


INSTRUCTIUNEA SET

Permite atribuirea unei referinte de obiect unei variabile, numite variabila obiect.

Aceasta instructiune poate fi utilizata pentru crearea unei referinte spre un obiect nou (utilizand eventual o metoda ce permite crearea unui obiect) sau pentru atribuire unei referinte unui obiect deja existent.

Sintaxa:

Crearea unei referinte la un obiect nou

Set <NameObject> = New <expression object>

sau

Set <NameObject>  = <metode ce permit crearea unui obiect>

<NameObject>           numele variabilei obiect

<expression object>    numele unui obiect sau a unei variabile obiect de acelasi tip.

Cuvantul cheie New permite crearea unei noi instante de clasa. Daca variabila obiect contine deja o referinta, aceasta este stearsa.

Observatie:

Nu se poate folosi cuvantul cheie New pentru a face referinta la un obiect decat daca componenta ActiveX a obiectului furnizeaza o bibilioteca (ex: obiecte ADO, obiecte Excel).


Atribuirea unei referinte unui obiect existent

Set <NameObject> = <expresie obiect>


<NameObject> numele variabilei obiect

<expression object>                    numele unui obiect sau a unei variabile obiect de acelasi tip.


Reinitializarea variabilelor obiect

Set <NameObject> = Nothing

Nothing permite reinitializarea variabilei obiect si eliberarea totalitatii resurselor sistem si memorie asociate obiectului.

Exemple

Crearea referintelor la un obiect nou.

Exemplele 1 si 2 permit crearea unui index nou sau completarea bazei de date curente. Pentru efectuarea acestor exemple, trebuie selectata referinta proiectului Microsoft DAO 3.6 Object Library. (Tools-References)


Exemplul 1: Utilizarea cuvantului cheie New

Dim tdfClient As DAO.tabledef

Dim fld As DAO.Field

` Creeaza definitia tabelului

Set tdfClient = New DAO.tabledef

tdfClient.Name = „Clienti”

` Creeaza primul camp

Set fld = New DAO.Field

With fld

.Name = „Cli_Nume”

.Type = dbText

.Size = 40

End With

tdfClient.Fields.Append fld

` Creeaza al doilea camp

Set fld = New DAO.Field

With fld

.Name = „Cli_Efectivi”

.Type = dbInteger

End With

tdfClient.Fields.Append fld

`Adauga tabelul la baza de date curenta

Application.CurrentDb.TableDefs.Append tdfClient

`Reinitializeaza variabila obiect

Set tdfClient = Nothing

Set fld = Nothing


Exemplul 2: Aceeasi prelucrare a datelor, utilizand metodele

Dim tdfClient As DAO.tabledef

Dim fld As DAO.Field

` Creaza definitia tabelului

Set tdfClient = CurrentDb.CreateTableDef(„Clienti”)

With tdfClient

` Creaza primul camp

Set fld =.CreateField(„Clienti_Nume”,dbText,40)

.Fields.Append fld

` Creaza al doilea camp

Set fld =.CreateField(„Clienti_efectiv”,dbInteger)

End With

`Adauga tabelul la baza de date curenta

CurrentDb.TableDefs.Append tdfClient

`Reinitializeaza variabila obiect

Set fld = Nothing

Set tdfClient = Nothing


Exemplul 3: Crearea unui formular cu o zona de texte si eticheta.

`Obiect formular

Dim frmEmploye As Form

`Numele formularului

Dim strName As String

`Obiect control

Dim ctl As Control

`Crearea unui formular nou

Set frmEmploye = Application.CreateForm

With frmEmploye

`Titlul formularului

.Caption = „Total”

`Latimea si lungimea formularului

.Width = 5000

.Section(acDetail).Height = 2000

`Stergerea butoanelor de depalsare

.NavigationButtons =False

`Sterge selectorul de inregistrare

.RecordSelectors =False

`Centreaza formularul in aplicatie

.AutoCenter = True

`Numele aplicatiei

strName =frmEmploye.Name

End With

`Adaugarea zonei de text „numele angajatului”

Set ctl = Aplication.CreateControl(strName,_

acTextBox, ,” „,” „ 2000, 500, 2500,300)

`Redactarea zonei de text

With ctl

`Numele zonei de text

.name =”txtNom”

`Culori

.BackColor = vbWhite

.ForeColor = vBlack

.FontBold = True

EndWith

`Adaugarea etichetei „numele angajatului”

Set ctl = Application.CreateControl(strName,_

acLabel, ,” „, „ „,500, 500, 1500, 300)

`Redactarea etichetei

With ctl

`Numele etichetei

.Name = „lblNom”

`Titlul etichetei

.Caption = „Numele angajatului:”

`Culori

.BackColor = vbWhite

.ForeColor = vbBlue

End With

`Salvarea formularului

DoCmd.Save, „Angajati”

Docmd.close





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