Documente Academic
Documente Profesional
Documente Cultură
ACCDB.accdb
i Lungime
Denumire atribut
Tabela
Tip dat
numar nota intrare Text
data document
Date/Time
cod gestiune
Text
8
Short Date
8
Incasari
Linii in documente
8
8
Single
Produse
Avize de expeditie
8
Short Date
8
8
8
8
Single
Byte
Single
8
20
20
Clienti
Documente de intrare
Linii in avize
Gestiune
numar aviz
data aviz
cod gestiune
cod client
numar aviz
cod produs
cantitate
procent tva
pret
cod gestiune
denumire gestiune
nume gestionar
Text
Date Time
Text
Text
Text
Text
Number
Number
Number
Text
Text
Text
Localitati
Denumire atribut
Tip dat
Lungime
numar document
data document
cod client
suma
tip de document
cod produs
denumire produs
unitate de msur
pret
stoc
cod client
denumire client
cod localitate
sold
cod localitate
denumire localitate
denumire judet
Text
Date/Time
Text
Number
Text
Text
Text
Text
Number
Number
Text
Text
Text
Number
Text
Text
Text
S
Short Date
8
Single
20
8
20
3
Single
Single
8
20
4
Single
8
20
20
Cmpurile care au coninut numeric, dar nu sunt folosite n calcule pot fi configurate ca de tip Text, fiind mai uor de
gestionat.
Cheia primar se seteaz dnd clic dreapta pe cmpul stabilit ca avnd acest rol i alegnd din meniul contextual
opiunea Primary Key. Aceeai opiune poate fi aleas din meniul Design.
n cazul n care este nevoie de cheie primar compus, se selecteaz primul cmp, apoi se alunec spre cellalt, dac
sunt alturate sau se ine apsat tasta Ctrl i se apas i pe cellalt cmp.
Pentru antrenare a se descrca Baza de date se afl n cadrul acestui document PDF
gestiune produse finite - simpla.accdb Baza de date n forma n care se pot stabili cheile primare, introdus valori
implicite, reguli de validare etc.
ACCDB.accdb
De regul, se bifeaz primele dou casete (Enforce Referential Integrity i Cascade Update Related Fields)
1
1.3 RESTRICII
1.3.1 Restrictii la nivel de atribut2
1. n tabela Clienti, denumirea clientului s fie obligatoriu cu majuscule.
Validation Rule: StrComp(UCase([denumire client]);[denumire client];0)=0
2. Validation Text: "DENUMIREA CLIENTULUI - CU MAJUSCULE !!!"
3. n tabela Linii in documente, cantitatea trebuie s fie pozitiv.
Validation Rule: >0
Validation Text: CANTITATEA TREBUIE SA FIE POZITIVA!!!
4. Tabela Produse, unitate de masura s aib prima liter scris cu majuscule.
3
Validation Rule : StrComp(Left(UCase([unitate de masura]);1);Left([unitate de masura];1);0)=0
Validation Text: "INTRODUCETI PRIMA LITERA MAJUSCULA !!!"
ACCDB.accdb
Ordinea de populare (introducere de date) se face ncepnd cu tabelele printe, apoi cu tabelele copil.
Atenie ca, regula de validare s fie aplicat cmpului solicitat! Ceea ce nseamn c, nti vom da clic pe cmpul respectiv apoi se
completeaz Validation Rule i Validation Text.
3
Dup cum se observ delimitatorul argumentelor funciilor este punctul i virgula (;), dar poate fi i virgula (,), funcie de setrile regionale
ale sistemului de operare.
4
Atunci cnd regula de validare solicit cel puin dou atribute, din meniul Design se alege opiunea Property Sheet, afind un panou n
partea dreapt, unde se introduce regula de validare n fereastra Validation Rule. Dac se dorete s se lucreze mai uor, se poate apsa pe
butonul cu trei puncte ( ), care apare cnd se selecteaz opiunea Validation Rule. Astfel va fi afiat formularul Expression Builder.
3
Pentru antrenare a se descrca Baza de date se afl n cadrul acestui document PDF
gestiune produse finite - populata.accdb Baza de date pentru antrenarea interogrilor, formularelor, rapoartelor etc.
ACCDB.accdb
1.5 INTEROGRI
1.5.1 Filtrarea i ordonarea direct a datelor dintr-o tabel5
[Ex. 1] S se identifice clienii din localitatea cu codul 1002, folosindu-se filtrarea direct a datelor.
Se d clic dreapta pe cmpul unde se dorete a se face filtrarea, iar din meniul contextual se alege una din variantele dorite.
Dup cum se constat, pe lng opiunea avansat Text Filters (dac cmpul este configurat de tip Number, apare
Number Filters), se poate face filtrare rapid, funcie de nregistrarea pe care ne aflm (n cazul de fa 1002)
Se folosete doar pentru a obine rezultate rapide, dar nu se prea practic ntr-o manier profesionist.
4
Adugare
tergere
sau
sau
TRANSFORM Sum([suma]) AS SumOfsuma
SELECT [cod client], Sum([suma]) AS [Total suma]
FROM incasari
GROUP BY [cod client]
PIVOT [tip de document]
Pentru a ajunge la aceste interogri, din meniul Create Query Design se ajunge la formularul Show Table. Se pot
aduga tabelele prin mai multe metode:
Dublu clic pe tabela/tabelele ce se doresc a fi interogate (este i metoda cea mai comod), sau
Clic pe fiecare tabel n parte i apsarea, de fiecare dat a butonului Add, sau
Selectarea tabelelor necesare (dac e nevoie, la selecie, se poate folosi i tasta Ctrl sau Shift, dup caz), apoi apsarea
butonului Add
Obs.
Adugarea de mai multe ori a unei tabele nu trebuie s sperie. Dup nchiderea formularului Show Table, pur i simplu, se
d clic pe tabela inutil i apoi tasta Delete.
Dac se dorete a se mai include n interogare i alt tabel, se poate apela din nou formularul Show Table, fie din meniul
Design, fie dnd clic dreapta pe fundalul unde sunt afiate simbolurile tabelelor i alegerea opiunii Show Table.
1.5.4.1 Interogri de selecie
[Ex. 4] S se ntocmeasc lista clienilor din localitatea cu codul 1002. lista va cuprinde numai denumirea clienilor.
SELECT [denumire client]
FROM clienti
WHERE [cod localitate]="1002"
Dac, n loc de SELECT, din meniul QUERY se alege opiunea Make-Table Query, se poate crea o nou tabel cu
rezultatul respectivei interogri. Mult mai simplu este, introducerea la fraza SQL, expresia INTO si numele noii tabele:
SELECT [denumire client] INTO [Tabela Noua]
FROM clienti
WHERE [cod localitate]="1002"
Parametru
Pentru realizarea unui parametru cu specificaie clar a tipului de dat solicitat, se alege din meniul Design, opiunea
Parameters, unde, n formularul ce apare se introduce expresia ce solicit inserarea unui element.
Ca i n exemplificrile de mai sus, vom prezenta la fiecare interogare utiliznd Query Design i alternativa SQL.
7
[Ex. 5] Care este coninutul avizului de expediie cu numrul 1002. lista va conine cmpurile: data aviz, denumire gestiune,
denumire client, denumire localitate (localitatea clientului), denumire produs, cantitate, procent TVA, pre.
SELECT [avize de expeditie].[numar aviz], [data aviz], [denumire gestiune], [denumire client], [denumire localitate], [denumire produs],
cantitate, [procent TVA], [linii in avize].pret
FROM produse
INNER JOIN ((gestiune
INNER JOIN (
(localitati
INNER JOIN clienti
ON localitati.[cod localitate] = clienti.[cod localitate])
INNER JOIN [avize de expeditie]
ON clienti.[cod client] = [avize de expeditie].[cod client])
ON gestiune.[cod gestiune] = [avize de expeditie].[cod gestiune])
INNER JOIN [linii in avize]
ON [avize de expeditie].[numar aviz] = [linii in avize].[numar aviz])
ON produse.[cod produs] = [linii in avize].[cod produs]
WHERE [avize de expeditie].[numar aviz]="1002"
Obs. Cmpurile [numar aviz] i pret au nevoie de referin la tabele deoarece, n interogarea dat, se gsesc n cel puin dou
tabele. La jonciuni, ns este evident c trebuie i referina pentru a ti de unde este cheia primar, respectiv cheia strin.
1.5.4.2 Interogri de adugare
[Ex. 6] Introducei n tabela Clieni clientul SC BENNY HILL S.R.L. cu codul 1008, din localitatea cu codul 1001, ce are
soldul 777.
Se apeleaz, ca la interogarea de selecie, meniul Create Query Design, doar c, din Show Table, nu se adaug nicio
tabel, ci se apas Close. Apoi, din meniul Design se alege opiunea Append Query (sau dnd clic dreapta pe fundalul unde ar
fi fost tabelele.
DELETE *
FROM clienti
WHERE [cod client]="1008"
1.5.4.5
[Ex. 9]
Lista clienilor din localitatea cu codul 1002. Lista [Ex. 10] Care sunt clienii din localitatea cu codul 1006 care
va cuprinde numai denumirea clienilor.
au soldul >1000. Lista va cuprinde: denumire
SELECT [denumire client]
client, cod client.
FROM clienti
WHERE [cod localitate]= "1002"
Care sunt documentele de intrare emise ntre 15 februarie i 15 martie 2006. Lista va cuprinde numrul i data
documentului.
sau
Obs: Data calendaristic s-a scris n format ISO: YYYY/MM/DD. Se pot folosi i: DD/MM/YYYY sau MM/DD/YYYY.
n loc de slash (/) se poate folosi ca delimitator i cratim (-)
[Ex. 12]
Care sunt clienii din judeul cu codul IS. Lista va cuprinde doar denumirea clienilor.
Varianta 17)
Varianta 2)
[Ex. 13] ntocmii lista clienilor din judeul Iai n ordinea [Ex. 14] ntocmii lista clienilor din judeul Iai, ordonat
alfabetic a denumirii acestora. Lista va cuprinde:
dup soldul descresctor. Lista va cuprinde
denumirea clientului i soldul acestuia.
denumire client i sold
SELECT [denumire client], [sold]
FROM clienti c, localitati l
WHERE c.[cod localitate]=l.[cod localitate]
AND [denumire judet]= "IS"
ORDER BY [denumire client]
[Ex. 15] Ce ncasri s-au fcut n perioada 1 ianuarie 2006 31 martie 2006, cu valori ntre 1000 i 10000 de la clienii a
cror denumire ncepe cu una din literele de la A la S.
Varianta 1)
Varianta 2)
SELECT i.*
FROM incasari i, clienti c
WHERE i.[cod client]=c.[cod client]
AND [data document] BETWEEN #2006/01/01#
AND #2006/03/31#
AND suma BETWEEN 1000 AND 10000
AND MID([denumire client],1,1) BETWEEN "A" AND "S"
SELECT i.*
FROM incasari i, clienti c
WHERE i.[cod client]=c.[cod client]
AND MONTH([data document]) BETWEEN 1 AND 3
AND YEAR([data document])
AND suma BETWEEN 1000 AND 10000
AND LEFT([denumire client],1) BETWEEN "A" AND "S"
Atunci cnd se lucreaz cu interogri SQL, un avantaj al scrierii eficiente este redat de alias-uri: n loc de numele unei tabele, se declar o
liter sau dou pentru a nlocui numele tabelei cu acel alias.
SELECT [denumire client]
FROM clienti c, localitati l
WHERE c.[cod localitate]=l.[cod localitate]
AND [denumire judet]= "IS"
10
Obs: Cu ajutorul operatorului UNION se realizeaz reuniunea a dou sau mai multe interogri.
Se elimin automat liniile identice. Dac se dorete obinerea tuturor liniilor din respectivele mulimi, se folosete clauza ALL
Este obligatoriu ca, numrul cmpurilor din tabelele reunite s fie egal.
[Ex. 17] ntocmii fia produsului avnd codul 1001 (fia produsului conine stocul iniial, intrrile i ieirile pentru
produsul respectiv)
SELECT 'Stoc initial' AS TipDoc, SPACE(8) AS NrDoc, stoc AS Cantitate
FROM produse
WHERE [cod produs] = '1001'
UNION
SELECT 'Nota intrare', [numar nota intrare], cantitate
FROM [linii in documente]
WHERE [cod produs]='1001'
UNION
SELECT 'Aviz de expeditie', [numar aviz], cantitate
FROM [linii in avize]
WHERE [cod produs]='1001'
[Ex. 21]
SELECT c.*
FROM clienti c, localitati l
WHERE c.[cod localitate]=l.[cod localitate]
AND l.[denumire judet] IN ('IS','VS', 'SV', 'BT')
SELECT c.*
FROM clienti c, localitati l
WHERE c.[cod localitate]=l.[cod localitate]
AND (l.[denumire judet] = 'IS'
OR l.[denumire judet] = 'VS'
OR l.[denumire judet] = 'SV'
OR l.[denumire judet] = 'BT')
Varianta 3) Mulimea n care caut IN nu e neaprat o list de valori; poate fi mulimea obinut dintr-o subinterogare
SELECT *
FROM clienti
WHERE [cod localitate] IN
(SELECT[cod localitate]
FROM localitati
WHERE [denumire judet] IN ('IS', 'VS', 'SV', 'BT'))
8
9
[Ex. 24] Cte documente de intrare s-au ntocmit n gestiunea lui Popescu n anul 2006
SELECT COUNT (*)
FROM gestiune g, [documente de intrare] d
WHERE g.[cod gestiune]=d.[cod gestiune]
AND UCASE([nume gestionar]) LIKE '*POPESCU*'
AND YEAR([data document])=2006
[Ex. 25] Care este valoarea ncasrilor de la clientul cu [Ex. 26] Care a fost suma total a soldurilor clienilor?
codul 1001?
SELECT SUM(sold) AS Total
FROM clienti
[Ex. 27]
[Ex. 28] Care este volumul ncasrilor din luna [Ex. 29] Care este totalul vnzrilor din luna februarie 2006?
februarie 2006?
SELECT SUM(cantitate*pret*(1+[procent TVA]/100))
SELECT SUM(i.suma) AS Total
FROM incasari i
WHERE MONTH([data document])=2
AND YEAR([data document])=2006
[Ex. 30]
[Ex. 31]
[Ex. 35]
Care sunt documentele de intrare cu cele mai multe linii (pot exista mai multe documente cu acelai numr maxim de
linii)? Lista va cuprinde doar numerele documentelor de intrare.
SELECT [numar nota intrare]
FROM [linii in documente]
GROUP BY [numar nota intrare]
HAVING COUNT(*)=(
SELECT MAX(cate) FROM (
SELECT COUNT(*) AS cate
FROM [linii in documente]
GROUP BY [numar nota intrare]))
Obs:
Clauza GROUP BY determin grupuri pe baza valorilor luate de unul sau mai multe cmpuri. Aceast clauz are sens
doar dac se folosete n interogare cel puin o funcie de agregare.
Clauza HAVING este asemntoare cu clauza WHERE, numai c opereaz cu funcii de agregare asupra grupului.
Pentru antrenare a se descrca Baza de date se afl n cadrul acestui document PDF
gestiune produse finite - finala.accdb Baza de date completat pentru verificare
ACCDB.accdb
1.6 RAPOARTE
1.6.1 Asistentul de rapoarte
S se realizeze un raport simplu care s conin toate informaiile despre gestiunile existente i persoanele
responsabile cu administrarea lor.
Alegerea tabelei Gestiune, fr a se deschide, dnd clic panoul obiecte, din stnga. Apoi, click pe opiunea Report,
din meniul Create, grupul de butoane Report10.
[Ex. 37]
Rezultatul este afiat n modul de vizualizare Layout View, de unde se mai pot ajusta dimensiunile obiectelor. Dac se
dorete vizualizarea produsului finit, se alege Print Preview sau Report View.
10
n aceeai manier rapid se poate realiza i un formular, n cazul de fa pentru actualizarea gestiunii.
13
Periodic serviciul vnzri solicit o list actualizat a clienilor pentru a analiza sumele ncasate i debitele pe care
le au produsele vndute fiecruia dintre ei.
14
Periodic, serviciul de vnzri solicit lista actualizat a clienilor n vederea elaborrii politicilor de marketing pe
localiti.
Proiectarea raportului
Macheta raportului
Lista clienilor la data de 3/21/2007
Codul
localitii
1005
1002
1002
1006
1005
1006
1007
2.
Denumirea
localitii
Brlad
Iai
Iai
Galai
Brlad
Galai
Tecuci
Denumirea
judeului
VS
IS
IS
GL
VS
GL
GL
Pag 1
Codul
clientului
1001
1002
1003
1004
1005
1006
1007
Denumirea clientului
SC KOMBASAN SA
SC UNIREA SA
SC HOFFER SA
SC CORAL SRL
SC AMBRAS SA
SC VADUL SA
SC HORBAD SRL
Interogarea Rap_3_clienti_pe_localitati11
SELECT l.[cod localitate], [denumire localitate], [denumire judet], [cod client], [denumire client]
FROM localitati l, clienti c
WHERE l.[cod localitate]=c.[cod localitate]
11
Readucem aminte c, pentru a economisi timp, n loc de a scrie numele unei tabele, ntr-o interogare se poate folosi alias-ul care ajut
nlocuind un cuvnt sau mai multe cu o liter sau dou... (astfel, n loc de Localiti ajunge doar un L, iar n loc de Clieni se poate folosi un
sugestiv C)
15
Construirea raportului
Click dreapta pe raport i selectarea opiunii Properties sau din meniul Design, alegerea opiunii Property Sheet.
Inserarea cmpurilor prin tragere, din acest tabel, n zona Detail a raportului.
Controlul de tip Label, care conine denumirea cmpului respectiv va fi dus n zona Page Header.
Afiarea/ascunderea zonelor Page Header/Footer sau Report Header/Footer se poate realiza
fie dnd clic pe butoanele din meniul Arrange sau din meniul contextual, dnd clic dreapta pe
una din benzile pe care scrie Detail, Page Header sau Report Header ori Report Footer sau
Page Footer.
Atribuirea unui titlu raportului i inserarea datei curente se
face alegnd opiunea Title, respectiv Date &Time din meniul Design. Va aprea un obiect de tip
Label, n care se introduce textul: Lista clienilor pe localiti la data de i formatarea textului de
tip Garamond, 16 pt.
Periodic, serviciul marketing solicit o situaie a produselor vndute, grupate pe clieni, care s conin denumirea
clienilor, denumirea produselor, cantitile livrate, unitile de msur, procentul TVA, preurile, numrul i data
avizelor de expediie. Valoarea total a vnzrilor se va determina att pentru fiecare client, ct i pentru toi clienii
la sfritul raportului.
1. Proiectarea raportului
Lista produselor vndute clienilor pn la data 3/21/2006
Denumirea clientului
Numrul
avizului
Procentul
TVA
Preul
02.06.2006 Cornuri
30 Buc
19
02.06.2006 Lapte
12 L
19
Valoarea produselor vndute clientului SC HOFFER SA
25
12,5
17,5
Data
avizului
Denumirea
produsului
Cantitatea
Unitatea
de
msur
SC HOFFER SA
1005
1006
16
Kg
02.05.2006 Biscuii
25 Buc
19
02.05.2006 Covrigi
10 Kg
19
02.07.2006 Colaci
4 Buc
19
Valoarea produselor vndute clientului SC KOMBASAN SA
Valoarea total a produselor vndute
12
15
20
47
64,5
12
2. Pregtirea datelor
SELECT [denumire client], AE.[numar aviz], [data aviz], [denumire produs], cantitate, [unitate de masura], [procent TVA],
LA.pret, LA.[cod produs]
FROM clienti C, [avize de expeditie] AE, [linii in avize] LA, produse P
WHERE C.[cod client]=AE.[cod client] AND AE.[numar aviz]=LA.[numar aviz]
AND LA.[cod produs]=P.[cod produs]
3. Construirea raportului
Aidoma exemplului anterior
4. Gruparea nregistrrilor. Meniul Design Group & Sort. La denumire client, n partea inferioar a ferestrei se alege
pentru Group Header, Group Footer se alege opiunea Yes.
12
Dup cum se remarc, reamintim c dup SELECT, cmpurile care sunt unice (nu se regsesc n mai multe tabele, cum este deseori cazul
cheilor sau, ca n exemplul nostru, PRET, nu necesit referina la tabel. Obligatoriu, ns ea se va trece la realizarea punii, prin
intermediul cheilor. Aliasul poate fi precedat sau nu de particula AS: clienti C este identic cu clienti AS C
17
1.7 FORMULARE
[Ex. 41] S se realizeze un formular care s permit actualizarea ambelor tabele: localitati i clienti.
4. Proiectarea formularului
Macheta formularului
Actualizare clieni
Cod localitate
Denumire localitate
Jude
Clieni
5.
Cod client
Denumire client
Sold
Definirea formularului cu asistentul de formulare. Din meniul Create se alege dnd clic pe More Forms, opiunea
Form wizard.
18
[Ex. 42]
S se realizeze un formular, denumit Avize de expediie, pentru actualizarea informaiilor despre produsele livrate
clienilor dup macheta urmtoare
Denumire produs
Data curent
Data
Cantitate
Denumirea clientului
Unitate de msur
Procent TVA
Pre
Aviz nou
Cutare
tergere
Valoarea total a avizului de expediie numrul
|<
<
Salvare
>
>|
19
nchidere formular
20
2 EVIDEN STUDENI
2.1 Crearea tabelelor i definirea restriciilor
Pentru antrenare a se descrca Baza de date se afl n cadrul acestui document PDF
EvStud - simpla.accdb Baza de date necesar pentru antrenarea cheilor, restriciilor, regulilor de validare
ACCDB.accdb
1.
PK
Atribut
(Field Name)
Tip
(Data Type)
Matricol
NumePren
CNP
Specializare
AnStudii
Fstudii
Grupa
Text
Text
Text
Text
Number
Text
Number
CodDisc
DenumireDisc
NrCredite
NrOreCurs
NrOreSeminar
Text
Text
Number
Number
Number
Matricol
CodDisc
DataEx
NotaEx
2.
Text
Text
Date/Time
Number
Lungime
Valori implicite
(Field Size)
(Default Value)
STUDENTI
10
40
15
50
"Trunchi comun"
Long Integer
1
2
"ID"
Long Integer
1
DISCIPLINE
6
40
Long Integer
6
Long Integer
28
Long Integer
28
EXAMENE
10
6
"AE1101"
IIF(DATE()<#20/01/2006#;DATE();#20/01/2006#)
Long Integer
7
Reguli de validare
2.1.2.1 La nivel de atribut
Atribut
(Field Name)
Restrictii
Validation Rule
STUDENTI
Validation Text
Matricol
Specializare
AnStudii
Fstudii
Grupa
StrComp(UCASE([Matricol]);[Matricol];0)=0
StrComp(LEFT(UCASE([Specializare]);1);LEFT([Specializare];1);0)=0
[AnStudii] BETWEEN 1 AND 5
[Fstudii] IN ('ZI';'ID')
[Grupa]>0
CodDisc
NrCredite
NrOreCurs
NrOreSeminar
StrComp(UCASE([CodDisc]);[CodDisc];0)=0
<=8
<=42
<=42
DataEx
NotaEx
DISCIPLINE
Literele din CodDisc cu majuscule!
Nr credite nu mai mult de 8!
Nr orelor de curs nu mai mult de 42!
Nr orelor de seminar nu mai mult de 42!
EXAMENE
Numai lunile IAN, FEB, MAI, IUN sau IUL din 2006!
Nota este cuprinsa intre 1 - 10!
Restrictii
(Validation Rule)
STUDENTI
[AnStudii]<>4 OR [AnStudii]=4 AND [Grupa]<=10
DISCIPLINE
[NrOreCurs]+[NrOreSeminar]<=70
EXAMENE
[CodDisc]<>'AE1101' OR [CodDisc]='AE1101' AND [DataEx] IN
(#28.01.2006#;#02.11.2006#;#07.04.2006#)
21
3.
Eviden studeni
Declararea restriciilor refereniale
Legtura se realizeaz apelnd n meniul DATABASE TOOLS, opiunea RELATIONSHIPS.
n tabela printe, se d clic pe cheia primar, se ine apsat butonul stnga i se deplaseaz peste cmpul cu acelai
nume din tabela printe i se elibereaz apoi mouse-ul.
22
ACCDB.accdb
Eviden studeni
1.
a) Care sunt studenii din anul III, specializarea Informatic economic, ZI?
condiie.
O alt modalitate este: n zona alocat tabelei (gri) sau pe banda de titlu (Query1: Select Query) se apas mouse-ul cu clic
dreapta i se alege opiunea SQL View.
13
23
Eviden studeni
Varianta 1 utilizarea Query Design
Varianta 2 utilizarea SQL View
SELECT *
FROM studenti
WHERE [NumePren] Like '*Vasile'
OR [NumePren] Like '*Sile'
OR [NumePren] Like '*Vasilica'
Not: Pentru a face proba, n tabela Studeni am mai introdus un nou student.
i) Care este codul disciplinelor la care s-au susinut examene n luna februarie 2006?
24
Eviden studeni
2.
Note: 1. Clauza DISTINCT elimin apariia repetat a unui examen, n cazul n care ar da mai multe examene n aceeai zi.
2. Se va avea n vedere formatul datei. Este posibil ca cel romnesc s nu fie acceptat, de aceea este bine a se ncerca,
spre exemplu i formatul: #1/28/2006#. A nu se uita de simbolul #.
c) Care sunt studenii de la Trunchi comun, Zi, Anul I care au picat mcar un examen n februarie 2006?
3.
c) rezultatele din 14 februarie 2006 ale grupei 1 din anul IV, specializarea Marketing, zi, la disciplina Cercetri de
marketing (situaia va cuprinde matricolul, numele i nota);
Not: Pentru a face proba, a fost introdus un student la specializarea cerut i specializarea Marketing (CodDisc: AE4002)
4.
25
Eviden studeni
mai
mare
not
la
f) Care este cea mai mic not obinut la nivelul anului III,
specializarea Informatic Economic, Zi?
Not: Chiar dac nu este necesar, este mai prudent a plasa un cmp ntre paranteze ptrate, atunci cnd el reprezint
argumentul unei funcii, adic este plasat i ntre paranteze rotunde. Parantezele ptrate se folosesc atunci cnd
denumirea unui cmp, tabel etc. au mai mult de un cuvnt.
g) Care este media grupei 1 din anul III, specializarea
Informatic Economic, Zi, la disciplina Baze de date
I pentru examenul susinut pe 24 ianuarie 2006?
5.
26
Eviden studeni
6.
27
Eviden studeni
7.
b) Care sunt studenii care au susinut n sesiunile ianuariefebruarie 2006 mai mult de 3 examene?
c) tiind c facultatea are doar patru sli pentru examinare, s se extrag zilele n care numrul examenelor este mai
mare dect cel al slilor.
Pentru antrenare a se descrca Baza de date se afl n cadrul acestui document PDF
EvStud - rezolvata.accdb Baza de date rezolvat, pentru verificare
28
ACCDB.accdb
3 EVIDENA VNZRILOR
3.1 Detalii baz date
Pentru antrenare a se descrca Baza de date se afl n cadrul acestui document PDF
EvidVanzari - simpla.accdb Baza de date necesar pentru antrenarea cheilor, restriciilor, regulilor de validare
PK
Denumire atribut
Tipul de
datii
Valori
implicite
Lungime
Reguli de validare
Clieni
Cod client
Denumire client
Localitate
Strada
Numar strada
Distanta
Number
Text
Text
Text
Number
Number
Long integer
25
15
15
Integer
Integer
0
0
>=0
>=0
(14)
ACCDB.accdb
Text
validare
(15)
(16)
(17)
Comenzi
Cod cda
Numar cda
Cod client
Cod produs
Cantitate
Data comenzii
Number
Number
Number
Number
Number
Date/Time
Long integer
Long integer
Long integer
Long integer
Long integer
Short Date
Cod produs
Denumire produs
U_M
Pret intreg
Number
Text
Text
Number
Produse
Long integer
20
3
Single, Decimal Places
(14)
29
34500
>=0
<=DATE()
(18)
(20)
IN ("BC";"ML";"TO";"MP";"MC")
(21)
(19)
Evidena vnzrilor
3.3 Interogri
Pentru antrenare a se descrca Baza de date se afl n cadrul acestui document PDF
EvidVanzari - populata.accdb Baza de date cu restricii i populat, pentru antrenamentul cu interogri.
ACCDB.accdb
[Ex. 1.1.] Lista comenzilor (numar comanda, data comenzii, denumire client, cantitate, pre ntreg) pentru clienii din Iai care
au comandat cantiti mai mari de 2000 um.
Query Design
SQL
SELECT [Numar cda], [Data comenzii], [Denumire client], Cantitate, [Pret intreg]
FROM Produse INNER JOIN
(
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
WHERE Cantitate>2000 AND Localitate="Iasi"
30
Evidena vnzrilor
Rezultat
[Ex. 1.2.] Lista comenzilor (numar comanda, data comenzii, denumire client, cantitate, pre ntreg) pentru clienii din Iai sau
pentru cei care au comandat cantiti mai mari de 2000 um.
Query Design
SQL
SELECT [Numar cda], [Data comenzii], [Denumire client], Cantitate, [Pret intreg]
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
WHERE Localitate="Iasi" OR Cantitate>2000
Rezultat
[Ex. 2.] Lista clienilor care au comandat produsul Sacou AC-226 (denumire client, numr comand, data comenzii, denumire
produs, cantitate)
Query Design
31
Evidena vnzrilor
SQL
SELECT [Denumire client], [Numar cda], [Data comenzii], [Denumire produs], Cantitate
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client])
ON Produse.[Cod produs] = Comenzi.[Cod produs]
WHERE [Denumire produs]="Sacou AC-226"
Rezultat
[Ex. 3.] Lista clienilor care au trimis comenzi n luna martie (denumire client, numar comanda, data comenzii, denumire
produs)
Query Design
SQL
SELECT [Denumire client], [Numar cda], [Data comenzii], [Denumire produs]
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
WHERE Month([Data comenzii])=3
Rezultat
SQL
SELECT Localitate, [Denumire produs]
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
32
Evidena vnzrilor
Rezultat
[Ex. 5.] Lista produselor comandate de clientii din Suceava i Vaslui (denumire client, data comenzii, denumire produs,
cantitate)
Query Design
SQL
SELECT [Denumire client], [Data comenzii], [Denumire produs], Cantitate
FROM Produse INNER JOIN (
Clienti INNER JOIN Comenzi ON Clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
WHERE Localitate="Suceava" Or Localitate="Vaslui"
Rezultat
[Ex. 6.] Lista comenzilor n care cantitatea este mai mare de 2000 iar preul de nregistrare este de peste 150000 lei.
Query Design
33
Evidena vnzrilor
SQL
SELECT [Numar cda], Cantitate, [Denumire produs], [Pret intreg]
FROM Produse LEFT JOIN Comenzi ON Produse.[Cod produs] = Comenzi.[Cod produs]
WHERE Cantitate>=2000 AND [Pret intreg]>=150000
Rezultat
Rezultat
[Ex. C2.] Lista clienilor n ordine alfabetic: denumire client, cod client, localitate.
Query Design
SQL
SELECT [Denumire client], [Cod client], Localitate
FROM Clienti
ORDER BY [Denumire client]
Rezultat
22
Clauza DISTICT elimin repetarea valorilor care apar mai mult de o dat.
34
Evidena vnzrilor
[Ex. C3.] Lista clienilor, n ordine alfabetic, pe localiti
Query Design
SQL
Rezultat
[Ex. C4.] Lista clienilor, n ordinea alfabetic a localitilor i n ordinea descresctoare a atributului cod client.
Query Design
SQL
35
Evidena vnzrilor
Rezultat
[Ex. C5.] Lista comenzilor ntocmite de clienii din Iai: cod comanda, numar comanda, denumire client, localitate
Query Design
SQL
Rezultat
[Ex. C6.] Lista produselor comandate, n ordinea descresctoare a cantitilor: numar comanda, cod produs, denumire
produs, cantitate, valoare
36
Evidena vnzrilor
Query Design
SQL
SELECT [cod cda], Produse.[Cod produs], [Denumire produs], Cantitate, Cantitate*[Pret intreg] AS Valoare
FROM Produse INNER JOIN Comenzi
ON Produse.[Cod produs] = Comenzi.[Cod produs]
ORDER BY Cantitate DESC
Rezultat
[Ex. C7.] Totalul valoric al comenzilor emise de clienii din aceeai localitate: localitate, total comandat.
Query Design
SQL
SELECT Localitate, Sum([Cantitate]*[Produse].[Pret intreg]) AS Valoare
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
GROUP BY Localitate
37
Evidena vnzrilor
Rezultat
[Ex. C8.] Lista produselor comandate n a cror denumire primele litere sunt Sa (cod produs, denumire produs, pre
nregistrare)
Query Design
SQL
SELECT Comenzi.[Cod produs], [Denumire produs], [Pret intreg]
FROM Produse INNER JOIN Comenzi
ON Produse.[Cod produs] = Comenzi.[Cod produs]
WHERE [Denumire produs] Like "Sa*"
Rezultat
[Ex. C9.] Situaia produselor comandate (cod client, nr. de comenzi, valoare)
Query Design
SQL
SELECT [Denumire client], Count(Comenzi.[cod cda]) AS [Nr comenzi], Sum([Cantitate]*[Pret intreg]) AS Valoare
FROM Clienti INNER JOIN (
Produse INNER JOIN Comenzi ON Produse.[Cod produs] = Comenzi.[Cod produs]
) ON Clienti.[Cod client] = Comenzi.[Cod client]
GROUP BY [Denumire client];
38
Evidena vnzrilor
Rezultat
[Ex. C10.] Situaia produselor comandate (cod client, nr de comezi, valoare medie pe comand, nr produse comandate)
Query Design
SQL
SELECT [Denumire client], Count([cod cda]) AS [Numarul comenzilor], Avg([Cantitate]*[Pret intreg]) AS Media
FROM Produse INNER JOIN (
Clienti INNER JOIN Comenzi ON Clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
GROUP BY [Denumire client]
Rezultat
39
Evidena vnzrilor
[Ex. C11.] Lista comenzilor care au comandat produsul Sacou (denumire client, localitate, denumire produs, cantitate)
Query Design
SQL
SELECT [Denumire client], Localitate, [Denumire produs], Cantitate
FROM Produse INNER JOIN (
Clienti INNER JOIN Comenzi ON Clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
WHERE [Denumire produs] Like "Sacou*"
Rezultat
[Ex. C12.] Lista tuturor clienilor firmei, care au sau nu comenzi (Cod client, denumire client, localitate, Numar cda, Data
comenzii)
Query Design
SQL
SELECT Clienti.[Cod client], [Denumire client], Localitate, [Data comenzii]
FROM Clienti LEFT JOIN Comenzi
ON Clienti.[Cod client] = Comenzi.[Cod client]
40
Evidena vnzrilor
Rezultat
[Ex. S1.]
SQL
SELECT Clienti.[Cod client], [Denumire client], Localitate
FROM Clienti LEFT JOIN Comenzi
ON Clienti.[Cod client] = Comenzi.[Cod client]
WHERE [cod cda] Is Null
Rezultat
41
Evidena vnzrilor
Varianta Subquery
Query Design cu SubQuery
SQL cu SubQuery
SELECT [Cod client], [Denumire client], Localitate
FROM Clienti
WHERE [Cod client] Not In (
SELECT [cod client] FROM comenzi
)
[Ex. S2.]
(23)
23
Acest buton poate fi apelat atunci cnd se dorete ca parametrul s accepte oar un anumit tip de dat. Utilizarea sa este
important, n special pentru datele de tip numeric, monetary, date/time, deoarece utilizatorul poate fi avertizat explicit cnd
greete tipul de dat, la introducere. Dac parametrul este configurat s accepte date de tip text, nu va aprea niciun mesaj de
eroare, orice s-ar introduce fiind interpretat ca text.
De regul, se ignor folosirea acestui mod de declarare a parametrului, rezumndu-se la introducerea lui direct n zona Criteria.
Astfel, varianta simpl este:
SELECT [Cod client], [Denumire client], Localitate
FROM clienti
WHERE Localitate=[Care este localitatea?]
42
Evidena vnzrilor
SQL
PARAMETERS [Care este localitatea?] Text ( 255 ) ;
SELECT [Cod client], [Denumire client], Localitate
FROM clienti
WHERE Localitate=[Care este localitatea?]
[Ex. S3.]
SQL
SELECT *
FROM clienti
WHERE [Denumire client] Like "*Srl"
Rezultat
[Ex. S4.]
Evidena vnzrilor
Query Design
SQL
SELECT [Denumire client], Localitate
FROM clienti
WHERE Localitate Like "???????"
Rezultat
[Ex. S5.]
SQL
SELECT Comenzi.[Cod produs], [Denumire produs], [Pret intreg], [Denumire client], Localitate
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
WHERE Localitate Not Like "????"
Rezultat
44
Evidena vnzrilor
[Ex. S6.]
SQL
SELECT Comenzi.[Cod produs], [Denumire produs], [Pret intreg], [Denumire client], Localitate
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
WHERE Localitate Not Like "*i"
Rezultat
[Ex. S7.]
SQL
SELECT Comenzi.[Cod client], [Denumire client], Count([cod cda]) AS [Nr comenzi], Sum(Cantitate*[Pret intreg]) AS Valoare
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
GROUP BY Comenzi.[Cod client], [Denumire client]
Rezultat
45
Evidena vnzrilor
[Ex. S8.]
SQL
SELECT Localitate, Count([cod cda]), Sum(Cantitate*[Pret intreg]) AS Valoare
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
GROUP BY Localitate
Rezultat
[Ex. S9.]
SQL
SELECT Comenzi.[Cod client], [Denumire client], Count([cod cda]) AS [Nr comenzi], Sum(Cantitate*[Pret intreg]) AS Valoare
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
GROUP BY Comenzi.[Cod client], [Denumire client]
HAVING Count([cod cda])>1
Rezultat
46
Evidena vnzrilor
[Ex. S10.] Lista produse comandate
Query Design
SQL
Rezultat
SQL
SELECT [Denumire produs], [Cod produs]
FROM Produse
WHERE [Cod produs] Not In (
SELECT [cod produs] FROM comenzi
)
Rezultat
47
Evidena vnzrilor
[Ex. S12.] Lista valorilor comenzilor pentru fiecare client
Query Design
SQL
SELECT [Denumire client], [Numar cda], [Data comenzii], Cantitate*[Pret intreg] AS Valoare
FROM Produse INNER JOIN (
clienti INNER JOIN Comenzi ON clienti.[Cod client] = Comenzi.[Cod client]
) ON Produse.[Cod produs] = Comenzi.[Cod produs]
Rezultat
Pentru antrenare a se descrca Baza de date se afl n cadrul acestui document PDF
EvidVanzari - rezolvata.accdb Baza de date rezolvat, pentru verificare
48
ACCDB.accdb
ACCDB.accdb
Clic dreapta pe
cmpul CODAG i
alegerea opiunii
Primary Key
La tabela CLIENTI, de aceeai manier, se stabilete cheia primar cmpul CODCL, iar pentru tabela
COMENZI, unde cheia primar este NRCOM.
legturile dintre tabele i restriciile refereniale: a se vedea n figura de mai jos.
ACCDB.accdb
ACCDB.accdb
restricii:
o n tabela Autobuze literele din cmpul Numar s fie majuscule.
StrComp(UCASE([numar]);[numar];0)=0
o n tabela Plecari, oferului Zaharia Cezar (marca 1010) i sunt interzise cursele spre Bacau26.
IIF([marca]=1010;IIF([destinatie]="Bacau";False;True);True)
fraz SELECT SQL pentru obinerea listei cu plecrile spre Bacu, realizate cu autobuze care au mai mult de 40 de locuri.
24
Cheia alternativ ar fi CNP-ul, pe care-l regsii n enun, la tabela SOFERI, dar nemaifigurat n tabela propriu-zis. Pe lng atributul
Indexed, setat Yes (No Duplicates), ar mai putea fi ales i Required cu opiunea Yes, pentru a evita valori nule.
25
A nu se face confuzia ntre cmpul NUMAR, existent n tabelele AUTOBUZE i PLECRI, cu cmpul NUMAR din tabela SOFERI, care
se refer la numrul strzii i nu al autobuzului ca n primele tabele.
26
Validare la nivel de nregistrare (Property Sheet) pentru c avem nevoie de dou cmpuri.
50
ACCDB.accdb
Dispunei de baza de date APROV care conine tabelele: FURNIZOR(Codfurn, Numefurn, Localitate,
Banca), APROVIZIONARE(Nrfactura, Data, Categorie, Codfurn, Valoarefact) i PLATI(Nrfactura,
Dataplata, Valoare).
Se cere:
S se analizeze structura tabelei Plati i s se stabileasc cheia primar.
S se stabileasc legturile permanente dintre tabele i s se aplice restriciile refereniale.
S se nregistreze n baza de date o nou aprovizionare: de la un furnizor nou de birotic (datele
despre furnizor: 1010, FLAMINGO SRL, Iasi, BRD), factura nr. 12445, din 10 mai 2011, n valoare
de 215 lei.
S se afieze o list a furnizorilor din Iasi sau Vaslui.
S se scrie o fraz SELECT SQL pentru a obine o list a facturilor din categoria utilitati, cu
valoarea de peste 200 lei (Nrfactura, Numefurn, Data, Valoarefact).
S se ntocmeasc un raport al aprovizionrilor (Numr factur, Data, Nume furnizor, Valoare), cu
gruparea nregistrrilor dup categoria de furnizor. Pentru fiecare categorie de furnizor se va calcula
totalul valoric al facturilor.
Propunere de rezolvare
cheia primar pentru tabela Pli conform figurii de mai jos.
legturile permanente dintre tabele i restriciile refereniale.
aprovizionare nou: de la un furnizor nou de birotic (datele despre furnizor: 1010, FLAMINGO SRL, Iasi, BRD), factura
nr. 12445, din 10 mai 2011, n valoare de 215 lei.
INSERT INTO Aprovizionare (nrFactura, data, valoareFac, codFurn, categorie )
SELECT 12445, #5/10/2010#, 215, 1010, "birotica"
sau27
i
27
Se alege din meniul Design opiunea Append Query. n acest formular se va aduga tabela dorit (de ex. APROVIZIONARE).
n formularul structurii interogrii se scrie la Field noua nregistrare (de ex. 12445) i la Append To cmpul unde se adaug
nregistrarea (de ex. NrFactura). La fel se face i cu restul nregistrrilor.
A se avea n vedere urmtoarele aspecte: la valori tip dat se vor scrie ntre simbolul #, la text, ntre ghilimele.
De asemenea, dac trebuie s facem adugri n mai multe tabele trebuie respectate ordinea populrii: nti prinii.
51
sau
n oricare din variantele alese, aciunea se finalizeaz apsnd butonul Run (!) din meniul Design. Verificarea
operaiunii se face deschiznd tabelele i urmrind dac s-au operat adugrile.
Lista a furnizorilor din Iasi sau Vaslui.
sau
SELECT codFurn, numeFurn, localitate, banca
FROM Furnizori
WHERE localitate="Iasi"
OR localitate="Vaslui"
Lista facturilor din categoria utilitati, cu valoarea de peste 200 lei (Nrfactura, Numefurn, Data, Valoarefact).
SELECT nrFactura, numeFurn, data, valoareFac
FROM Furnizori INNER JOIN Aprovizionare
ON Furnizori.codFurn = Aprovizionare.codFurn
WHERE valoareFac>=200 AND categorie="utilitati"
Raport al aprovizionrilor (Numr factur, Data, Nume furnizor, Valoare), cu gruparea nregistrrilor dup categoria de
furnizor. Pentru fiecare categorie de furnizor se va calcula totalul valoric al facturilor 28.
Pentru antrenare a se descrca Baza de date se afl n cadrul acestui document PDF
Aprov-rez.accdb Baza de date rezolvat, pentru verificare
28
ACCDB.accdb
regul de validare care s impun ca valoarea maxim a unei facturi pentru un furnizor din categoria birotica s nu fie
29
mai mare de 300 lei .
interogare SELECT SQL, s se afieze o list cu facturile care nu au fost pltite integral, ordonate descresctor dup
valoarea facturii.30.
IIF([categorie]="birotica";IIF([valoareFac]<=300;True;False);True)
sau
29
30
raport al plilor (Numr factur, Nume furnizor, Data plat, Valoare), cu gruparea nregistrrilor pe zile. Se va calcula
total valoare facturi pentru fiecare zi i valoarea medie a plilor zilnice.
54
ACCDB.accdb
factura cu numrul 2222, din data de 12 mai 2011, n valoare de 100 lei. Factura este ntocmit pentru zona Tatarai de
ctre un agent nou, Marinescu Ioana, de pe strada Ion Creang, nr. 13, care are codul A10 31.
INSERT INTO Agenti ( codAg, nume, adresa )
SELECT "A10", "Marinescu Ioana", "strada Ion Creang, nr. 13"
31
Restul pailor pot fi doar NEXT sau FINISH direct (nu sunt att de importani, n cazul cerinei noastre).
Se nchide modul de vizualizare PrintPreview (Close Print Preview). Va aprea automat fereastra Report Design.
Apoi, se scrie la Criteria A2 (ghilimelele vor aprea automat). Se poate face proba ca s ne convingem c sunt doar
seleciile agentului A2, apoi se nchide interogarea.
Rularea raportului va reda doar vnzrile agentului A2 grupate pe zile.
Pentru antrenare a se descrca Baza de date se afl n cadrul acestui document PDF
Vanz-rez.accdb Baza de date rezolvat, pentru verificare
56
ACCDB.accdb
Tipuri de date
Format
Utilizare
Text
Memo
Poriuni lungi de text. O utilizare obinuit a cmpului Memo este descrierea detaliat a unui produs.
Number
Valori numerice, cum ar fi distane. Reinei c exist un tip de date separat pentru valori monetare.
Dimensiune cmp*
Selectai una dintre urmtoarele variante:
Byte - Se utilizeaz pentru numere ntregi [0 ; 255]. Cerina de stocare = 1 byte (octet).
Integer - Se utilizeaz pentru numere ntregi [-32,768 ; 32,767]. Cerina de stocare = 2 octei.
Long Integer* - Se utilizeaz pentru numere ntregi [-2.147.483.648 ; 2.147.483.647]. Cerina de stocare = 4 octei.
Single - Se utilizeaz pentru valori numerice n virgul mobil, [-3,4 x 1038 ; 3,4 x 1038] i pn la apte cifre relevante. Cerina
de stocare = 4 octei.
Double - Se utilizeaz pentru valori numerice n virgul mobil, [-1,797 x 10308 ; 1,797 x 10308] i pn la 15 cifre relevante.
Cerina de stocare = 8 octei.
Replication ID - Se utilizeaz pentru stocarea identificatorilor unici globali necesari reproducerilor. Cerina de stocare = 16 octei.
Reinei c reproducerea nu este utilizat n formatul de fiier .accdb.
Decimal - Se utilizeaz pentru valori numerice [-9,999... x 1027 ; 9,999... x 1027]. Cerina de stocare = 12 octei.
Date/Time
Currency
AutoNumber
Yes/No
Valori Da i Nu i cmpuri care conin o singur valoare din dou. (valori booleene)
OLE Object
Hyperlink
Text sau combinaii de text i numere stocate ca text i utilizate ca adres hyperlink.
Lookup
Wizard
Afieaz o list de valori care este regsit dintr-un tabel sau o interogare sau un set de valori pe care l-ai specificat cnd ai creat
cmpul. Va porni expertul Cutare i poate fi creat un cmp Cutare. Tipul de date al unui cmp Cutare este Text sau Numr, n
funcie de opiunile pe care le selectai n expert.
__________________________
*
Pentru cele mai bune performane, specificai ntotdeauna cea mia mic Dimensiune de cmp suficient
Utilizai Long Integer cnd creai o cheie extern pentru a crea o asociere la cmpul cheie primar AutoNumber din alt tabel.
**
ii
Tipuri de date
Format
Utilizare
Text
Memo
Poriuni lungi de text. O utilizare obinuit a cmpului Memo este descrierea detaliat a unui produs.
Number
Valori numerice, cum ar fi distane. Reinei c exist un tip de date separat pentru valori monetare.
Dimensiune cmp*
Selectai una dintre urmtoarele variante:
Byte - Se utilizeaz pentru numere ntregi [0 ; 255]. Cerina de stocare = 1 byte (octet).
Integer - Se utilizeaz pentru numere ntregi [-32,768 ; 32,767]. Cerina de stocare = 2 octei.
Long Integer* - Se utilizeaz pentru numere ntregi [-2.147.483.648 ; 2.147.483.647]. Cerina de stocare = 4 octei.
Single - Se utilizeaz pentru valori numerice n virgul mobil, [-3,4 x 1038 ; 3,4 x 1038] i pn la apte cifre relevante. Cerina
de stocare = 4 octei.
Double - Se utilizeaz pentru valori numerice n virgul mobil, [-1,797 x 10308 ; 1,797 x 10308] i pn la 15 cifre relevante.
Cerina de stocare = 8 octei.
Replication ID - Se utilizeaz pentru stocarea identificatorilor unici globali necesari reproducerilor. Cerina de stocare = 16 octei.
Reinei c reproducerea nu este utilizat n formatul de fiier .accdb.
Decimal - Se utilizeaz pentru valori numerice [-9,999... x 1027 ; 9,999... x 1027]. Cerina de stocare = 12 octei.
Date/Time
Currency
AutoNumber
Yes/No
Valori Da i Nu i cmpuri care conin o singur valoare din dou. (valori booleene)
OLE Object
Hyperlink
Text sau combinaii de text i numere stocate ca text i utilizate ca adres hyperlink.
Lookup
Wizard
Afieaz o list de valori care este regsit dintr-un tabel sau o interogare sau un set de valori pe care l-ai specificat cnd ai creat
cmpul. Va porni expertul Cutare i poate fi creat un cmp Cutare. Tipul de date al unui cmp Cutare este Text sau Numr, n
funcie de opiunile pe care le selectai n expert.
__________________________
*
Pentru cele mai bune performane, specificai ntotdeauna cea mai mic Dimensiune de cmp suficient
Utilizai Long Integer cnd creai o cheie extern pentru a crea o asociere la cmpul cheie primar AutoNumber din alt tabel.
**
58