Într-o bază de date se memorează informaţii despre cărţile existente într-o bibliotecă. Entitatea corespunzătoare este:
a) Construiţi tabela corespunzătoare şi populaţi cu înregistrări relevante pentru cerinţele următoare:
b) Afișați titlul şi autorul fiecărei cărţi cu majuscule şi într-o coloană denumită Informații autor, următoarele mesaje: dacă autorul este Mihai Eminescu, mesajul va fi Poet naţional, dacă autorul este Ion Creangă, mesajul va fi Povestitor, dacă autorul este Liviu Rebreanu, mesajul va fi Romancier. Pentru ceilalţi autori veţi afişa şirul de caractere “-------“.
c) Afişaţi titlul şi autorul cărţilor care au apărut în luna martie şi conţin în coloana observaţii cuvântul extraordinar.
d) Afişaţi preţul maxim, preţul mediu, preţul minim, valoarea totală a cărţilor din bibliotecă, precum şi numărul acestora, în coloane denumite corespunzător.
Rezolvare
a) Construiţi tabela corespunzătoare şi populaţi cu înregistrări relevante pentru cerinţele următoare:
Structura tabelului CARTE pentru fiecare câmp:
- cod - cheie primară, Data Type: AutoNumber
- titlu - Data Type: Text
proprietăţi modificate
Field Size: 50
Required: Yes
- autor - Data Type: Text
proprietăţi modificate
Field Size: 50
Required: Yes
- data_aparitiei - Data Type: Date/Time
proprietăţi modificate
Field Size: Short Date
Required: Yes
- pret - Data Type: Number
proprietăţi modificate
Field Size: Single sau Double
Format: Standard
Decimal Places: 2
Required: Yes
- observatii - Data Type: Text sau Memo - am ales Text, presupunând că 255 caractere sunt suficiente
proprietăţi modificate
Field Size: 255
Required: Yes
b) Afișați titlul şi autorul fiecărei cărţi cu majuscule şi într-o coloană denumită Informații autor, următoarele mesaje: dacă autorul este Mihai Eminescu, mesajul va fi Poet naţional, dacă autorul este Ion Creangă, mesajul va fi Povestitor, dacă autorul este Liviu Rebreanu, mesajul va fi Romancier. Pentru ceilalţi autori veţi afişa şirul de caractere “-------“.
Se creează o interogare care preia date din tabelul CARTE - Create - Query Wizard - Simple Query Wizard. Interogarea va prelua informaţii din câmpurile titlu şi autor.
Pentru a afişa titlul şi autorul cărţilor cu majuscule, se foloseşte funcţia UCase - vezi figura de mai sus.
Funcţia UCase (upper case) converteşte literele din acel câmp la majuscule.
În coloana a treia (Informaţii autor), se folosesc funcţii IIF imbricate pentru a cuprinde toate cele 4 cazuri - la subiectul 5 am întâlnit un caz asemănător, cu două funcţii IIF imbricate.
Textul din câmpul coloanei a treia este:
Informatii_autor: IIf([autor]="Mihai Eminescu","Poet national",IIf([autor]="Ion Creanga","Povestitor",IIf([autor]="Liviu Rebreanu","Romancier","------")))
c) Afişaţi titlul şi autorul cărţilor care au apărut în luna martie şi conţin în coloana observaţii cuvântul extraordinar.
Se creează o interogare care preia date din tabelul CARTE - Create - Query Wizard - Simple Query Wizard. Interogarea va prelua informaţii din câmpurile titlu, autor, data_aparitiei şi observatii şi va conţine două criterii de selecţie: se afişează doar cărţile a căror lună de apariţie este martie, iar la observaţii să conţină cuvântul extraordinar.
Pentru a afişa doar cărţile care au data_aparitiei este martie (luna a treia), se foloseşte funcţia Month care extrage luna dintr-un câmp de tip dată calendaristică, iar la criteriu se scrie cifra 3.
Se scrie şi criteriul pentru afişarea doar a cărţilor care conţin în coloana observaţii cuvântul extraordinar.
Pentru a afişa numai coloanele titlu şi autor, doar acestea vor fi bifate pe rândul Show.
d) Afişaţi preţul maxim, preţul mediu, preţul minim, valoarea totală a cărţilor din bibliotecă, precum şi numărul acestora, în coloane denumite corespunzător.
Se creează o interogare care preia date din tabelul CARTE - Create - Query Wizard - Simple Query Wizard. Este suficientă alegerea câmpului pret din tabel. În fereastra următoare se aleg Summary şi opţiunea Summary unde se bifează toate casetele: pentru sumă, medie aritmetică, valoare minimă, valoare maximă şi numărare.
În modul Design View se rearanjează coloanele şi se modifică textul care va apare în antet:
Pret max: Max([Carte].pret)
Pret mediu: Avg([Carte].pret)
Pret min: Min([Carte].pret)
Valoare totala: Sum([Carte].pret)
Nr carti: Count(*)
Am ataşat fişierul rezolvat în format .mdb.