Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica » access
Interogarile - Tipuri de interogari in Access

Interogarile - Tipuri de interogari in Access


INTEROGARI

1. Introducere

Interogarile se folosesc pentru a vizualiza, modifica si analiza datele din tabele in moduri diferite. Ele se folosesc, de asemenea, ca sursa de inregistrari pentru forme si rapoarte. In esenta, o interogare este o solicitare de furnizare a unor date din baza de date pe care Microsoft Access o memoreaza in baza de date. Modul de lucru cu o interogare seamana, in unele privinte, cu modul de lucru cu un tabel. Dar, spre deosebire de un tabel care contine date, o interogare se "populeaza" cu date doar in momentul executiei ei.



O interogare poate selecta date dintr-un tabel sau din mai multe tabele. De fapt, puterea interogarilor consta in posibilitatea de a aduce impreuna, in forme, dar mai ales in rapoarte, informatii din mai multe tabele.

Interogarile pot fi create cu un wizard (cele mai simple) sau pornind de la zero folosind fereastra Query Design

Exemplele se vor baza pe tabelele din baza de date "Evidenta cursantilor" pe care cursantii o gasesc pe calculatoarele din sala de curs, in folder-ul Access2000.

2. Tipuri de interogari

a)          Interogari de selectie

O interogare de selectie se foloseste pentru a extrage date care indeplinesc anumite conditii, din unul sau mai multe tabele, pentru a sorta si grupa datele, precum si pentru a efectua calcule cu datele selectate.

b)         Interogari cu parametru

O interogare cu parametru permite furnizarea criteriilor de selectie in mod dinamic, in timpul executiei acesteia.

c)          Interogari Crosstab

O interogare Crosstab poate extrage date din unul sau mai multe tabele, afisandu-le intr-o forma sintetica, similara unei foi de lucru.

d)         Interogari de actiune

O interogare de actiune executa modificari asupra datelor din tabele (adaugari, modificari, si stergeri) si pot crea tabele noi. Interogarile de actiune sunt, la randul lor, de mai multe feluri:

interogari pentru crearea unui tabel nou (Make-Table Query

interogari pentru adaugare de inregistrari (Append Query

interogari pentru modificare de inregistrari (Update Query

interogari pentru stergere de inregistrari (Delete Query

e)          Interogari SQL

Interogarile SQL folosesc comenzi SQL in selectarea datelor.

3. Interogari de selectie

In selectarea datelor, cel mai folosit tip de interogare este interogarea de selectie.

3.1. Crearea unei interogari cu Simple Query Wizard

Simple Query Wizard poate fi folosit pentru a crea interogari de selectie simple, din unul sau mai multe tabele, fara criterii de selectie, dar cu posibilitatea de a realiza calcule simple (suma, medie, maxim, minim, numar de inregistrari) pentru campurile numerice.

In fereastra Database se executa click pe butonul Queries (din bara de obiecte) apoi pe butonul New (se afiseaza caseta de dialog New Query

Daca se executa dublu-click pe optiunea Create query by using wizard, se afiseaza caseta de dialog Simple Query Wizard (II) de la etapa 2.

Se selecteaza Simple Query Wizard si se executa click pe OK (se afiseaza caseta de dialog Simple Query Wizard (I)

Din lista Tables/Queries se selecteaza tabelul pentru care se creeaza interogarea (pot fi folosite mai multe tabele, dar acestea trebuie mai intai legate in fereastra Relationships

Se precizeaza campurile care vor fi adaugate in interogare, prin transferarea lor din lista Available Fields in lista Selected Fields (folosind butoanele si sau facand dublu‑click pe fiecare camp din lista Available Fields

Se executa click pe Next (se afiseaza caseta de dialog Simple Query Wizard (II), daca tabelul contine campuri numerice, sau Simple Query Wizard (III), daca tabelul nu contine campuri numerice).

Pentru ca interogarea sa afiseze doar campurile inregistrarilor din tabel, se selecteaza butonul de optiune Detail (shows every field of every record).

Pentru a efectua calcule de sumarizare, se selecteaza butonul de optiune Summary, apoi se executa click pe butonul de comanda Summary Options (se afiseaza caseta de dialog Summary Options

Pentru fiecare camp numeric, se selecteaza caseta de control corespunzatoare functiei de sumarizare dorite (Sum Avg Min Max sau Count

Se executa click pe OK (se revine in caseta de dialog Simple Query Wizard (II)

Se executa click pe Next (se afiseaza caseta de dialog Simple Query Wizard (III

In caseta What title do you want for your query se precizeaza numele sub care va fi salvata interogarea sau se accepta numele propus de wizard

Se selecteaza unul din cele doua butoane de optiune pentru a determina actiunea urmatoare care sa se execute dupa ce se executa click pe Finish

Open the query to view information, deschide interogarea in modul de afisare Datasheet

Modify the query design, deschide interogarea in fereastra Query Design

Se executa click pe Finish

3.2. Crearea unei interogari in fereastra Query Design

In fereastra Database se executa click pe butonul Queries (din bara de obiecte) apoi pe butonul New (se afiseaza caseta de dialog New Query

Daca se executa dublu-click pe elementul Create query in Design view, din fereastra Database, se afiseaza fereastra Query Design si caseta de dialog Show Table

Se selecteaza Design View si se executa click pe OK (se afiseaza fereastra Query Design si caseta de dialog Show Table

Se adauga tabelul/tabelele in interogare (dublu-click pe numele tabelului sau se selecteaza tabelul si se executa click pe butonul de comanda Add). Se executa click pe Close pentru a inchide caseta de dialog Show Table

Se adauga campurile din tabel/tabele in grila de proiectare (vezi capitolul Adaugarea campurilor in grila de proiectare).

Se precizeaza criterii de selectie, daca este cazul.

Se vizualizeaza rezultatul interogarii (se executa click pe instrumentul View din caseta de instrumente Query Design

Se salveaza interogarea (prin intermediul casetei de dialog Save As

3.3. Fereastra Query Design

Fereastra Query Design are doua parti: panoul superior care afiseaza listele campurilor pentru tabelele/interogarile adaugate in interogare (se afiseaza si liniile de legatura dintre tabele) si panoul inferior care contine grila de proiectare, formata din randuri si coloane.

3.3.1. Semnificatia randurilor din grila de proiectare

Field

In celulele randului Field se adauga numele campurilor.

Table

Identifica tabelul/interogarea din care provine campul. Acest rand este util mai ales in cazul in care interogarea se bazeaza pe mai multe tabele.

Daca randul Table nu apare in grila de proiectare, se alege View Table Names

Pentru a specifica daca randul Table va apare sau nu in grila de proiectare cand se creeaza o interogare noua, se selecteaza sau se deselecteaza caseta de control Show table names din caseta de dialog Options (tab-ul Tables/Queries

Sort

Se specifica daca Microsoft Access va sorta campul (Ascending/Descending) sa nu.

Show

Determina daca in rezultatul interogarii vor fi afisate datele din campul respectiv. Daca se selecteaza caseta , campul va apare in rezultatul interogarii.

Observatii

Daca in interogare se introduce un criteriu de selectie sau se precizeaza o ordine de sortare, pentru un camp care nu trebuie sa apara in interogare, se deselecteaza caseta

Cand se inchide o interogare, Microsoft Access muta campurile ascunse (cu caseta neselectata) in coloanele cele mai din dreapta din grila de proiectare.

Criteria

Se introduc criterii care sa limiteze numarul de inregistrari selectate.

Or

Este o extensie a randului Criteria care permite introducerea unui criteriu complex pentru un camp.

Total

Se afiseaza cand se executa click pe instrumentul Totals din bara cu instrumente Query Design (sau se alege View Totals) si este folosit pentru gruparea inregistrarilor.

Append To (numai pentru interogari de tip Append)

Se precizeaza numele campului din tabelul destinatie.

Update To (numai pentru interogari de tip Update)

Se precizeaza numele campului care va fi actualizat din tabelul destinatie.

Delete (numai pentru interogari de tip Delete)

Pentru campurile in care se precizeaza criterii, se selecteaza Where

Crosstab (numai pentru interogari de tip Crosstab)

Se selecteaza:

Row Heading pentru antet de rand si pentru totalul pe randuri.

Column Heading pentru antet de coloane.

Value pentru campul de calcul (de sumarizare).

not shown) pentru campurile in care se introduc criterii.

3.4. Adaugarea tabelelor intr-o interogare

Se afiseaza interogarea in fereastra Query Design (daca nu este afisata, se selecteaza numele interogarii in fereastra Database si se executa click pe Design

Se alege Query Show Table sau se executa click pe instrumentul Show Table din caseta cu instrumente Query Design (se afiseaza caseta de dialog Show Table

Se selecteaza unul din tab-urile Tables Queries sau Both, in functie de obiectele care se adauga in interogare (tabele, interogari sau si tabele si interogari).

Se adauga obiectele (tabele/interogari) in interogare, prin una din metodele:

dublu-click pe numele tabelului/interogarii din lista;

se selecteaza tabelul/interogarea si se executa click pe butonul de comanda Add

se selecteaza mai multe tabele/interogari din lista (prin glisare, prin Ctrl click pe fiecare tabel/interogare, sau prin click pe primul tabel/interogare apoi Shift click pe ultimul) si se executa click pe butonul de comanda Add

Se executa click pe butonul de comanda Close pentru a inchide caseta de dialog Show Table

Observatii

Un tabel poate fi adaugat intr-o interogare si prin glisarea cu mouse-ul a numelui tabelului din fereastra Database in fereastra Query Design

Pentru a elimina un tabel dintr-o interogare, se selecteaza lista de campuri a tabelului din panoul superior al ferestrei Query Design si se apasa tasta Delete (vor fi eliminate din grila de proiectare campurile corespunzatoare tabelului eliminat din interogare).

3. Adaugarea campurilor din tabele in grila de proiectare

In grila de proiectare, campurile se introduc in celulele din randul Field, prin una din urmatoarele metode:

a)          Se selecteaza numele campului din lista asociata fiecarei celule din randul Field

b)         Se gliseaza cate un camp din lista de campuri (din panoul superior) in cate o celula din randul Field

c)          Se face dublu click pe numele campului in lista de campuri (din panoul superior).

d)         Se selecteaza mai multe campuri din lista de campuri (cu Ctrl click pe fiecare camp sau cu click pe primul camp apoi Shift click pe ultimul camp) apoi se gliseaza selectia intr-o celula goala din randul Field. Pentru a selecta toate campurile din lista, se executa dublu-click pe bara de titlu a listei de campuri.

e)          Se gliseaza caracterul asterisk " " (toate campurile) din lista de campuri intr-o celula goala din randul Field. Aceasta metoda are avantajul ca actualizeaza automat structura interogarii cand se actualizeaza structura tabelului (adaugarea sau stergerea de campuri), dar prezinta dezavantajul ca pentru a introduce criterii sau ordini de sortare, functii de totalizare si pentru a realiza gruparea inregistrarilor, trebuie adaugate campurile separat. De asemenea, intr-o interogare nu intereseaza intotdeauna toate campurile din tabel.

f)          Se selecteaza elementul nume_tabel.* din lista asociata celulei din randul Field

3.6. Eliminarea unui camp din grila de proiectare

Se selecteaza coloana corespunzatoare campului care se sterge (se executa click pe antetul coloanei).

Se apasa tasta Delete

sau:

Se executa click intr-o celula din orice rand din coloana care se sterge.

Se alege Edit Delete Columns

Observatii

Pot fi sterse simultan mai multe campuri: se selecteaza coloanele corespunzatoare campurilor (se gliseaza pe antetele coloanelor) si se apasa tasta Delete

Pentru a schimba pozitia unui camp in grila de proiectare, se selecteaza coloana corespunzatoare campului care trebuie mutat apoi se gliseaza antetul coloanei selectate la noua pozitie.

3.7. Modificarea proprietatilor campurilor in grila de proiectare

Campurile adaugate intr-o interogare mostenesc proprietatile setate in tabel (in lista Field Properties). Unele proprietati pot fi setate diferit in grila de proiectare.

Se selecteaza campul din grila de proiectare.

Se alege View Properties sau se executa right-click pe campul respectiv apoi se selecteaza Properties din meniul de comenzi rapide (se afiseaza fereastra Field Properties pentru campul respectiv).

Pot fi setate proprietatile: Description Format Decimal Places (numai pentru campuri numerice), Input Mask si Caption in tab-ul General, si Display Control in tab-ul Lookup

Observatii

a)        In fereastra Field Properties nu sunt afisate valorile proprietatilor mostenite.

b)        Proprietatile setate in grila de proiectare au prioritate fata de cele setate in tabel.

c)        Setarea proprietatilor in grila de proiectare nu schimba proprietatile setate in tabel.

3.8. Criterii de selectie

Criteriile de selectie sunt restrictii care se introduc intr-o interogare pentru a identifica inregistrarile specifice cu care se doreste sa se lucreze. Pentru introducerea criteriilor de selectie se folosesc celulele din randul Criteria si din randul Or

Pentru construirea criteriilor de selectie, se folosesc:

a)         operatori (aritmetici, de atribuire si de comparatie, logici, de concatenare, de identificare, alti operatori);

b)        valori literale folosite in operatiile de comparare (siruri de caractere, valori numerice, data calendaristica/ora);

c)         identificatori (nume de campuri, nume de controale din forme, constantele predefinite: True False Yes No si Null

d)        functii (de data calendaristica si ora, de lucru cu siruri de caractere, matematice si trigonometrice, de conversie a tipului de data, financiare, generale).

3.8.1. Operatori

Operatori aritmetici

Operator

Descriere

Adunare

Scadere

- (unar)

Schimba semnul unui operand

Inmultire

Impartire

Impartire intreaga (imparte un operand intreg la altul)

Mod

Modulo (intoarce restul impartirii la un intreg)

Ridicare la putere

Operatori de atribuire si de comparatie

Operator

Descriere

<

Mai mic decat

<=

Mai mic sau egal cu

Egal cu

>=

Mai mare sau egal cu

>

Mai mare decat

<>

Diferit de

Operatori logici

Operator

Descriere

And

SI logic

Or

SAU logic

Not

NON logic

Xor

SAU exclusiv

Operatori de concatenare

Operatorii de concatenare sunt folositi pentru a uni (alatura) doua siruri de caractere intr‑unul singur. Desi operatorul (+) concateneaza doi operanzi de tip Text, in cazul in care unul dintre ei contine valoarea Null rezultatul concatenarii va fi valoarea Null. Din acest motiv, pentru concatenare se foloseste operatorul ampersand (&

Operatori de identificare

Operator

Descriere

Separator intre nume de obiecte (exemplu: [Forms]![DataStart]

Separator intre numele obiectului si o proprietate sau o metoda (exemplu: TextBox1.Font.Bold = True

Alti operatori

Operator

Descriere

Is

Se foloseste impreuna cu valoarea logica Null pentru a determina daca o valoare este Null (sau Not Null daca nu este Null

Like

Se foloseste pentru a compara o valoare de tip sir de caractere cu un sablon si determina daca acesta incepe cu unul sau mai multe caractere (in sablon se foloseste caracterul de inlocuire - oricare, mai mute caractere sau - oricare, un singur caracter).

Between

Se foloseste pentru a determina daca o valoare numerica sau o data calendaristica se afla intre doua limite (intre cele doua limite se plaseaza cuvantul And

In

Se foloseste pentru a determina daca o valoare de tip sir de caractere se afla intr-o lista de valori.

3.8.2. Valori literale

Pentru crearea expresiilor de selectie se folosesc trei tipuri de valori literale:

a)    numere (inclusiv numere cu zecimale si numere in notatie stiintifica);

b)   siruri de caractere (text). Cand se folosesc siruri de caractere in expresiile de selectie in grila de proiectare, Microsoft Access incadreaza automat sirurile de caractere cu ghilimele.

c)    date calendaristice si ore incadrate de caractere diez (

3.8.3. Identificatori

Identificatorii sunt nume de obiecte care se folosesc in construirea expresiilor de selectie. De exemplu, daca expresia de selectie se bazeaza pe o valoare pe care utilizatorul a introdus-o intr-o caseta de text dintr-o forma, trebuie precizata clasa de obiecte (in acest caz, Forms) urmata de numele formei si de numele casetei de text (identificatorii vor fi separati prin operatori de identificare).

Exemplu

Se creeaza o interogare pentru tabela Cursanti care trebuie sa selecteze toti cursantii a caror data de nastere este mai mica decat data calendaristica furnizata prin intermediul unei forme. Forma se numeste frmSelectCursanti iar caseta de text in care se introduce data calendaristica se numeste DataNasterii. In celula Criteria pentru campul din interogare se introduce criteriul:

<[Forms]![frmSelectCursanti]![DataNasterii]

3.8.4. Functii

Cele mai importante functii pentru data calendaristica si ora

Functia

Descriere

Exemplu

Date

Intoarce data calendaristica curenta a calculatorului.

Date()

DateAdd

Intoarce data calendaristica la care s-a adaugat un anumit interval: "d" (zile), "ww" (saptamani), "m" (luni), "q" (trimestre), "yyyy" (ani).

DateAdd("m",6,#3/12/00#)

DateDiff

Intoarce numarul de intervale de timp dintre doua date calendaristice. Intervale de timp: "d" (zile), "ww" (saptamani), "m" (luni), "q" (trimestre), "yyyy" (ani).

DateDiff("d", #3/12/00#,Date())

DatePart

Intoarce partea specificata dintr-o data calendaristica. Partea specificata poate fi: "d" (ziua), "ww" (saptamana), "m" (luna), "q" (trimestrul), "yyyy" (anul).

DatePart("q", #3/12/00#)

Day

Intoarce un numar intreg, intre 1 si 31, reprezentand numarul zilei dintr-o data calendaristica.

Day(#3/12/00#)

Month

Intoarce un numar intreg, intre 1 si 12, reprezentand numarul lunii dintr-o data calendaristica.

Month(#3/12/00#)

Now

Intoarce data calendaristica si ora curente ale calculatorului.

Now()

Weekday

Intoarce un numar intreg reprezentand ziua din saptamana dintr-o data calendaristica (Sunday = 1, Saturday = 7)

Weekday(#3/12/00#)

Year

Intoarce un numar intreg reprezentand anul dintr-o data calendaristica

Year(#3/12/00#)

Hour

Intoarce un numar intreg, intre 0 si 23, reprezentand ora dintr-o data de tip ora.

Hour(#12:23:43 PM#)

Minute

Intoarce un numar intreg, intre 0 si 59, reprezentand minutul dintr-o data de tip ora.

Minute(#12:23:43 PM#)

Second

Intoarce un numar intreg, intre 0 si 59, reprezentand secunda dintr-o data de tip ora.

Second(#12:23:43 PM#)

Time

Intoarce ora curenta a calculatorului.

Time()

Cele mai importante functii de lucru cu siruri de caractere

Functie

Descriere

Exemplu

Format

Formateaza sirul de caractere conform sablonului specificat.

Format(Date(),"dd.mm.yyyy")

Left

Intoarce numarul specificat de caractere din stanga unui sir de caractere.

Left("Access",3)

Len

Intoarce numarul de caractere dintr-un sir de caractere.

Len("Access")

Mid

Intoarce numarul specificat de caractere dintr‑un sir de caractere, pornind de la o anumita pozitie.

Mid("Access",3,2)

Right

Intoarce numarul specificat de caractere din dreapta unui sir de caractere.

Right("Access",3)

LCase

Intoarce sirul de caractere convertit in minuscule.

LCase("Access")

UCase

Intoarce sirul de caractere convertit in majuscule.

UCase("Access")

3.9. Campuri calculate

In afara de simpla afisare a campurilor adaugate in grila de proiectare, intr-o interogare pot fi efectuate si calcule. Un camp calculat se refera fie la un calcul asupra unui camp din lista de campuri folosind functii de sumarizare furnizate de Microsoft Access (Sum Avg Count, etc.), fie la un camp nou adaugat in grila de proiectare in care sa se precizeze un calcul particularizat.

Cand se afiseaza rezultatul unui calcul, Microsoft Access nu-l memoreaza in tabel. In schimb, calculele sunt refacute de fiecare data cand se executa interogarea, astfel incat rezultatele se bazeaza pe cele mai recente date.

Observatie

Intr-o interogare, rezultatele dintr-un camp calculat nu pot fi actualizate manual!

3.9.1. Calcule asupra unui camp dintr-o interogare

Se deschide interogarea in fereastra Query Design

Se executa click pe instrumentul Totals din bara cu instrumente Query Design sau se alege View Totals (in grila de proiectare se afiseaza randul Total

Din listele asociate celulelor din randul Total se selecteaza functia de sumarizare dorita.

Sunt disponibile urmatoarele functii:

Sum - suma valorilor dintr-un camp;

Avg - media valorilor dintr-un camp;

Min - valoarea cea mai mica dintr-un camp;

Max - valoarea cea mai mare dintr-un camp;

Count - numarul valorilor diferite de Null dintr-un camp;

StDev - abaterea statistica standard a valorilor dintr-un camp;

Var - dispersia statistica a valorilor dintr-un camp;

First - valoarea campului din prima inregistrare;

Last - valoarea campului din ultima inregistrare.

3.9.2. Crearea unui camp care sa efectueze un calcul particularizat

Calculele particularizate se realizeaza cu valori numerice, cu siruri de caractere, cu date calendaristice si ore, folosind date din unul sau mai multe campuri. De exemplu, intr-un calcul particularizat pot fi inmultite, impartite, adunate sau scazute mai multe campuri, sau combinate intr-un singur camp mai multe campuri de tip Text

De multe ori, campurile calculate (particularizate) sunt folosite si pentru a preciza criterii de selectie. De exemplu, pentru ca o interogare sa selecteze din tabelul Cursanti inregistrarile cu cursantii nascuti in luna aprilie, in grila de proiectare se adauga, intr-o celula din randul Field, campul calculat DNastere:Month([DataNasterii]) iar in celula corespondenta din randul Criteria se introduce

Se deschide interogarea in fereastra Query Design

Intr-o celula goala din randul Field se introduce expresia campului calculat particularizat (de exemplu, DNastere: Month([DataNasterii])

In celula corespunzatoare din randul Criteria se introduce criteriul (de exemplu,

Sintaxa campului calculat:

nume_camp_calculat:expresie

Exemplu

PretCuTVA:[Pret]*1,19

Observatii

Daca expresia contine nume de campuri, ele trebuie scrise intre paranteze drepte.

Daca nu se introduce numele campului calculat, Microsoft Access va adauga automat un nume de camp: Expr1 pentru primul camp, Expr2 pentru al doilea, s.a.m.d. (cand cursorul se muta din campul respectiv). Aceste nume pot fi modificate de utilizator cu nume mai semnificative, sau poate fi setata proprietatea Caption a campului calculat.

Expresiile mai complicate pot fi create cu Expression Builder

In cazul in care in interogare au fost grupate campurile (este afisat randul Total), se selecteaza elementul Expression din lista asociata celulei din randul Total

3.10. Modificarea numelui unui camp dintr-o interogare

In cazul campurilor calculate pe baza functiilor predefinite, cand se afiseaza rezultatul interogarii (cand interogarea este deschisa in modul de afisare Datasheet), Microsoft Access adauga automat nume acestor campuri. Un astfel de nume incepe cu numele functiei folosite, urmat de Of si de numele campului din tabel (exemple: CountOfMarca SumOfCantitate AvgOfNota

Pentru a schimba numele unui astfel de camp, se seteaza proprietatea Caption a campului respectiv in grila de proiectare (se afiseaza fereastra Field Properties a campului si se seteaza proprietatea Caption

In cazul campurilor in care se realizeaza calculate particularizate, schimbarea numelui se poate face prin setarea proprietatii Caption sau direct in grila de proiectare (in celula din randul Field). Proprietatea Caption are prioritate fata de numele introdus in grila de proiectare.

3.11. Sortarea datelor intr-o interogare

Microsoft Access sorteaza datele din rezultatul interogarii dupa unul sau mai multe campuri, de la stanga la dreapta, in functie de ordinea in care sunt plasate campurile in grila de proiectare. Pentru campurile care se sorteaza trebuie sa se selecteze Ascending sau Descending in randul Sort

In cazul in care in grila de proiectare campurile din tabel au fost adaugate global (nume_tabel.*), trebuie adaugate separat campurile dupa care se face sortarea.

Datele calendaristice si orele sunt sortate de la precedent la urmator pentru sortare crescatoare si invers pentru sortare descrescatoare.

Numerele memorate in campuri de tip Text sunt memorate ca siruri de caractere. Astfel, sirul de valori: 1, 2, 11, 22 va fi sortat ca 1, 11, 2, 22. In asemenea situatii, pentru a obtine o sortare corespunzatoare, valorile se introduc de dimensiune egala (exemplu: 01, 02, 11, 22).

Valorile Null sunt sortate primele in sortarea crescatoare si ultimele in sortare descrescatoare.

3.12. Afisarea sau ascunderea campurilor in rezultatul interogarii

Pentru a afisa un camp in rezultatul unei interogari, se selecteaza caseta de pe randul Show (daca se deselecteaza caseta, campul nu va fi afisat). In unele cazuri, este necesara adaugarea unui camp in interogare numai pentru precizarea unui criteriu, dar campul respectiv nu este necesar sa apara in rezultatul interogarii (in acest caz, se deselecteaza caseta de pe randul Show

In unele interogari poate fi adaugat numai un singur camp pentru care sa se precizeze criterii, iar in rezultatul interogarii pot sa apara toate campurile din tabel.

Se deschide interogarea in fereastra Query Design

Se afiseaza foaia de proprietati a interogarii prin una din urmatoarele metode:

se executa click pe instrumentul Properties din bara cu instrumente Query Design

se executa dublu-click pe panoul superior al ferestrei Query Design

se executa right-click pe panoul superior al ferestrei Query Design apoi se selecteaza Properties

Se seteaza pe Yes proprietatea Output All Fields

Observatii

Campul sau campurile din grila de proiectare folosite pentru precizarea de criterii trebuie sa aiba caseta Show deselectata pentru a nu aparea de doua ori in rezultatul interogarii.

Intr-o forma sau intr-un raport care se bazeaza pe o interogare cu proprietatea Output All Fields setata pe Yes, sunt disponibile toate campurile din tabelul pe baza caruia a fost creata interogarea.

4. Interogari de totalizare (sumarizare)

Interogarile de totalizare se folosesc pentru a grupa inregistrarile dupa valorile din anumite campuri si pentru a efectua calcule de totalizare pe grupuri. Pentru calcule, se folosesc functii de totalizare (agregare) predefinite (prezentate in capitolul Calcule asupra unui camp dintr-o interogare).

4.1. Crearea unei interogari de totalizare

Se deschide interogarea in fereastra Query Design

Se executa click pe instrumentul Totals din bara cu instrumente Query Design sau se alege View Totals (in grila de proiectare se afiseaza randul Total cu valoarea Group By implicit selectata).

Pentru campul/campurile dupa care se face gruparea datelor, se pastreaza setarea Group By in randul Total

Pentru campurile in care se efectueaza calcule, se selecteaza functiile dorite (Sum Avg Min Max Count StDev Var First sau Last

Daca este nevoie, se introduc criterii de selectie in randul Criteria

Daca este nevoie, se sorteaza rezultatele.

Observatii

Daca in grila de proiectare se adauga un camp calculat a carui expresie include una sau mai multe functii de agregare, in celula Total corespunzatoare se selecteaza Expression (daca se selecteaza Group By, la afisarea rezultatului interogarii se afiseaza mesaj de eroare).

Pentru campurile in care au fost introduse criterii, se selecteaza Where in celulele Total corespunzatoare. Aceste campuri nu vor apare in rezultatul interogarii; caseta de pe randul Show corespunzatoare acestor campuri se deselecteaza automat.

Pentru a obtine totaluri generale (pe total inregistrari, nu pe grupuri), in grila de proiectare se adauga numai campurile pentru care se calculeaza totalurile generale (nici un camp nu trebuie sa aiba setarea Group By in celula Total

Interogari cu parametri

O interogare cu criteriu de selectie foloseste acelasi criteriu ori de cate ori este executata. Pentru a putea modifica criteriul de la o executie la alta, interogarea poate fi transformata intr-o interogare cu parametri. Un parametru se introduce, ca si un criteriu, intr-o celula din randul Field pentru campul corespunzator. Cand se executa interogarea, parametrul este solicitat prin intermediul casetei de dialog Enter Parameter Value

1. Introducerea parametrilor

Se deschide interogarea in fereastra Query Design

In celula din randul Criteria a campului pentru care trebuie introdus criteriul, se introduce un text, intre paranteze rotunde, prin care se solicita ce valoare trebuie introdusa.

Se executa click pe instrumentul View din bara cu instrumente Query Design (se afiseaza caseta de dialog Enter Parameter Value

In caseta de text se introduce valoarea solicitata si se executa click pe OK

Observatii

In caseta de dialog Enter Parameter Value se afiseaza, deasupra casetei de text, textul precizat in grila de proiectare, in celula Criteria

Textul parametrului din celula Criteria nu trebuie sa fie identic cu numele campului. In cazul in care textul parametrului este identic cu numele campului, la executia interogarii nu mai este solicitata valoarea parametrului.

Exemple

1.) Se creeaza interogarea QDataNasterii pe baza tabelului Cursanti si se introduce un parametru pentru a selecta toti cursantii nascuti inainte de o anumita data (de exemplu, se introduce parametrul <[Nascuti inainte de:]

2) In cazul in care se doreste selectarea cursantilor nascuti intre anumiti ani (de exemplu, intre 1950 si 1965), se poate introduce un parametru care sa afiseze, pentru acelasi camp, de doua ori caseta de dialog Enter Parameter Value, pentru a solicita cei doi ani (de exemplu, se introduce parametrul Between [Nascuti dupa:] And [Nascuti inainte de:]

In acest exemplu, s-a creat un camp calculat (Expr1) care intoarce anul din data nasterii, iar parametrul a fost construit cu ajutorul operatorului Between si al operatorului And

Cand se executa interogarea, pe ecran se afiseaza de doua ori caseta de dialog Enter Parameter Value, prima data cu mesajul "Nascuti dupa:", iar a doua oara cu mesajul "Nascuti inainte de:".

2. Precizarea tipului de data pentru parametri

Cand se introduce un parametru intr-o interogare, Microsoft Access ii asociaza automat tipul de data Text. In aceste conditii, exista riscul ca la executia unei interogari care contine un parametru pentru un camp care are tipul de data diferit de tipul text, utilizatorul sa introduca o valoare de tip text, caz in care, s-ar putea ca in rezultatul interogarii sa nu apara nici o inregistrare. Din acest motiv, este util ca pentru parametrii care au tipul de data diferit de tipul Text sa se precizeze tipul de data.

Se deschide interogarea in fereastra Query Design

Se alege Query Parameters (se afiseaza caseta de dialog Query Parameters

In coloana Parameter se introduce numele parametrului (identic cu cel din grila de proiectare, fara a fi incadrat de paranteze drepte).

In coloana Data Type, din lista asociata celulei de pe acelasi rand cu numele parametrului, se selecteaza tipul de data pentru parametru.

Se repeta pasii 3 si 4 pentru toti parametrii din interogare.

Se executa click pe OK

Observatii

Cand se executa interogarea iar in caseta Enter Parameter Value se introduce o valoare care nu este de tipul precizat pentru parametrul respectiv, Microsoft Access afiseaza caseta mesaj:

Cand se executa interogarea, parametrii sunt solicitati in ordinea in care au fost precizati in caseta de dialog Query Parameters. Parametrii pentru care nu s-a declarat tipul de data vor fi solicitati ultimii.

Pentru interogari crosstab cu parametri, precizarea tipului de data pentru parametri este obligatorie.

6. Despre campuri cu valori Null

Valorile Null, daca nu sunt tratate corespunzator, pot influenta decisiv rezultatul interogarilor.

Un camp numeric necompletat va contine o valoare Null, in timp ce un camp Text Memo sau Hyperlink necompletat va contine o valoare Null sau sirul de lungime zero

6.1. Campuri asociate care contin valori Null

Cand se leaga tabele intr-o interogare, asocierea implicita este inner join (asociere interna). Aceasta face ca rezultatul interogarii sa contina numai inregistrari care nu au valori Null in campurile de asociere (cheia principala si cheia externa). Daca se schimba tipul asocierii, de exemplu left outer join (asociere externa la stanga), in rezultatul interogarii pot apare si inregistrari care au in campul de asociere cheie externa valori Null

6.2. Selectarea inregistrarilor dupa valori Null sau sirul de lungime zero

Daca se doreste ca in rezultatul interogarii sa apara toate inregistrarile care au valoarea Null intr-un anumit camp, in celula Criteria a campului respectiv se introduce criteriul Is Null

Daca se doreste ca in rezultatul interogarii sa apara toate inregistrarile care au ca valoare sirul de lungime zero intr-un anumit camp, in celula Criteria a campului respectiv se introduce drept criteriu o pereche de ghilimele (fara spatiu intre ele).

6.3. Calcule numerice cu valori Null

O functie de agregare (Sum Avg Count, etc.) folosita pentru un camp numeric nu va lua in calcul inregistrarile care au valori Null in campul respectiv. Exceptie face functia Count(*) care ia in considerare si valorile Null din campul respectiv.

Daca intr-o expresie de calcul se foloseste un operator aritmetic (+, -, *, /) iar unul din campurile din expresie contine o valoare Null, rezultatul expresiei de calcul va fi valoarea Null

6.4. Conversia valorilor Null in zero (0)

Atat pentru cazul folosirii functiilor de sumarizare pentru campuri care contin valori Null dar si pentru expresii de calcul cu campuri care contin valori Null, poate fi folosita functia Nz care converteste valorile Null in zero (exemplu: Nz([Cantitate])*Nz([Pret])).

6. Concatenarea campurilor Text care contin valori Null

Pentru concatenarea valorilor de tip Text sunt disponibili doi operatori: si &. Atunci cand se concateneaza doua campuri de tip text, cu operatorul , iar unul dintre campuri contine o valoare Null, rezultatul concatenarii va fi o valoare Null. In aceiasi situatie, folosirea operatorului & nu va intoarce o valoare Null

7. Interogari din mai multe tabele

Intr-o baza de date complexa, apare necesitatea aducerii impreuna a datelor memorate in tabele separate. Aceasta se realizeaza prin construirea interogarilor din mai multe tabele.

Cand utilizatorul adauga mai multe tabele intr-o interogare, trebuie sa se asigure ca listele de campuri din panoul superior al interogarii sunt unite prin linii de asociere, pentru ca Microsoft Access sa stie cum sa conecteze informatiile. Daca tabelele dintr-o interogare nu sunt asociate, Microsoft Access nu va sti care inregistrari se asociaza, astfel ca rezultatul interogarii va afisa produsul cartezian al inregistrarilor din tabelele interogarii. Daca tabelele care se adauga in interogare sunt legate in fereastra Relationships, Microsoft Access afiseaza automat liniile de asociere dintre tabele (in panoul superior din fereastra Query Design). In cazul in care s-a fortat integritatea referentiala, deasupra liniei de asociere se afiseaza " " langa tabelul principal si " " langa tabelul secundar. Chiar daca tabelele n-au fost legate in fereastra Relationships, Microsoft Access creeaza automat linii de asociere daca in interogare se adauga doua tabele care un camp care are acelasi nume si acelasi tip de data si daca intr-unul din cele doua tabele acest camp este cheie principala. In acest caz, simbolurile " si " " nu mai apar, intrucat n-a fost setata integritatea referentiala.

7.1. Activarea/dezactivarea asocierii automate

Se alege Tools Options (se afiseaza caseta de dialog Options

Se selecteaza tab-ul Tables/Queries

Se selecteaza (pentru activare) sau se deselecteaza (pentru dezactivare) caseta de control Enable AutoJoin

Observatie

Setarea are efect numai pentru interogarile care vor fi create dupa selectarea casetei de control Enable AutoJoin. Daca tabelele sunt legate in fereastra Relationships, dezactivarea casetei de control Enable AutoJoin nu are efect.

Dupa adaugarea tabelelor intr-o interogare si asocierea lor, Microsoft Access verifica corespondentele dintre campurile asociate pe baza asocierii implicite (tipul de asociere setat cand s-au legat tabelele in fereastra Relationships). Cand se gasesc corespondentele (perechile), cele doua inregistrari se combina si sunt afisate in rezultatul interogarii. Daca un tabel nu are o inregistrare care sa se potriveasca in celalalt tabel, in interogare nu se va afisa o inregistrare (cu exceptia cazului cand asocierea este left outer join sau right outer join

Daca doua tabele adaugate intr-o interogare nu sunt unite printr-o linie de asociere, asocierea poate fi facuta in panoul superior din fereastra Query Design, prin glisarea campului principal dintr-un tabel peste campul extern din celalalt tabel. Asocierea obtinuta astfel este de tip inner join, caz in care Microsoft Access selecteaza numai inregistrarile din cele doua tabele care au valorile din campurile asociate egale.

7.2. Modificarea tipului de asociere dintre doua tabele

Se deschide interogarea in fereastra Query Design

Se executa right-click pe linia de asociere dintre cele doua tabele iar din meniul prescurtat care se afiseaza, se selecteaza Edit Relationship (se afiseaza caseta de dialog Edit Relationships

Se executa click pe butonul de comanda Join Type (se afiseaza caseta de dialog Join Properties

Se selecteaza:

butonul de optiune 1, pentru asociere interna (inner join

butonul de optiune 2, pentru asociere interna (left outer join

butonul de optiune 3, pentru asociere interna (right outer join

Observatie

Asocierile create in caseta de dialog Join Properties selecteaza inregistrari pe baza egalitatii dintre valorile din campurile de asociere. Pentru a crea asocieri care sa selecteze inregistrari cand valorile din campurile de asociere nu sunt egale, se folosesc interogari SQL

8. Interogari Crosstab (de sinteza)

Interogarile Crosstab realizeaza o sinteza a datelor din tabele, afisandu-le pe randuri si coloane similar unei foi de lucru dintr-un produs de calcul tabelar.

Pentru realizarea unei interogari Crosstab este nevoie de:

un camp sau mai multe pentru antetul/antetele de randuri;

un camp pentru antetele de coloane;

un camp care sa furnizeze valorile de calcul.

8.1. Crearea unei interogari folosind Crosstab Query Wizard

In fereastra Database se executa click pe butonul Queries (din bara de obiecte) apoi pe butonul New (se afiseaza caseta de dialog New Query

Se selecteaza Crosstab Query Wizard si se executa click pe OK (se afiseaza caseta de dialog Crosstab Query Wizard (I)

Se selecteaza tabelul care va furniza campurile (exemplu: tabelul Conventii

Se executa click pe Next (se afiseaza caseta de dialog Crosstab Query Wizard (II)

Se selecteaza campul sau campurile (maxim 3) pentru antete de randuri (exemplu: SimbCurs

Se executa click pe Next (se afiseaza caseta de dialog Crosstab Query Wizard (III)

Se selecteaza campul pentru antete de coloane (exemplu: campul NrSerie

Se executa click pe Next (se afiseaza caseta de dialog Crosstab Query Wizard (IV)

Se selecteaza campul care va furniza valorile de calcul (exemplu: NrCursanti) si functia de sumarizare (exemplu: Sum

Pentru a include o coloana de totaluri pe randuri, se selecteaza caseta de control Yes, include row sums

Se executa click pe Next (se afiseaza caseta de dialog Crosstab Query Wizard (IV)

In caseta de text What do you want to name your query se introduce numele interogarii sau se accepta numele propus de Crosstab Query Wizard

Se selecteaza unul din cele doua butoane de optiune pentru a determina actiunea urmatoare dupa ce se executa click pe Finish

View the query, deschide interogarea in modul de afisare Datasheet

Modify the design, deschide interogarea in fereastra Query Design

Se executa click pe Finish

Daca la pasul 7 s-a selectat butonul de optiune View the query, cand se executa click pe Finish interogarea se deschide in modul de afisare Datasheet

Daca la pasul 7 s-a selectat butonul de optiune Modify the design, cand se executa click pe Finish interogarea se afiseaza in fereastra Query Design

In tabelul de mai jos se prezinta setarile posibile ale unui camp in celulele Crosstab si Total

Camp folosit pentru:

Setarea Crosstab

Setarea Total

Antet de randuri

Row Heading

Group By

Antete de coloane

Column Heading

Group By

Functia de sumarizare

Value

O functie de sumarizare (Sum Avg Count, etc.)

Totaluri pe randuri

Row Heading

O functie de sumarizare

Criteriu de selectie

(not shown)

Where

8.2. Crearea unei interogari Crosstab in fereastra Query Design

In fereastra Database se executa click pe tab-ul Queries apoi pe butonul New (se afiseaza caseta de dialog New Query

Se selecteaza Design View si se executa click pe OK (se afiseaza fereastra Query Design si caseta de dialog Show Table

Se adauga tabelul/tabelele in interogare (exemplu: tabelele Cursanti si Unitati

Se adauga campurile in grila de proiectare (exemplu: CodCurs Domiciliu IDCursant CodUnit si Studii

Se alege Query Crosstab Query (Microsoft Access afiseaza randurile Crosstab si Total in grila de proiectare).

Se fac urmatoarele setari:

Camp

Folosit pentru:

Setare Crosstab

Setare Total

CodCurs

Antet de randuri

Row Heading

Group By

Domiciliu

Antete de coloane

Column Heading

Group By

IDCursant

Functia de sumarizare

Value

Count (sau alta functie de sumarizare)

CodUnit

Totaluri pe randuri

Row Heading

Count (sau alta functie de sumarizare)

Studii

Criteriu de selectie (se introduce "S" in randul Criteria

(not shown)

Where

Se executa click pe instrumentul View din bara cu instrumente Query Design (pentru a afisa rezultatul interogarii).

8.2.1. Modificarea antetelor de coloane

Implicit, antetele de coloane sunt sortate alfabetic sau numeric (in functie de tipul de data al campului folosit in pentru antete de coloane). Daca se doreste ca antetele de coloane sa apara in alta ordine sau sa se limiteze numarul de coloane care sa se afiseze in rezultatul interogarii, se afiseaza caseta de dialog Query Properties View Properties) si se seteaza proprietatea Column Headings (exemplu: "Provincie Bucuresti"). Cand se modifica antetele de coloane, acestea trebuie sa aiba acelasi tip de data cu al campului care furnizeaza antetele de coloane.

Antetele de coloane se pot modifica si prin transformarea campului care furnizeaza antetele de coloane in camp calculat. De exemplu, in interogarea Conventii_Crosstab creata cu Crosstab Query Wizard se modifica antetele de coloane astfel incat sa se afiseze Seria 1 Seria 2 Seria 3, etc. Pentru aceasta, campul NrSerie, care furnizeaza antetele de coloane, se transforma in campul calculat: Expr1: "Seria " & [NrSerie]. Cand antetele de coloane se modifica prin transformarea campului ce le furnizeaza in camp calculat, se poate schimba tipul de data al acestora. De exemplu, in interogarea Crosstab creata in fereastra Query Design se pot schimba antetele de coloane astfel incat sa se afiseze pentru Bucuresti si pentru Provincie. Pentru aceasta, campul Domiciliu din interogare se transforma in campul calculat: Expr1: IIf([Domiciliu]='Bucuresti';1;2)

In cazul in care campul care furnizeaza antetele de coloane contine valori Null, intr-un antet de coloana se afiseaza <>. Pentru ca aceasta coloana sa nu se mai afiseze, se introduce criteriul Not Is Null pentru coloana care furnizeaza antetele de coloane (caz in care din rezultatul interogarii sunt excluse inregistrarile care au valoarea Null in campul care furnizeaza antetele de coloane), sau campul care furnizeaza antetele de coloane se transforma in camp calculat. De exemplu, in interogarea Conventii_Crosstab creata cu Crosstab Query Wizard campul NrSerie se transforma in campul calculat: Expr1: IIf(IsNull([NrSerie]);'Necunoscuta';'Seria ' & [NrSerie])

Observatie

Textul antetului pentru totalurile pe randuri poate fi modificat direct in grila de proiectare, in celula Field (exemplu: Total: CodCurs) sau prin setarea proprietatii Caption a campului in grila de proiectare.

9. Interogari de actiune

9.1. Etapele crearii unei interogari de actiune

Se creeaza interogarea de selectie in fereastra Query Design (precizand, daca este cazul, criterii de selectie).

Se testeaza interogarea (se executa click pe instrumentul View din bara cu instrumente Query Design

Se transforma interogarea de selectie in interogare de actiune: se alege tipul interogarii de actiune din meniul Query sau din instrumentul Query Type din bara de instrumente Query Design

Se testeaza din nou interogarea (se executa click pe instrumentul View din bara cu instrumente Query Design), pentru a vizualiza inregistrarile care vor fi actualizate.

Se executa interogarea de actiune creata: se alege Query Run sau se executa click pe instrumentul Run din bara cu instrumente Query Design

Se salveaza interogarea.

9.2. Interogari pentru adaugare de inregistrari intr-un tabel (Append Query)

Se creeaza interogarea de selectie din tabelul care va furniza inregistrarile pentru un alt tabel. In cazul in care structura celor doua tabele (sursa si destinatie) este identica, in grila de proiectare (in prima celula Field) va fi glisat elementul (toate campurile)).

In interogare pot fi adaugate si alte tabele care pot furniza valori de adaugat sau pentru a preciza criterii.

Daca este necesar, se precizeaza criteriul/criteriile de selectie (daca adaugarea campurilor s-a facut cu elementul , se va adauga separat campul/campurile pentru criterii).

Se testeaza interogarea.

Se alege Query Append Query sau se executa click pe sageata instrumentului Query Type din bara cu instrumente Query Design apoi se selecteaza Append Query (se afiseaza caseta de dialog Append

Daca tabelul destinatie se afla in baza de date curenta, trebuie ca butonul de optiune Current Database sa fie selectat. Din lista Table Name se selecteaza numele tabelului in care vor fi adaugate inregistrarile.

Daca tabelul destinatie se afla in alta baza de date, se selecteaza butonul de optiune Another Database, se precizeaza numele bazei de date, inclusiv calea, in caseta de text File Name, (exemplu: C:EvidenteSalarii.mdb), iar in lista Table Name se selecteaza numele tabelului (lista va contine numele tabelelor din baza de date precizata in caseta de text File Name

Se executa click pe OK (in grila de proiectare se afiseaza randul Append To

Daca structura celor doua tabele este identica, in randul Append To se va afisa:

a)        nume_tabel_destinatie.*, daca in grila de proiectare a fost glisat elementul * (toate campurile) din lista tabelului sursa.

b)        numele campurilor pereche.

Daca structura celor doua tabele este diferita (numele campurilor corespondente sunt diferite), pentru fiecare camp din randul Field se selecteaza campul corespondent in randul Append To

Daca tabela sursa are o cheie principala de tip AutoNumber

a)        daca cheia principala se adauga in grila de proiectare, in tabelul destinatie vor fi copiate valorile cheii principale din tabelul sursa;

b)        daca cheia principala nu se adauga in grila de proiectare, in tabelul destinatie vor fi create valori noi pentru campul respectiv.

Se executa click pe instrumentul View din bara cu instrumente Query Design, pentru a vizualiza inregistrarile care vor fi adaugate.

Se alege Query Run sau se executa click pe instrumentul Run din bara de instrumente Query Design. Microsoft Access afiseaza o caseta mesaj care cere confirmarea adaugarii inregistrarilor. Daca se executa click pe Yes, inregistrarile vor fi adaugate in tabelul destinatie.

Pentru ca Microsoft Access sa nu mai ceara confirmarea adaugarii, se deselecteaza caseta de control Action queries din caseta de dialog Options (tab-ul Edit/Find

Observatie

Pentru campurile de criterii, se golesc celulele Append To, altfel, la executia interogarii Microsoft Access afiseaza mesajul de eroare "Duplicate output destination 'nume_camp'.

9.3. Interogari pentru actualizarea inregistrarilor dintr-un tabel (Update Query)

Se creeaza interogarea de selectie din tabelul/tabelele numai cu campurile care trebuie actualizate si cu cele pentru criterii.

Daca este necesar, se precizeaza criteriul/criteriile de selectie.

Se testeaza interogarea.

Se alege Query Update Query sau se executa click pe sageata instrumentului Query Type din bara cu instrumente Query Design apoi se selecteaza Update Query (in grila de proiectare se afiseaza randul Update To

In celula Update To a campului care trebuie actualizat se introduce:

a)        valoarea sau expresia care va fi folosita pentru actualizarea campului, sau

b)        campul unui tabel care furnizeaza valorile cu care se face actualizarea, folosind sintaxa:

nume_tabel nume_camp

unde:

nume_tabel reprezinta numele tabelului care furnizeaza campul;

nume_camp reprezinta numele campului care furnizeaza valorile de actualizat.

Tabelul care furnizeaza campul de actualizat trebuie sa fie adaugat in interogare si trebuie legat cu tabelul care se actualizeaza

Se executa click pe instrumentul View din bara cu instrumente Query Design. In rezultatul interogarii se afiseaza numai campurile care se actualizeaza. Pentru a afisa si alte campuri, acestea vor fi adaugate in celulele Field din grila de proiectare iar in celulele Update To se introduc aceleasi nume de campuri incadrate de paranteze drepte.

Se alege Query Run sau se executa click pe instrumentul Run din bara de instrumente Query Design. Microsoft Access afiseaza o caseta mesaj care cere confirmarea actualizarii inregistrarilor. Daca se executa click pe Yes, inregistrarile vor fi actualizate. Pentru ca Microsoft Access sa nu mai ceara confirmarea actualizarii, se deselecteaza caseta de control Action Queries din caseta de dialog Options (tab-ul Edit/Find

Observatie

In cazul in care se actualizeaza campul cheie principala, este obligatorie selectarea casetei de control Cascade Update Related Fields din caseta de dialog Edit Relationships

9.4. Interogari pentru stergerea inregistrarilor dintr-un tabel (Delete Query)

Interogarile de stergere se folosesc in cazul in care se sterge un numar mare de inregistrari. Avand in vedere faptul ca tabele din baza de date sunt legate, atunci cand se construiesc interogari de stergere trebuie cunoscuta pozitia tabelului in cadrul relatiei "1‑la‑n" (daca este tabel principal sau tabel secundar). Daca stergerea de inregistrari dintr-un tabel secundar nu are nici o influenta asupra tabelului principal, stergerea de inregistrari din tabelul principal este conditionata de starea de selectie a casetei de control Cascade Delete Related Records, cu exceptia cazului cand se sterg inregistrari care nu au inregistrari asociate in tabelul secundar. In cazul in care caseta de control Cascade Delete Related Records (din caseta de dialog Edit Relationships) este selectata, cand se sterge o inregistrare din tabelul principal, se sterg toate inregistrarile corespondente din tabelul secundar.

9.4.1. Stergerea inregistrarilor din tabelul aflat in partea "n" a relatiei "1‑la‑n"

Se creeaza interogarea de selectie din tabelul care contine inregistrarile care vor fi sterse. In grila de proiectare se gliseaza elementul * (toate campurile) si eventual campul/campurile pentru criterii.

Daca este necesar, se precizeaza criteriul/criteriile de selectie.

Se testeaza interogarea.

Se alege Query Delete Query sau se executa click pe sageata instrumentului Query Type din bara cu instrumente Query Design apoi se selecteaza Delete Query (in grila de proiectare se afiseaza randul Delete

In celula Delete pentru campul specificat global (cu *) se afiseaza From iar pentru campul/campurile de criterii se afiseaza Where

Se executa click pe instrumentul View din bara cu instrumente Query Design pentru a vizualiza inregistrarile care vor fi sterse.

Se alege Query Run sau se executa click pe instrumentul Run din bara de instrumente Query Design. Microsoft Access afiseaza o caseta mesaj care cere confirmarea stergerii inregistrarilor. Daca se executa click pe Yes, inregistrarile vor fi sterse. Pentru ca Microsoft Access sa nu mai ceara confirmarea stergerii, se deselecteaza caseta de control Action Queries din caseta de dialog Options (tab-ul Edit/Find

9.4.2. Stergerea inregistrarilor din tabelul aflat in partea "1" a relatiei "1‑la‑n"

Inainte de crearea interogarii, se verifica daca intre tabelul aflat in partea (care va fi adaugat in interogare) si tabelul/tabelele aflate in partea "n" a relatiei "1-la-n" starea de selectie a casetei de control Cascade Delete Related Records. Daca nu este selectata, se selecteaza. In continuare, se creeaza interogarea numai pe baza tabelului aflat in partea parcurgand aceleasi etape ca si in cazul stergerii inregistrarilor din tabelul aflat in partea "n" a relatiei "1‑la‑n".

9.5 Interogari pentru crearea unui tabel nou (Make-Table Query)

Se creeaza interogarea de selectie din tabelul/tabelele care vor furniza inregistrarile pentru noul tabel. In grila de proiectare se adauga campurile care vor fi incluse in structura noului tabel si eventual campurile pentru criterii, daca nu se afla printre cele deja adaugate.

Daca este necesar, se precizeaza criteriul/criteriile de selectie. Pentru ca un camp din grila de proiectare (cu sau fara criteriu) sa nu apara in structura noului tabel, se deselecteaza caseta din randul Show pentru campul respectiv.

Se testeaza interogarea.

Se alege Query Make-Table Query sau se executa click pe sageata instrumentului Query Type din bara cu instrumente Query Design apoi se selecteaza Make-Table Query (se afiseaza caseta de dialog Make Table

Daca noul tabel se va crea in baza de date curenta, trebuie ca butonul de optiune Current Database sa fie selectat. In lista Table Name se introduce numele tabelului care va fi creat.

Daca noul tabel se va crea in alta baza de date, se selecteaza butonul de optiune Another Database, se precizeaza numele bazei de date, inclusiv calea, in caseta de text File Name (exemplu: C:EvidenteSalarii.mdb), iar in lista Table Name se introduce numele tabelului.

Se executa click pe OK

Se executa click pe instrumentul View din bara cu instrumente Query Design pentru a vizualiza inregistrarile noului tabel.

Se alege Query Run sau se executa click pe instrumentul Run din bara de instrumente Query Design. Microsoft Access afiseaza o caseta mesaj care informeaza cate inregistrari vor fi copiate in noul tabel si cere confirmarea crearii tabelului. Daca se executa click pe Yes, va fi creat noul tabel. Pentru ca Microsoft Access sa nu mai ceara confirmarea crearii, se deselecteaza caseta de control Action Queries din caseta de dialog Options (tab-ul Edit/Find). Daca se executa din nou interogarea, Microsoft Access afiseaza o caseta mesaj prin care cere confirmarea stergerii tabelului (existent de la executia anterioara a interogarii) inainte de crearea altui tabel cu acelasi nume. Daca se executa click pe Yes, tabelul existent este sters si noul tabel este creat.

Observatie

Pentru ca la urmatoarea executie a interogarii Microsoft Access sa nu mai ceara confirmarea stergerii tabelului, inainte de executia interogarii se afiseaza foaia de proprietati a interogarii (interogarea trebuie sa fie afisata in fereastra Query Design) si se seteaza proprietatea Destination Table cu numele noului tabel.

Campurile din tabelul nou creat nu mostenesc toate proprietatile campurilor din tabelul/tabelele sursa (doar proprietatile Data Type si Field Size). Din acest motiv, noului tabel trebuie sa i se declare cheia principala si celelalte proprietati.

10. Alte tipuri de interogari

10.1. Interogari pentru determinarea valorilor duplicat dintr-un camp

Acest tip de interogare este util mai ales in cazul in care unui tabel nu i s-a declarat cheia principala inainte de introducerea datelor. In acest caz, exista posibilitatea ca in campul care va fi declarat cheie principala sa existe valori duplicat iar incercarea de a declara acest camp cheie principala esueaza. Pentru asemenea situatii, se creeaza o interogare care determina duplicatele in campul respectiv, se elimina acele duplicatele, apoi se poate declara cheia principala.

In fereastra Database se executa click pe butonul Queries (din bara de obiecte) apoi pe butonul New (se afiseaza caseta de dialog New Query

Se selecteaza Find Duplicates Query Wizard si se executa click pe OK (se afiseaza caseta de dialog Find Duplicates Query Wizard (I)

Se selecteaza numele tabelului din lista si se executa click pe Next (se afiseaza caseta de dialog Find Duplicates Query Wizard (II)

Se selecteaza campul in care se verifica valorile duplicat (se transfera din lista Available fields in lista Duplicate-value fields

Se executa click pe Next (se afiseaza caseta de dialog Find Duplicates Query Wizard (III)

Optional se pot selecta campuri suplimentare care sa se afiseze in interogare

Se executa click pe Next (se afiseaza caseta de dialog Find Duplicates Query Wizard (IV)

In caseta What do you want to name your query se introduce numele interogarii sau se accepta numele propus de Find Duplicates Query Wizard

Se executa click pe Finish

10.2. Interogari pentru determinarea inregistrarilor fara corespondent in alt tabel

O astfel de interogare poate determina toate inregistrarile din tabelul principal care nu au inregistrari corespondente in tabelul secundar.

In fereastra Database se executa click pe butonul Queries (din bara de obiecte) apoi pe butonul New (se afiseaza caseta de dialog New Query

Se selecteaza Find Unmatched Query Wizard si se executa click pe OK (se afiseaza caseta de dialog Find Unmatched Query Wizard (I)

Se selecteaza tabelul principal (cel care contine inregistrarile pe baza carora se face verificarea).

Se executa click pe Next (se afiseaza caseta de dialog Find Unmatched Query Wizard (II)

Se selecteaza tabelul secundar (in care se face verificarea inregistrarilor).

Se executa click pe Next (se afiseaza caseta de dialog Find Unmatched Query Wizard (III)

Find Unmatched Query Wizard identifica singur campurile de legatura daca tabelele au fost legate in fereastra Relationship (daca nu, se selecteaza campurile de legatura din cele doua tabele si se executa click pe butonul ).

Se executa click pe Next (se afiseaza caseta de dialog Find Unmatched Query Wizard (IV)

Se selecteaza campurile care sa se afiseze in interogare.

Se executa click pe Next (se afiseaza caseta de dialog Find Unmatched Query Wizard (V)

In caseta de text What would you like to name your query se introduce numele interogarii sau se accepta numele propus de Find Unmatched Query Wizard

Se executa click pe Finish





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.