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: 9214
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. 2024 )