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
Variabile, constante si tipuri de date



Variabile, constante si tipuri de date


Variabile, constante si tipuri de date


Tipuri de variabile

Variabilele permit stocarea valorilor intermediare in orice moment al executiei codului VBA pentru a putea fi folosite ulterior pentru a efecua calcule, comparatii, teste etc. Variabilele sunt identificate printr-un nume ce le permite sa faca referinta la valoarea pe care o au, si printr-un tip ce determina natura datelor pe care le pot stoca.


Tipuri NUMERICE

Tip

Domeniu

Dimensiune

(in octeti)

Byte (octet)



0 la 255


Integer (intreg)

-32768 la 32767


Long (intreg lung)

-2 147 483 648 la 2 147 483 647


Single (simpla precizie)

-3,402823E38 la 1,401298E-45

(valori negative)

1,401298E-45 la 3,40282E38

(valori pozitive)


Double (dubla precizie)

-1,79769313486231E308 la

4,94065645841247E-324

(valori negative)

4,9406545841247E-324 la

1,979769313486231E308

(valori pozitive)


Currency

(valuta cu virgula fixa)

-922 337 203 685 477,5808 la





Tip

Domeniu

Dimensiune

(in octeti)

Decimal


543950335 fara separator zecimal


cu 28 cifre in dreapta separatorului zecimal; cel mai mic numar diferit de zero este




Tipul SIR DE CARACTERE

Tipul String: exista doua tipuri de astfel de siruri:

sirurile de lungime variabila pot contine in jur de 2 miliarde de caractere,

sirurile de lungime fixa pot contine de la 1 la aproximativ 64 Ko de caractere


Exemplu

’ sir de lungime variabila

Dim Adresa As String

’ sir de lungime fixa(20 caractere)

Dim Nume As String*20


Tipul BOOLEAN: variabila poate lua valoarea True (Adevarat) sau False (Fals) care este valoarea sa implicita. Ocupa doi octeti.


Tipul DATE: variabila poate lua valori de data si ora incepand cu 1 ianuarie 100 pana in 31 decembrie 9999. Ocupa opt octeti.


Tipul VARIANT: variabila permite stocarea valorilor de date diferite: date, numere cu virgula mobila, siruri de caractere, referinte la obiecte, etc. Ocupa 16 octeti plus unul pentru fiecare caracter daca valoarea este un sir.


Tipul OBJECT: variabila permite stocarea referintei la un obiect sub forma unei adrese cu 4 octete. Acesta este un tip generic, insa pentru a obtine performante superioare este preferabila folosirea unui nume de obiect asa cum acesta este definit in zona Classes al Exploratorului de obiecte.

Exemplu

Deschiderea bazelor de date Access folosind tipul generic Object sau pornind de la obiectul Database.

Dim dbsEmp As Object

Dim dbsArt As Database

Set dbsEmp = OpenDatabase(“D:Carte_VBA “ &  “Angajati.mdb”)

Set dbsArt = OpenDatabase(“D:Carte_VBA” & _ “Articole.mdb”)


Tipul DEFINIT DE UTILIZATOR (USER DEFINED): este folosit in special pentru declararea variabilelor ce contin mai multe tipuri de informatii. Definirea acestui tip nu se poate face decat in sectiunea de declarare a modulului.

Exemplu

Declararea unui nou tip definit de utilizator, Angajati:

Public type Angajati

Matricola As String*5

Nume As String*30

Varsta As Integer

Departamentul*10

End Type


Utilizarea tipului Angajati:

Dim NouAngajat As Angajat

NouAngajat.Matricola= ”15235”

NouAngajat.Nume= ”Popescu”



Declararea variabilelor

Exista doua modalitati de a declara variabilele: implicit si explicit.


Declararea implicita

In momentul in care VBA intalneste o variabila care nu face obiectul unei declaratii explicite, o va declara in mod implicit, oferindu-i un tip Variant.

Tipul Variant permite stocarea succesiva a unor valori de tip diferit in aceeasi variabila. Tipul variabilelor evolueaza in functie de valoarea care ii este atribuita.


Exemplu:

Private Sub Atribuire()

Tipul variabilei devine String

var = “Buna ziua”

MsgBox TypeName(var)

Tipul variabilei devine Integer

var = 12

MsgBox TypeName(var)

Tipul variabilei devine Double

var = 6.55957

MsgBox TypeName(var)

Tipul variabilei devine Boolean

var = True

MsgBox TypeName(var)

EndSub


Declararea explicita

Variabila este declarata inainte da a fi folosita.

Este posibil sa se impuna declararea explicita a variabilelor folosind instructiunea Option Explicit din sectiunea de declarare a fiecarui model. Pentru ca aceasta instructiune sa fie definita by default in VBA, se activeza optiunea Declararea obligatorie a variabilelor din meniul  ToolsOptions Edit.

Declararea explicita a variabilelor se poate face in sectiunea de declarare a modulelor sau in cadrul unei proceduri sau functii.

Declararea este realizata de catre una dintre urmatoarele patru instructiuni ce folosesc aceeasi sintaxa:

la nivelul unei proceduri sau functii sintaxa este urmatoarea

Dim <Numevariabila> [As Type]

Static <Numevariabila> [As Type]


la nivelul unui modul, sintaxa este urmatoarea:

Private <Numevariabila> [As Type]

Public <Numevariabila> [As Type]


De fiecare data cand instructiunea Dim este executata, variabila este reinitializata (0 pentru tipul numeric, multime vida pentru tipul String, Empty pentru tipul Variant). Daca este necesara pastrarea valorii precedente, trebuie folosit Static in locul instructiunii Dim.

Observatie:

 Daca nu se precizeaza nici un tip (ex: dim var), tipul Variant este atribuit implicit variabilei.


Domeniul variabilelor

O variabila este numita locala, a unei functii sau proceduri daca este declarata in cadrul unei functii sau proceduri cu Dim sau Static. Aceasta nu este recunoscuta in afara functiei sau procedurii.

O variabila poate fi vizibila din toate procedurile sau functiile unui modul (standard, de clasa, formular sau raport) daca este declarata in sectiunea de declarare a modulului Private (sau Dim).

O variabila este publica intregii aplicatii, adica este vizibila din orice loc al aplictiei, daca este declarata in sectiunea de declarare a modulului Public.

Observatie:

Pentru a se face referinta unei variabile publice ce se gaseste intr-un alt modul, trebuie folosita sintaxa urmatoare:


Forms! <NumeFormular>.<NumeVariabila>

Reports! <NumeRaport>.<NumeVariabila>


Tipul TABLOU

Un tablou se declara in acelasi mod ca si variabilele, cu ajutorul instructiunilor Dim, Static, Private sau Public.

Un tablou este o variabila ce prezinta mai multe compartimente ceea ce ii permite sa stocheze tot atatea valori.

Un tablou poate avea pana la 60 de dimensiuni.

Se poate face referinta la un tablou in mod global sau in mod individual, atribuind elementelor sale notatia cu indici.

Oricare ar fi tipul elementelor, un tablou necesita 20 de octeti de memorie, carora li se adauga 4 octeti pentru fiecare dimensiune si numarul de octeti ocupati de catre date.

Daca tipul de date nu este specificat, elementele tabloului declarat primesc tipul Variant.

Primul element al unui tabel isi atribuie indicele 0, implicit. Este posibila insa stabilirea acestei valori implicit la 1 folosind instructiunea Option Base 1 din sectiunea de declarare.

In acelati timp, folosire unei clauze, To, permite definire explicita a indicilor de la inceput la sfarsit.


Exemple

Declararea unor tablouri diferite:

‘ 12 elemente indexate de la 0 la 11

Dim Cheltuieli (11) As Single

‘ 12 elemente indexate de la 1 la 12

Dim Plati (1 To 12) As Single

‘ 2 dimensiuni: prima indexata de la 0 la 10 si ‘a doua de la 1 la 15

Dim Facturi (10, 1 To 15) As String

Option Base 1

‘ 12 elemente indexate de la 1 la 12

Dim Plati (12)


Folosirea unui tablou bidimensional. Exemplul urmator permite crearea unui tabel de inmultire: fiecare element din tabelul Multiply este egal cu rezultatul inmultirii indicilor sai.

Dim Multiply(1 To 10, 1 To 10) As Integer

Dim i,j As Integer

‚Initializarea tabloului

For i = 1 To 10

For j = 1 To 10

Multiply(i,j) = i*j

Next j

Next i

MsgBox (Multiply(4,7)

MsgBox (Multiply(7,4)


Tablouri dinamice

Este vorba de tablourile ale caror dimensiuni sunt definite in momentul executiei. Aceasta permite optimizarea spatiului de memorie ocupat.

Declararea tablourilor: 

Dim Table ()


Utilizare:

Inaintea utilizarii, tabloul trebuie dimensionat cu ajutorul instructiunii ReDim:

ReDim Table (15 To 50)


Instructiunea ReDim se poate folosi pentru a modifica tabloul dinamic de atatea ori cat este nevoie. Implicit, valorile prezentate, in tablou sunt anulate. Instructiunea ReDim Preserve permite intinderea unui tablou in acelasi timp pastrand valorile existente.

ReDim Preserve Table (15 To 70)


Constante in VBA

O constanta reprezinta o valoare numerica sau de tip sir, ce nu trebuie modificata. Instructiunea Const permite declararea unei constante si definirea valorii sale fixe. Odata declarata, o constanta nu mai poate fi modificata, nici nu mai poate primi o valoare noua. Declararea unei constante se realizeaza intr-o procedura sau in sectiunea de declarare a unui modul.

Constantele la nivelul modulului sunt private, implicit.

Pentru a declara o constanta publica, este necesar ca instructiunea Const sa fie precedata de cuvantul cheie Public.

Exemple

Declarare:

Public Const Societate = „Editura Mirton”

Const Black = &Ho&


Utilizare:

NameSocietate= Societate

Form!Angajati!Prenume.BlackColor = Black


Constantele intrinseci

Acestea sunt constante puse la dispozitie chiar de catre aplicatii. Astfel, Access 2002 poseda propriile sale constante intrinseci care sunt vizibile in exploratorul de obiecte.

O constanta intrinseca poate fi folosita intr-un macro sau in codul VBA.

Constantele intrinseci sunt caracterizte de un prefix de 2 litere ce identifica biblioteca de obiecte unde constanta este definita.

Constantele bibliotecii Microsoft Access primesc Prefixul „ac”; constantele bibliotecii Visual Basic au ca prefix „vb”.

Exemple:

acForm

vbCurrency


Exista mai multe categorii de constante intrinseci: constante de actiune, constante de proceduri eveniment, etc.




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