Proiectaţi baza de date necesară unei agenţii de turism, baza de date fiind compusă din tabelele:
EXCURSII (cod-excursie, destinaţie, număr-zile, preţul, organizator);
TURIŞTI (cod-excursie, cnp-turist, nume, adresă, suma-achitată);
Cerinţe:
a) Populaţi fiecare tabel cu minim 5 înregistrări.
b) Afişaţi pentru excursiile cu codul mai mare decât 10, destinaţia, numărul de zile, preţul şi organizatorul.
c) Afişaţi pentru fiecare turist numele său, numele organizatorului excursiei şi suma achitată în ordinea descrescătoare a sumei achitate, iar pentru aceeaşi sumă în ordine alfabetică.
d) Care sunt turiştii care nu au achitat integral preţul excursiei?
e) Determinaţi pentru fiecare excursie numărul total de turişti înscrişi.
Rezolvare
a) Populaţi fiecare tabel cu minim 5 înregistrări.
Se creează tabelele EXCURSII şi TURISTI.
Pentru tabelul EXCURSII:
- cod_excursie - cheie primară, Data Type: AutoNumber
- destinatie - Data Type: Text
proprietăţi modificate
Field Size: 60
Required: Yes
- numar_zile - Data Type: Number
proprietăţi modificate
Format: Standard
Decimal Places: 0
Required: Yes
- pret - Data Type: Number
proprietăţi modificate
Format: Standard
Decimal Places: 2
Required: Yes
- organizator - Data Type: Text
proprietăţi modificate
Field Size: 50
Required: Yes
Pentru tabelul TURISTI:
- cod_excursie - Data Type: Number
proprietăţi modificate
Format: Standard
Decimal Places: 0
Required: Yes
opţional, crearea unei liste în Lookup:
Display Control: List Box
Row Source Type: Table/Query
Row Source: SELECT excursii.destinatie, excursii.cod_excursie FROM excursii;
- cnp_turist - Data Type: Text
proprietăţi modificate
Field Size: 13
- nume - Data Type: Text
proprietăţi modificate
Field Size: 60
Required: Yes
- adresa - Data Type: Text
proprietăţi modificate
Field Size: 255
- suma_achitata - Data Type: Number
proprietăţi modificate
Format: Standard
Decimal Places: 2
Required: Yes
Relaţia dintre tabele
Se completează tabelele cu minim 5 înregistrări (câmpul cod_excursie din tabelul EXCURSII este de tip AutoNumber, iar la cerinţa b se cere afişarea excursiilor cu cod mai mare decât 10, deci se vor introduce minim 11 înregistrări).
b) Afişaţi pentru excursiile cu codul mai mare decât 10, destinaţia, numărul de zile, preţul şi organizatorul.
Se creează o interogare care preia date din tabelul EXCURSII.
c) Afişaţi pentru fiecare turist numele său, numele organizatorului excursiei şi suma achitată în ordinea descrescătoare a sumei achitate, iar pentru aceeaşi sumă în ordine alfabetică.
Se creează o interogare care preia date din ambele tabele. Pentru a afişa tabelul mai întâi în ordine descrescătoare a sumei achitate, apoi în ordine crescătoare a numelui turistului, se adaugă la final un câmp ascuns (rândul Show debifat) care va sorta turiştii în ordine alfabetică.
d) Care sunt turiştii care nu au achitat integral preţul excursiei?
Se creează o interogare care preia date din ambele tabele. Interogarea va compara câmpurile suma_achitată din tabelul TURISTI cu pret din EXCURSII şi va afişa doar înregistrările care îndeplinesc condiţia de pe rândul Criteria.
e) Determinaţi pentru fiecare excursie numărul total de turişti înscrişi.
Se creează o interogare care preia date din ambele tabele.
Cu click pe butonul se adaugă rândul Total în fereastra de jos.
Pentru ca fiecare destinaţie să apară o singură dată, acestea se grupează. Pentru a se afişa numărul de turişti, se foloseşte o expresie care conţine funcţia Count.
Am ataşat mai jos fişierul rezolvat, în format mdb.