Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Tabele de date din ACCESS

Access


Tabele de date din ACCESS

În accepþiunea Microsoft Access o bazã de date este o colecþie de obiecte: tabele (tables), cereri de prelucrare (queries) formulare (forms) rapoarte (reports) pagini Web (pages) comenzi macro (macros) ºi module (modules).



Bazele de date se prezintã pe suporþi magnetici ca fiºiere cu extensia .mdb.

Se mai folosesc extensiile .mde pentru baze de date compilate, .ldb pentru fiºierele index asociate unei baze de date, .mdz pentru ºabloane de baze date ACCESS (templates) ºi .mda pentru baza de date sistem ACCESS (conþine informaþii de securitate).

Tabelele dintr-o bazã de date stocheazã datele ºi le pun la dispoziþia tuturor celorlate obiecte dintr-o aplicaþie a bazei de date pentru prelucrare, afiºare ºi raportare.

Tabelele au o structurã (capul de tabel împreunã cu informaþiile privitoare la natura ºi proprietãþile fiecãrei coloane/câmp) ºi conþinut (datele concrete stocate în tabel sub formã de rânduri denumite în englezã records, adicã articole sau înregistrãri).

A crea un tabel înseamnã a defini structura, a specifica acele câmpuri care pot fi folosite pentru indexare, câmpul/câmpurile ce constituie cheie primarã precum ºi relaþiile tabelului cu alte tabele (dacã existã).

Pentru a crea un tabel, trebuie sã avem declaratã ºi deschisã baza de date din care va face parte acel tabel. Altfel spus, trebuie sã avem în faþã o fereastrã ca cea din figura de mai jos (aceasta este fereastra managerului bazei de date din Access 2000; cea din Access '97 va avea lista cu obiecte dispusã pe orizontalã, deasupra chenarului principal):

Dacã nu avem o bazã de date în care sã creem un tabel, vom iniþializa o bazã de date.

Pentru aceasta din Meniul File vom alege opþiunea New, iar din fereastra New care apare vom alege paleta General ºi

apoi butonul (icoana) Database. Dupã ce, în fereastra File New Database care a apãrut, vom alege directorul de destinaþie al noii baze de date ºi numele sãu, vom da clic pe butonul Create. Acum vom avea în faþã imaginea de mai sus (imaginea fereastrei managerului bazei de date din Access).

Pentru a crea un tabel nou vom da clic pe obiectul Tables , iar din fereastra care apare vom alege una din cele trei metode disponibile ºi anume:

- DataSheet View (create table by entering data - prin introducerea datelor);

- Design View (utilizând ferestra de proiectare) sau

- Table Wizard (utilizând instrumentul Wizard).

Mai existã douã posibilitãþi de creare a unui tabel, dar prin derivare din alte tabele ºi anume: Import Table ºi Link Table . Deosebirea între ele constã în aceea cã o tabelã importatã intrã în gestiune bazei de date curente , în timp ce una cuplatã prin Link, râmâne unde este iar SGBD Access doar foloseºte acel tabel.

Cea mai sigurã metodã este Design View. Dând clic pe aceastã opþiune, vom obþine fereastra numitã Table1: table unde vom putea introduce structura noultui tabel numit pentru moment Table1.

Dupã salvarea structurii, vom fi solicitaþi sã-i dãm un nume acestui tabel ºi ulterior acel nume* va apare în titlul ferestrei în loc de Table1.

Pentru a introduce structura tabelului

Table1, fiecãrui câmp din tabel îi vom da un nume* (Field Name), îi vom atribui un tip de datã (Data Type) ºi eventual o scurtã descriere (Description). Se recomand[ s[ ne limit[m la max. 30 de c\mpuri. Pentru a alege tipul de datã, în coloana Data Type existã o listã ascunsã (combobox) din care dând clic pe triunghiul negru, putem alege tipurile de date din imaginea de mai jos.

*) Maximum 64 de caractere. Blancurile sunt permise dar nu se recomandã

 
1. Proprietãþile câmpurilor tabelului. Odatã ales tipul de date, mai putem face diferite precizãri în legãturã cu câmpul curent din tabel. Aceste precizãri sau proprietãþi sunt sugerate de Access în zona de jos a ferestrei managerului bazei de date, pe paleta General, iar valorile asociate lor se pot introduce pe aceeaºi paletã în zona albã, unde în imagine avem ca exemplu pentru Field Size (lungimea câmpului) valoarea 50. Trebuie sã remarcãm însã cã uneori simpla alegere a tipului de datã din imaginea alãturatã nu este suficient. Unele tipuri ca number au subtipuri. Pentru cã efectul alegerii unui tip sau a altuia se reflectã în lungimea câmpului, subtipurile se pot alege dintr-o listã ascunsã aflatã la extremitatea dreaptã a

zonei pentru introducerea valorii Field Size. Dacã la rubrica Data Type era ales tipul Number, dând clic la extremitatea dreaptã a liniei cu date pentru Field Size, ni se va deschide un combobox cu subtipurile/opþiunile prezentate în imaginea din dreapta tabelului de mai jos. Pentru a sti ce subtip sã alegem trebuie sã ºtim cã de subtipul ales depinde intervalul de valori ce putem stoca în câmpul respectiv, numãrul de octeþi ocupat de acel câmp, precum ºi numãrul maxim de zecimale ce se pot stoca în acel câmp. Toate acestea rezultã din tabelul urmãtor:   

Field size/Subtipuri

Zecimale

Interval valoric

Octeþi

Byte

de la 0 la 255

Integer

de la -32.768 pânã la 32.767

Long Integer

de la -2.147.483.648 pânã la

+2.147.483.647

Single

de la -3,4*1038 pânã la +3,4*1038

Double

de la -1,797*10308 pânã la +1,797*10308

Replication ID

Identificator global unic

Decimal

de la -1028 pânã la +1028

Pentru a ºti ce sã alegem din lista ascunsã cu tipuri de date este bine sã avem cunoºtinþã de specificul acestor tipuri aºa cum este el prezentat în tabelul de mai jos:

Date

Tipul datelor

Descrierea tipului datelor

Alfanumerice

Text

Este tipul ales implicit de ACCESS, iar lungimea implicitã este de 50 de caractere. Poate conþine pânã la 255 de caractere.

Memo

Pot conþine pânã la 64.000 de caractere. Aceste câmpuri pot fi vizualizate în modul DataSheet View. Un câmp memo nu poate fi cheie ºi nici nu putem indexa dupã el

Numerice

Number

Sunt disponibile sub forma mai multor subtipuri enumerate în imaginea de mai sus. Pe lângã efectele specificate în tabelul de mai sus, aceste subtipuri au efect ºi asupra formatului de afiºare pe care noi putem sã-l alegem din dreptul proprietãþii Format dintr-o combobox. Acest efect poate fi vãzut din tabelul de mai jos

Autonumber

Se foloseºte de obicei la câmpurile cheie. La rubrica Field Size acesta ia automat subtipul Long Integer iar dupã proprietatea Field Size nu mai apare Format ci o propriete specificã acestui tip numitã Increment care poate lua valorile Increment sau Random. Dacã am ales Increment, la introducerea unui nou articol câmpul de tip Autonumber va fi incrementat cu 1, dacã am ales Random se alege un numãr aleatoriu unic. Numãrul maxim de înregistrãri ce se pot stoca într-un tabel contorizat cu o cheie de tip autonumber este de 2 miliarde.

Yes/No

Este folosit pentru reprezentarea câmpurilor de tip logic pentru care se folosesc valorile -1 pentru True sau Yes ºi 0 pentru False sau No. Nu pot fi folosite ca index ºi cu atât mai mult nu pot fi folosite drept cheie.

Sã remarcãm cã aceste câmpuri totdeauna vor lua vlaoarea 0 sau orice alt numãr diferit de zero (respectiv -1), dar la introducerea datelor, noi nu introducem decât True/False, Yes/No, sau Onn/Off (depinde ce alegem în momentul completãrii proprietãþii Format unde existã un combobox cu aceste trei oferte ºi noi putem sã alegem una dintre ele).

Currency

Este un format special, fix, cu patru zecimale proiectat sã previnã erorile de rotunjire care ar opera operaþiile contabile acolo unde valoarea trebuie sã se potriveascã la nivel zecimale.

Date calendaristice

Date/Time

Datele calendaristice ºi ora sunt stocate într-un format special fix. Data este reprezentatã de întreaga porþiune numericã a valorii Date/Time, iar ora de partea zecimalã a acesteia. La afiºare data ºi ora pot fi afiºate sub mai multe forme conform tabelului cu efectele proprietãþii Format.

Obiecte mari

Object OLE

(BLOB - binary large object))

Se referã la obiecte grafice realizate prin puncte (bitmap), desene vectoriale, fiºiere cu semnale audio ºi alte tipuri de date care pot fi create de o aplicaþie OLE server. Câmpurile de acest tip nu pot fi folosite drept cheie ºi nici index.

Adrese Internet

Hyperlink

Este un text sau o combinaþie de text cu numere, stocatã ca un text ºi folositã ca adresã a unei pagini Web. Este formatã din trei pãrþi: textul afiºat, adresã ºi subadresã. Fiecare din cele trei pãrþi poate fi compusã din maximum 2048 de caractere.

Informaþii preluate

Lookup Wizard

Creazã un câmp care ne permite sã alegem o valoare din alt tabel sau dintr-o listã de valori, folosind un obiect de tip listã sau combobox. Dând clic pe aceastã opþiune se lanseazã Lookup Wizard, care creazã un câmp de tip Lookup. Dupã ce se iese din wizard, Microsoft Access seteazã tipul datei conform selectãrilor pe care le-aþi fãcut pe timpul rulãrii wizard-ului. Dimensiunea câmpului va fi aceeaºi cu cea a cheii primare folosite pentru a parcurge opþiunile din obiectul cu care introducem date în câmpul creat de Wizard, de regulã 4 octeþi.



Practic din cele prezentate mai sus, putem completa doar proprietatea Field Size. Sã vedem în continuare efectul formatului predefinit ales în linia numitã Format pentru tipurile Number, Date/Time ºi Yes/No (acest efect se poate vedea doar la afiºarea datelor):

Tipul datelor

Format disponibil

Aspect

Number

General Number

Currency

Fixed

Standard

Percent

Scientific

1.23E+03

Date/Time

General Date

10/I/92 4:00:00 Pm

Long Date

Thursday, October 1, 1992

Medium Date

1 -Oct-92

Short Date

Long Time

4:00:00 PM

Medium Time

04:00 PM

Short Time

Yes/No

Yes/No

Yes sau No

True/False

True sau False

On/Off

On sau Off

fãrã

-1 sau 0

Formatele de mai sus sunt predefinite. Pentru tipul text ºi memo nu existã formate predefinite ca cele de mai sus. În afarã de formate predefinite existã formate ce se construiesc de programator cu ajutorul diferitelor simboluri.

a) Pentru text/memo se pot folosi simbolurile @, &, < ºi > cu urmãtoarele semnificaþii:

Simbol Descriere

se cer caractere de tip text (inclusiv spaþiu).

& nu se cer charactere de tip text

< scrie toate caracterele cu litere mici

> scrie toate caracterele cu majuscule

Formatele pentru text/memo pot avea pânã la douã secþiuni, fiecare secþiune conþinând formatul pentru o anume situaþie ºi anume: prima secþiune pentru câmpuri cu text ºi secþiunea doua pentru câmpuri de lungime nulã sau cu valoarea Null.

Astfel dacã pentru situaþia cã în câmp nu existã text putem cere sã se scrie "Necompletat", vom folosi formatul @;" Necompletat " . În acest caz simbolul @ va fi folosit pentru cazul când existã text, iar dacã nu existã text va fi folositã secþiunea doua, adicã va scrie cuvântul Necompletat .

Notã. Mai existã funcþia Format care poate returna o valoare pentru un ºir de lungime zero ºi alta pentru ºirul Null.

Proprietatea Format poate fi folositã ºi în modul Datasheet View, pentru a forma automat câmpuri din tabelul deschis în acest mod de lucru.

b) Pentru numere formatul compus de programator poate avea pânã la patru secþiuni separate cu punct ºi virgulã (;). Fiecare secþiune se referã la anumite tipuri de numere ºi anume: prima pentru numere pozitive, a doua pentru numere negative, a treia pentru valori egale cu zero ºi a patra pentru valoarea Null

De exemplu puteþi folosi urmãtorul format pentru tipul currency:

#0.00[green];($#,##0.00)[Red];"Zero";"Null". Culorile se scriu în englezã!

Acest numãr conþine patru secþiuni, separate prin ; ºi foloseºte un format diferit pentru fiecare secþiune. Dacã folosim mai multe secþiuni, dar nu specificãm format pentru fiecare secþiune, în situaþia în care cãdem peste o secþiune ce nu are format fie cã nu se va afiºa nimic, fie se va aplica automat formatul asociat cu prima secþiune.

Se pot crea formate pentru numere folosind urmãtoarele simboluri:

Simbol Descriere

. (punct) Separator de zecimale. Separatorii se pot stabili dând dublu clic pe zona Regional Settings din Windows Control Panel.

, (virgula) Separator pentru mii

simbol pentru cifre (vom folosi atâtea zerouri câte cifre vrem obþinem) Vom obþine o cifrã sau zero.

simbol pentru cifre. Vom obþine o cifrã sau nimic.

afiºeazã caracterul $

procentaj. Valoarea este înmulþitã cu 100 ºi se adaugã semnul %.

E- sau e-    Notaþia ºtiinþificã pentru numere. Se pune semnul minus dupã exponenþii negativi ºi nimic dupã exponenþii pozitivi. Acest simbol se va folosi cu alte simboluri ca în 0.00E-00 sau 0.00E00.

E+ sau e+    Notaþia ºtiinþificã pentru numere. Se pune semnul minus dupã exponenþii negativi ºi semnul plus (+) dupã exponenþii pozitivi. Acest simbol se va folosi cu alte simboluri ca în 0.00E+00

Observaþie: se poate folosi proprietatea Decimal Places pentru a ignora numarul implicit de zecimale prevãzut în formatul predefinit ales cu proprietatea Format.

Formatele predefinite currency ºi euro se conformeazã setãrilor din Regional Settings existente în Windows Control Panel. Noi putem ignora acele setãri folosind propriul nostru format pentru tipul Currency

c) Pentru datã ºi timp

Simbol Descriere

separator de timp

separator de datã

c la fel ca formatul predefinit General Date

d ziua din lunã cu una sau douã cifre dupã cum este nevoie (1 - 31);

dd ziua din lunã cu douã cifre (01 - 31)

ddd Primele trei litere ale zilei sãptâmânii (Sun pânã la Sat)

dddd la fel ca formatul predefinit Short Date

ddddd la fel ca formatul predefinit Long Date

w numãr zi sãptãmânã (1 - 7)

ww numãrul sãptãmânii din an (1 - 52)

m numãrul lunii din an (1 -12)

mm numãrul lunii din an exprimat prin douã cifre (01 -12)

mmm primele trei litere ale lunii (Jan - Dec)

mmmm numele întreg al lunii

q afiºeazã trimestrul din an (1 - 4)

y numãrul zilei în cadrul anului (1 - 366)

yy ultimele douã cifre ale anului (01- 99)

yyyy anul complet (0100 - 9999)

h ora în una sau douã cifre (0 - 23)

hh ora în douã cifre (01 - 23)

n minutele în una sau douã cifre, dupã caz (0 - 59)

nn minutele în douã cifre (00 -59)

s secundele în una sau douã cifre dupã caz (0 - 59)

ss secundele în douã cifre (01 - 59)

ttttt formatul predefinit Long Time

AM/PM    ora pânã la 12 urmatã de AM sau PM, dupã caz;

am/pm ora pânã la 12 urmatã de am sau pm, dupã caz;

A/P    ora pânã la 12 urmatã de A sau P, dupã caz;

a/p ora pânã la 12 urmatã de a sau p, dupã caz;

AMPM    ora pânã la 12 urmatã de simbolul specificat în cutia de dialog Regional Settings Properties din Windows Control Panel pentru dimineatã sau dupã amiazã - dupã caz;

Notã   Dacã doriþi sã. adãugaþi în formatul Dv. un separator, acesta va fi încadrat între apostroafe duble ca în exemplul urmãtor: mmm d", "yyyy.

d) Pentru datele de tip Yes/No formatele programator pot conþine pânã la trei secþiuni: prima fãrã nici un efect, dar trebuie marcatã de semnul ; , a doua conþine textul ce va fi pus în locul lui Yes, True sau On ºi a treia conþine textul ce va fi pus în locul lui No, False sau Off.

Vom prezenta în continuare semnificaþia proprietãþilor ce urmeazã dupã Format:

- Numãrul de zecimale (Decimal places). În cadrul acestei proprietãþi se stabileºte numãrul de zecimale ce pot fi atribuite câmpului. Existã o listã de opþiuni ºi se pot selecta valori cuprinse între 0 ºi 15 sau Auto pentru determinarea automatã a numãrului de zecimale.

- Formatul de introducere (Input Mask). Prin aceastã proprietate se impune un format pentru toate datele ce se vor introduce în câmpul curent. Un astfel de format se poate crea mai uºor cu Input Mask Wizard care se obþine dând clic pe extremitatea dreaptã a liniei unde trebuie sã introducem proprietatea Input Mask, mai exact pe butonul .

Acest format de intrare are mare importanþã în cazul câmpurilor de tip Text sau Date/Time .

Proprietatea InputMask poate conþine pânã la trei secþiuni:

- prima conþine formatul de introducere propriu-zis, de exemplu !(999) 999-9999. A se vedea mai jos lista caracterelor ce se pot folosi pentru a defini un format de intrare.

- a doua specificã dacã Access trebuie sã stocheze în tabel ºi caracterele din afiºajul literal folosit la introducerea datelor. Mai exact le va introduce pentru valoarea 0 din aceastã secþiune ºi nu le va introduce pentru valoarea 1 sau blank. Afiºajul literal derivã din faptul cã de exemplu pentru un numãr de telefon putem defini formatul de intrare sub forma (999) 999-9999. La introducerea datelor pe ecran, pe lângã cifrele introduse în locul liniilor, vor apare ºi parantezele. Dacã în aceastã secþiune am pus 0, parantezele vor fi stocate ºi ele împreunã cu cifrele.

- a treia secþiune specificã un caracter pe care Access îl va afiºa în locul unde este de aºteptat, conform formatului de intrare, sã se introducã date.

Pentru a defini un format de intrare (Input Mask) se pot folosi urmãtoarele caractere:

se cer doar cifre; nu se admite semnul + sau -;

se pot introduce cifre ºi spaþiu; nu se admite semnul + sau -;

se pot introduce cifre ºi spaþiu; spaþiile sunt afisate pe timpul editãrii ca blancuri, dar la stocare blancurile se eliminã; se admite semnul + sau -;

L    se cer litere de la A la Z; introducere obligatorie;

se cer litere de la A la Z; introducere opþionalã;

A    litere sau cifre; introducere obligatorie;

a litere sau cifre; introducere opþionalã;

&    orice caracter sau spaþiu; introducere obligatorie;

C    orice caracter sau spaþiu; introducere opþionalã;

/ marcheazã loc pentru zecimale ºi separatori pentru mii, datã ºi timp. Adevãratul caracter folosit, va fi cel din cutia de dialog Regional Settings Properties din Windows Control Panel;

<    toate caracterele vor fi convertite la litere mici;

>    toate caracterele vor fi convertite la majuscule;

cere formatului de intrare sã afiºeze de la dreapta la stânga ºi nu de la stânga la dreapta cum ar fi normal. Acest semn poate fi inclus oriunde în formatul de intrare;

cere formatului de intrare sã afiºeze caracterele ce urmeazã dupã semnul mirãrii ca niºte caractere literale: de ex. din \A va rezulta A

Notã: dacã Input Mask este pusã sub forma cuvântului "Password", orice caracter tastat în zona unde trebuie tastate datele de intrare va fi afiºat ca steluþã.

În zona unde trebuie tastate datele de intrare, dacã acolo este in vigoare un format de intrare, se scrie în regim Insert Off, adicã se scrie peste. Dacã acolo se foloseºte tasta back space, în locul caracterului ºters va râmâne un spaþiu.

La afiºarea datelor ce au fost citite cu un format de intrare, dacã a fost definit ºi un format de afiºare (cu proprietatea Format), acesta din urmã este prioritar.

- Eticheta (Caption). Permite specificarea unui anumit nume atribuit câmpului în cazul în care acesta este utilizat în cadrul formularelor sau când tabela creatã este afiºatã.

- Valoarea implicitã (Default Value). Este utilã atunci când o valoare este foarte comunã pentru multe înregistrãri (rânduri din tabel). Ea se inroduce la declararea structurii tabelului, iar la introducerea datelor este introdusã automat. Dacã pentru un anumit articol nu se potriveºte, putem s-o modificãm, dar ea rãmâne valabilã pentru restul articolelor.

- Regula de validare (Validation Rule). Dacã a fost prevãzutã o regulã de validare (exprimatã printr-o expresie) la introducerea unei valori în câmpul respectiv, expresia se calculeazã pentru valoarea respectivã ºi se confruntã cu criteriul de validare. Pe lângã operatori (=, -, *, /, \, Mod, <, >, £ ³, AND, OR, BETWEEN, IN, IS NULL), expresiile conþin ºi operanzi reprezentaþi prin identificatori (daþi în paranteze rotunde), funcþii ºi constante. Exemplu: regula >= #1/1/98# And <#1/1/99# cere ca data calendaristicã ce va fi introdusã sã fie în limitele anului 1998.



- Textul de validare (Validation Text) este textul care va apãrea ca mesaj în cazul în care nu s-a respectat regula de validare.

- Introducere obligatorie (required). Se aplicã pentru toate câmpurile a cãror lipsã ar face nerelevant articolul în care ele nu ar fi completate. De exemplu o facturã fãrã datã nu poate fi luatã în serios din cauzã cã ar rãmâne în afara multor rapoarte ºi situaþii generate de calculator ºi poate chiar în afara listei cu facturile ce trebuie achitate.

- Indexat (Indexed). Prin aceastã proprietate ne pronunþãm cu privire la utilizarea câmpului curent la indexarea bazei de date, ca index simplu, iar dacã rãspunsul este Da, atunci trebuie sã precizãm dacã la indexare se iau în calcul ºi înregistrãrile care vin cu valori ce se repetã (Duplication OK) sau ne limitãm numai la câte o înregistrare de fiecare valoare a câmpului curent (No duplication). Dacã am ales câmpul ca index ºi apoi renunþãm putem folosi opþiunea No, care alãturi de primele douã se gãsesc într-o combobox de pe linia Indexed.

- Valori Noi (New Values) se aplicã doar la câmpurile de tip Autonumber. Prin combobox de pe aceastã linie precizãm dacã valoarea din câmpul curent se obþine prin incrementare (opþiunea Increment) sau prin generarea de numere aleatoare unice (Random).

- Se admite lungime zero (Allow Zero Length) se preteazã numai la câmpurile de tip text ºi memo. Valoarea introdusã la aceastã proprietate este corelatã cu cea de la proprietatea required, conform tabelului de mai jos.

Allow zero length

Required

Acþiune

Valoare memoratã

No

Yes

Enter

Null

Spacebar

Null

ªir de lungime zero

Nu este acceptat

Yes

No

Enter

Null

Spacebar

Null

ªir de lungime zero

ªir de lungime zero

No

Yes

Enter

Nu este acceptat

Spacebar

Nu este acceptat

ªir de lungime zero

Nu este acceptat

Yes

No

Enter

Nu este acceptat

Spacebar

ªir de lungime zero

ªir de lungime zero

ªir de lungime zero

Centralizarea atributelor tipurilor de date. Tabelul de mai jos marcheazã prin steluþã care sunt atributele (proprietãþile) care se preteazã fiecãrui tip de date:

Data Type

Property

Text

Memo

Num-ber

Date/

Time

Cu-rrency

Auto-

Number

Yes/

No

OLE

Object

Hyper-

link

Field

Size

Format

Input Mask

Caption

Default Value

Valida-tion Rule

Valida-tion Text



Required

Allow zero Length

Decimal Places

New Values

Indexed

2. DisplayControl este o proprietate care nu apare împreunã cu cele enumerate în tabelul de mai sus, dar ea se poate introduce selectând pagina LookUp de lângã pagina General unde se aflã celelalte proprietãþi.

Aceastã proprietate conþine o listã ascunsã (combobox) ce conþine tipurile de obiecte de control disponibile pentru tipul de date selectat pentru câmpul de care ne ocupãm în acel moment. Pentru câmpurile de tip Text sau Number, aceastã proprietate poate fi pusã Text Box, List Box, sau Combo Box. Pentru câmpurile de tip Yes/No, aceastã proprietate poate fi pusã pe Check Box, Text Box, sau Combo Box.

Remarcãm cã în momentul în care aþi ales un obiect de control pentru aceastã proprietate, orice alte proprietãþi necesare pentru a configura acel obiect de control, sunt imediat afiºate pe pagina Lookup. Prezentãm mai jos, aceste proprietãþi.

De fapt ceea ce se întâmplã pe aceastã paginã, puteaþi obþine dacã în partea de sus a ferestrei utilizate pentru introducerea câmpurilor din compunerea tabelului, în coloana Data Type, aþi fi ales tipul Lookup Wizard.

- proprietatea RowSourceType ºi RowSource

 Aceste proprietãþi se folosesc corelat pentru a transmite mediului de programare Access, cum sã furnizeze datele pentru obiectul de control ales (listã, listã ascunsã sau chiar un obiect OLE liber cum ar fi o hartã. Este vorba de hãrþile speciale folosite de Excel, care sunt de fapt un fel de obiect de control prin care se stocheazã date ca într-o listã, numai cã în loc sã vezi un rând din listã vezi un punct de pe hartã, cãruia i-au fost asociate anumite proprietãþi ) . Aºa de exemplu, pentru a afiºa pe rândurile dintr-un obiect de tip listã, date provenite de la o query numitã Lista_Clienþi, la proprietatea RowSourceType vom rãspunde cu Table/Query, iar la proprietatea RowSource vom rãspunde cu query Lista_Clienþi.     

Pentru completarea proprietãþii RowSourceType Setting se pot folosi urmãtoarele opþiuni:

- Table/Query, însemnând cã datele se vor lua dintr-un tabel, o query, sau o instrucþiune SQL, ce se va specifica prin proprietatea RowSource.

- Value List. Datele vor fi o listã de valori ce se specificã prin intermediul proprietãþii RowSource. Acolo datele vor fi separate prin punct ºi virgulã (;).

- Field List Datele vor fi o listã de câmpuri dintr-un tabel, query, sau instrucþiune SQL, specificat(ã) prin RowSource.

Pe pagina Lookup mai sunt specificate ºi alte proprietãþi ale obiectului ales, cum ar fi:

- bound column - din ce coloanã a listei sau listei ascunse sã se ia datele atunci când aceasta este folositã ºi când ea dispune de mai multe coloane; de obicei aceste liste sunt prevãzute cu o singurã coloanã;

- column count - câte coloane sã fie afiºate;

- column heads - când obiectul va fi activat coloanele sale cu ce sã fie etichetate? (cu denumire câmpuri, etichete, primul rând de date din tabel sau etichetele de pe hãrþi?);

- column widths - lãþimea coloanelor (în cazul unor obiecte cu coloane multiple) din compunerea obiectului de control ales;

- list rows - numãrul maxim de rânduri dintr-un tabel ce se vor afiºa în lista ascunsã;

- list width - lãþimea listei ascunse ce se deruleazã la activarea obiectului Combobox;

- limit to list - (poate lua valorile Yes sau No); dacã utilizatorul în loc sã aleagã o opþiune din listã tasteazã un text, atunci dacã proprietatea limit to list a fost pusã pe Yes ºi acel text nu se poriveºte cu unul din cele afisate pe lista ascunsã, textul va fi respins, chiar dacã el s-ar fi potrivit cu unul care este în sursa de date a coloanei listei ascunse, dar nu este vizibil.

3. Indecºi ºi chei. Indecºii au de a face cu indexarea. Aceasta se materializeazã în crearea unui fiºier ce conþine cheile (poziþia) articolelor din compunerea tabelului, ordonate dupã valorile din câmpul desemnat ca index. Articolele nu sunt mutate de la locul lor! Existã indecºi care iau în consideraþie ºi valori multiple (Duplicates Ok), indecºi care nu iau în consideraþie articolele ce vin cu valori ce se repetã (No duplicates) ºi indecºi compusi adicã valoarea dupã care se face ordonarea în fisierul index se obþine prin combinarea valorilor din douã pânã la zece câmpuri indicate de programator la stabilirea indecºilor. În cazul unui tabel se admit maximum 5 indecºi compusi. Nu putem indexa câmpuri de tip memo, hyperlink sau OLE objects.

Cheia primarã este un caz special de index ºi anume este un index care nu numai cã nu ia în seamã articolele cu valori repetate în câmpul index primar, dar nici nu admite existenþa unor astfel de articole pentru cã atunci acest index ºi-ar pierde rolul de identicator al articolelor din tabel. Cu alte cuvinte vom alege drept cheie primarã numai câmpuri care pot identifica exact orice înregistrare. Cheile primare nu trebuie declarate mai întâi ca index; ele se declarã direct din modul Design, prin selectare ºi apãsarea butonului cheie primarã , de pe bara de instrumente. Dacã se doreºte o cheie primarã compusã, se selecteazã primul câmp ºi apoi þinând tasta Ctrl apãsatã se selecteazã cu mouse-ul ºi celelalte câmpuri din compunerea cheii primare. Când s-au selectat toate câmpurile se dã click pe butonul cheie primarã. Cheie primarã, este desemnatã cu intenþia de lega tabelul care deþine o cheie primarã (tabel pãrinte) cu un alt tabel (copil) care deþine o cheie externã. În aceastã operaþiune unei chei primare îi corespunde o cheie externã, adicã un câmp din alt tabel, cu aceeaºi semnificaþie fizicã ºi cu acelaºi tip (Excepþie fac cheile primare de tip Autonumber, cãrora le vor corespunde chei externe de tip number, subtip Long integer) ºi lungime, dar nu neapãrat cu pretenþia ca acolo el sã includã valori unice.

Dealtfel, de regulã, relaþiile se creazã tocmai pentru cã cheia externã este un câmp cu valori multiple altminteri este foarte posibil ca cele douã tabele sã poatã fi combinate într-unul singur.

Într-un tabel nu poate fi decât o singurã cheie primarã, dar existenþa unei chei primare este obligatorie pentru cã altfel, pentru tabelul respectiv nu existã nici un criteriu de sortare. Dacã mai existã un câmp care ar putea identifica unic înregistrãrile, dar nu a fost desemnat cheie primarã, acela poate fi considerat cheie candidatã. Singurul index obligatoriu este cheia primarã.

Specificarea indecºilor simpli se face în modul de afiºare Design cu ajutorul proprietãþii Indexed. Indecºii compuºi, dar ºi cei simpli se pot selecta cu opþiunea Indexes din View sau cu butonul Indexes de pe bara cu instrumente Table Design, la selectarea cãrora va apare fereastra Indexes de mai jos,

Trebuie sã introducem numele indexului ºi apoi numele câmpului ce va deveni index, iar din liniile Primary, Unique ºi Ignore Nulls vom alege opþiunile Yes sau No din niºte comboboxes situate la extremitatea dreaptã a rândului corespunzãtor din zona Index Properties. În cazul indecºilor multipli, vom continua sã adãugãm nume de câmpuri, unul dupã altul, fãrã a mai umbla la coloana Index Name ºi nici în liniile din zona Index Properties, pânã ce vom introduce toþi indecºii din compunerea indexului compus (maximum 10 indecºi simpli).

ªtergerea unui index nedorit se face în tabelul Indexes, selectându-l cu un clic pe caseta gri din stânga numelui câmpului respectiv ºi apãsând Delete.

Nu instalaþi mai mulþi indecºi de cât este nevoie pentru cã atunci când adãugãm sau ºtergem articole într-un tabel fiºierul index este automat actualizat, ceea ce nu se observã când astfel de operaþii se fac manual, dar dacã vrem sã aducem câteva mii de articole automat prin copiere/import din alt tabel atunci procesul se va desfãºura inadmisibil de încet.

4. Relaþii între tabele

Din fereastra managerului bazei de date selectaþi Tools/ Relationship. Va rezulta fereastra fereastra Relationship ºi odatã cu ea ºi fereastra Show Table.

Dacã aceasta nu a apãrut, apã-saþi butonul Show Table ºi o sã aparã. De acolo selectaþi câte un tabel ºi apãsând pe butonul Add, mutaþi-l în fereastra Relationship. Când toate tabelele de care aveþi nevoie au fost mutate în fereastra Relationship, apãsaþi Close ºi veþi râmâne doar cu fereastra Relationship. În aceste tabele toate cheile primare apar scrise cu caractere aldine (bold).

Daþi clic pe câmpul cheie primarã din tabelul care vã intereseazã (tabelul pãrinte) ºi þinând butonul mouse-ului apãsat mutaþi cursorul pe cheia externã a tabelului copil. Acum va apare fereastra Edit Relationship de unde putem selecta caseta de validare Enforce referential Integrity ºi eventual Cascade Update Related Fiels ºi Cascade Delete Related Records.

De remarcat cã pentru a crea o relaþie între o cheie primarã compusã ºi o cheie externã simplã, trebuie selectat câmpul scris cu bold, din cheia primarã ºi apoi tinând Ctrl apãsat, vom da clic ºi pe cel de al doilea câmp implicat în cheia primarã apoi, þinând butonul mouse-ului apãsat, putem trage cursorul spre cheia externã ce ne intereseazã.

În final vom da click pe butonul Create ºi ca urmare fereastra Edit Relationship se va închide. Vom reveni în fereastra Relationship unde între cele douã tabele pe care le-am legat va apare o linie ce simbolizeazã legãtura creatã. Dãm mai jos un exemplu de fereastrã Relationship cu relaþiile gata fãcute.

Dacã am selectat Enforce referential Integrity, de acum legãturile dintre tabele devin realitate. Astfel cu Cascade Update Related Fiels vom putea fi siguri cã orice modificare fãcutã unei valori a cheii primare va fi transmisã automat valorilor cheii

externe la toate articolele care ar fi trebuit sã suporte modificarea respectivã. Opþiunea Cascade Delete Related Records are ca efect ºtergerea tuturor articolelor din tabelul copil, care în câmpul cheie primarã au o valoare identicã cu valoarea cheii primare din articolul din baza de date pãrinte, care a fost ºters. Nu ne râmâne decât dãm clic pe butonul din stânga sus al ferestrei Relationship pentru a închide fereastra.

De remarcat cã legãturile create între tabele se pot edita, inclusiv ºterge. Pentru aceasta se va da dublu clic pe legãtura respectivã ºi apoi se va apãsa tasta Delete. ªtergerea legãturilor este definitivã. Din fereastra Relationship se pot ºterge ºi tabele, mai ales tabelele care ne incomodeazã la redactarea legãturilor. Pentru aceasta se selecteazã tabelul ºi se dã clic, numai cã aceastã ºtergere nu ºterge nici tabelul nici legãturile sale. Este o debarasare a ferestrei Relationship, dar la viitoarea vizualizare a acesteia va apare baza de date completã cu toate legãturile existente.

În funcþie de tipul indexului atribuit cheii externe, relaþiile pot fi de tip 1 la1 sau 1 la mai multe. Cu o cheie primarã compusã se pot crea ºi relaþii de tip mai multe la mai multe.

Definirea unei relaþii de tip mai multe la mai multe

Pentru aceasta vom crea un al treilea tabel numit reuniune unde, printre altele, vom defini ºi douã câmpuri identice cu cele douã câmpuri desemnate cheie primarã, în cele douã tabele ce urmeazã a fi puse în relaþia mai multe la mai multe. În acest tabel ele vor forma o singurã cheie primarã (compusã) care va funcþiona drept cheie externã în relaþiile cu cele douã tabele date.

Dacã este cazul, în tabela reuniune, se pot aduce ºi alte câmpuri din tabelele ce urmeazã a fi puse în relaþia mai multe la mai multe.

În final vom defini câte o relaþie una la mai multe între fiecare din cele douã tabele date ºi tabelul reuniune. Adãugarea de articole se face fie creând o query care lucreazã cu mai mult de un tabel, fie un formular care lucreazã cu mai mult de un tabel.

UN exemplu de tabel reuniune poate fi unul numit Linie_facturã care va conþine un câmp cu numãrul facturii ºi un câmp cu codul produsului, în condiþiile în care existã deja un tabel cu facturi ºi unul cu produse. În acest tabel o facturã se poate regãsi la mai multe produse, iar un produs se poate regãsi pe mai multe facturi.

Este bine ca toate modificãrile de tip, subtip, index, chei, etc. sã se facã înainte de începerea completãrii tabelului cu date, pentru cã ulterior schimbãrile care presupun condiþii mai restrictive de lungime câmp sau de subtip, pot duce la piederi de informaþii sau la erori grave.

Dacã existã relaþii, nu se pot ºterge articole decât dupã ce s-au ºters toate articolele ce conþin în cheia externã valoarea cheii primare aflatã în articolul ce se doreºte a fi ºters.

Redenumirea unui tabel din compunerea unei baze de date In fereastra Database se dã clic pe denumirea tabelului ºi apoi se mai dã clic odatã, dar nu sub formã de dublu clic ºi ca urmare denumirea tabelului se transformã într-o cutie de text în care apare un cursor pentru editare. Se poate ºterge vechea denumire sau pãrþi din ea ºi se pot scrie alte caractere. În final se dã Enter.




Document Info


Accesari: 9253
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )