Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » scoala » informatica » access
Subformulare

Subformulare


Subformulare

Un subformular, este un formular inclus intr-un alt formular, pentru a permite afisarea datelor din mai multe tabele sau cereri de interogare, aflate in general in relatii de tipul unu la unu sau unul la mai multi. Astfel, in formularul principal vor fi afisate datele din partea unu a relatiei , iar in subformular cele din partea mai multi.  In mod implicit, legatura dintre un formular si un subformular reflecta legatura dintre tabelele pe care se bazeaza. Prin urmare, la un moment dat in formular vor fi afisate o inregistrare aflata de partea unu a relatiei iar in subformular inregistrarile corespondente din tabela aflata de partea mai multi a acesteia. Intr-un formular care contine un subformular se pot specifica criterii de filtrare numai asupra campurilor din formularul principal.

Facand apel la exemplul nostru, relatia de tip 1 - n dintre tabelele Factura si Linie Factura face posibila crearea unui fomular unde se vor afisa facturile si in care se poate include un subformular pentru afisarea materialelor  corespondente fiecarei facturi.

Din punctul de vedere al formatului de prezentare, un subformular poate fi de doua feluri:

o Foaie de date - se poate crea intr-o maniera foarte simpla si permite modificari privind dimensiunea si ordinea coloanelor;

o Formular - ofera o mare suplete de prezentare prin posibilitati multiple de aranjare a datelor, de utilizare a culorilor, de creare de antet si subsol pe pagina si de includere a unor campuri de tip OLE.



Pentru a beneficia de avantajele celor doua tipuri de subformulare, exista posibilitatea generarii ambelor modele, urmand ca utilizatorul sa aleaga in momentul vizualizarii unul sau altul in functie de necesitatile curente.

Pentru a crea un ansamblu formular-subformular exista 3 posibilitati.

o Crearea formularului si subformularului concomitent;

o Crearea subformularului si adaugarea lui la un formular existent;

o Crearea separat a celor doua si apoi combinarea lor.

Ultima varianta este mai simpla. In acest sens se parcurg etapele:

  • Se creeaza formularul principal si se inregistraza;
  • Se creeaza subformularul ca si formularul principal;
  • Se face legatura intre formualrul principal si subfomular;
  • Se verifica legatura si apoi rezultatul.

Pentru a aduce un subformular intr-un formular principal:

  • Se deschide formularul principal in modul Design;
  • Se terce in fereastra Database, prin activarea tastei F11, se activeaza butonul <Forms>, care va afisa lista tuturor formularelor din baza de date;
  • Se deplaseaza pictograma corespunzatoare subformularului din fereastra bazei de date in spatiul formularului principal, ceea ce va avea ca efect adaugarea unui control de tip subformular;
  • Daca este cazul se deplaseaza controlul in locul dorit si se redimensioneaza in functie de necesitati;
  • Se face dublu click pe bordura controlului ce reprezinta subfomularul, pentru a afisa lista de proprietati a acestuia;
  • Se verifica legatura dintre formularul principal si subformular prin proprietatile Link child filds si Link master fields, care sunt automat definite de Access pe baza legaturilor dintre tabele; in caz contrar se stabilesc cele doua campuri de legatura;
  • Se trece in modul Forms pentru verificarea rezultatului;
  • Pentru a aduce modificari in formularul principal se comuta inapoi in modul Design.

Pentru a modifica un subformular:

  • Se trece in modul de lucru Design si se executa click in intreriorul formularului  principal, da in afara controlului subformularului;
  • Se executa dublu click in interiorul controlului subformularului, ceea ce va afisa subformularul in modul de lucru Design;
  • Se fac modificarile dorite in subformular;
  • Se inregistraza si se reinchide subformularul;
  • In formularul principal se executa click pe bordura subformularului pentru a selectiona, apoi click in interiorul controlului sau;
  • Se activeaza tasta Enter, care va incarca subformularul modifica fara a-l afisa;
  • Se activeaza butonul Forms din bara de instrumente, care va afisa formularul principal cu subformularul modificat.

Pentru a terce din subformular in formularul principal se realizeaza click pe unul din controlalele ultimului. Invers, pentru a terce din formularul principal in  subformular se realizeaza click in zona subfomularului.

Asa cun s-a aratat mai inainte, odata cu aducerea unui subformular in spatiul unui formular, trebuie stabilita legatura inter cele doua. Aceasta operatie se face automat de catre access, iar in caz contrar prin interventia utilizatorului.

Legatura automata este posibila in urmatoarele doua situatii:

1. formularul principal si subformularul se bazeaza pe tabele aflate in relatii primare de tip 1 - 1 sau 1 - n; situatie in care campurile de legatura vor fi cheia primara din tabela aflata in partea 1 si cheia externa din tabela aflata de partea n a relatiei;

2. formularul principal si subfomularul contin doua campuri care sunt identice ca nume si ca tip, iar cel din formularul principal este cheia primara a tabelei sursa; situatie in care legatura se face prin cele doua campuri.

Daca formularul principal se bazeaza pe o cerere de interogare sau daca nu sunt indeplinite conditiile de legatura automata (definite mai inainte), este necesara stabilirea legaturii prin campurile Link child filds si Link master fields din lista de proprietati a subfomularului.

Prin urmare se recomanda definirea de relatii primare intre tabele (prin cheia primara si externa), care se vor mosteni si in ansamblul formular-subformular.

In cadrul aplicatiei de facturare se poate contrui, asa cum a fost prezentata mai sus, formularul principal Facturi in care introducem subfomularul Lini factura (fig. 9).

  Interogarea bazei de date (Query)

Interogarea bazei de date se poate face in mai multe moduri:

  • Prin vizualizarea in totalitate a continutului tabelelor (foaia de date asociate tabelei);
  • Prin vizualizarea partiala sau totala a continutului tabelelor cu ajutorulu unor formulare sau situatii finale;

Prin cereri explicite.

Primele doua moduri pot fi catalogate ca interogari simple, fara restrictii si pot fi formulate pentru o singura tabela. Interogarea prin cereri explicite este complexa, comportand in general mai multe tabele, ale caror date sunt filtrate prin intermediul unor criterii. Ultima modalitate este implementata in Access prin componenta numita cerere de interogare (query), care poate fi de cinci feluri: selectie(select), analiza incrucisata (crosstab), actiune (action), SQL (Structured Query Language) si parametrata (parameter).

Rezultatul executiei unei asemenea cereri este plasat intr-o foaie de raspuns, asemanator foii de date asociate unei tabele.

Avantajele oferite de modul de interogare a bazei de date prin cereri sunt:


  • Selectia campurilor din tabele si a interogarilor acestora pe baza unor criterii impuse de necesitatile informationale;
  • Ordonarea rezultatelor dupa anumite criterii;
  • Introducerea unor campuri calculate pe baza unor formule, care folosesc drept operanzi alte campuri existente in tabele, precum si posibilitatea determinarii de totaluri pe anumite campuri;
  • Utilizarea intr-o cerere a mai multor tabele;
  • Modularitatea cererilor in sensul ca foaia de raspuns (rezultatul) a unei cereri poate fi folosita ca intrare pentru o noua cerere;
  • Crearea unor formulare si situatii finale (reports), care au la baza cereri de interogare (create anterior)
  • Posibilitatea generarii de reprezentari grafice pe baza unor cereri de tip analiza incrucisata.

Crearea unei cereri de interogare se poate face in mai multe feluri:

  • Proiectarea pas cu pas a cererii in modul Design view (fereastra de proiectare);
  • Utilizand instrumentul wizard;
  • Exprimarea cererii in limbajul SQL;
  • Crearea unui filtru si salvarea acestuia ca cerere de interogare.

Pentru a crea o cerere de interogare pas cu pas in modul Design view:

  1. In fereastra Database se realizeaza click pe <Queries> si <New>;
  2. Incaseta de dialog New Query se executa click pe <Design View> si apoi <OK>;
  3. In caseta de dialog Show Table se executa click pe tab -ul care afiseaza lista obiectelor bd (tabele,cereri)
  4. Dublu click pe numele fiecarui obiect pe care vrem sa-l folosim si apoi click pe <Close>.
    Fereastra de lucru este structurata in doua parti (fig. 1)

Cea de sus care afiseaza structura tabelelor/cererilor selectate la punctul 4 si eventualele legaturi dintre ele;

Cea de jos numita grila de proiectare (design grid), in care se va construi cererea din punct de vedere structural si functional; aceasta mai este cunoscuta si sub numele de grila QBE (Query By Exemple)

 ~ fig. 1~

  1. Daca avem mai multe tabele si/sau cereri de interogare, trebuie sa ne asiguram ca inter ele exista legaturile necesare pentru a raspunde cerintelor impuse de noua cerere de interogare.
  2. Daca nu exista legaturile necesare intre tabele, se stabilesc prin glisarea mousului de pe campul de legatura din tabela principala spre campul de legatura din tabela secundara; campurile numerice de legatura Field Size trebuie sa fie:byte, integer sau long integer.
  3. In functie de sursa acestora, campurile din structura unei cereri sunt de doua feluri: preluate din tabele/cereri sau calculate. Trecerea campurilor preluate din tabele/cereri in grila de proiectare se face prin deplasarea mouse-ului din lista de campuri in celulele din linia Field. Aceasta trecere poate fi partiala sau totala, in functie de rezultatul final urmarit.
    Trecerea tuturor campurilor dintr-o tabela/cerere in grila de proiectare se poate face in 2 moduri:

o Dublu click in bara de titlu a listei de campuri, click in lista de campuri (oriunde) si apoi deplasarea in grila de proiectare;

o Prin deplasarea caracterului * (care se gaseste in capatul listei) in grila de proiectare.

  1. Ordonarea datelor intr-o cerere se poate face crescator sau descrescator, dupa unul sau mai multe campuri. Pentru aceasta se realizeaza click in celula de la intersectia coloanei campului cu caseta Sort si apoi se alege intre Ascending sau Descending. In cazul in care se specifica mai multe campuri de ordonare (chei de sortare), operatia se executa incepand cu primul camp din stanga si si continuand cu celelalte spre dreapta pana la ultimul. Ordinea campurilor de sortare influenteaza rezultatul acestei operatii.
  2. Criteriile de selectie se introduc in celula aflata la intersectia coloanei campului cu grila Criteria din grila de interogare. Acestea pot fi simple sau compuse (cu ajutorul operatorilor AND/OR) si pot utiliza o serie de cuvinte rezervate si expresii definite de utilizatori.

Principalele criterii simple sunt:

o Apartenenta la un interval de valori:BETWEEN valoare_inferioara AND valoare_superioara (vezi fig. 1);

o Apartenenta la o lista de valori: IN(valoare1,valoare2,...) (vezi fig.1);

o Utilizarea operatorilor de comparatii: <,>,<=,>=,<>,=  (vezi fig.1);

o Utilizarea operatorilor de negatie NOT NULL, IS NOT NULL sau NULL, IS NULL;

o Selectia dupa o data relativa la data curenta: Date().

Se pot specifica criterii de selectie dupa un anumit text care, daca va contine spatii, terbuie pus intre ghilimele. Criteriile complexe se pot constitui prin utilizarea operatorilor logici SI, SAU care vor permite legarea criteriilor simple. In acest sens grila de proiectare poseda mai multe linii de criterii. Criteriile simple prin operatorul logic SAU se va specifica pe aceeasi linie; criteriul complex care va contine operatorul SAU pe mai multe campuri se va specifica pe linii diferite. Operatorul logic SI este implicit intre criteriile campurilor de pe aceeasi linie.

Un alt tip de criterii complexe sunt cele care compara expresii aritmetice, in care operanzii sunt alte campuri decat cel pentru care este difinit criteriul (caz in care campurile vor fi incluse in paranteze drepte).

  1. Crearea unor campuri calculate:

Se selecteaza coloana si se introduce comanda <View, Totals>, care va introduce in grila de proiectare linia Totals, data nu exista;

Se selecteaza Expresion;

In prima linie Field se introduce formula de calcul care are forma generala:

o Nume-rezultat: [Camp1]Operator_aritmetic[Camp2] .....

o De ex: TVA [Pret-unitar * 0.19 (vezi fig.1)

Access permite, de asemenea, specificarea unor operatii de calcul predefinite, care lucreaza pe grupuri de inregistrari sau la intervalul intregii tabele.

Pentru realizarea unei operatii de calcul predefinite asupra tuturor inregistrarilor din tabela se procedeaza in felul urmator:

  • Se creeaza o cerere care va contine numai campurile asupra carora vor actiona operatiile de calcul;
  • Se introduce <View, Totals>, ceea ce determina afisarea in grila de proiectare a unei noi linii TOTALS care va contine pentru toate campurile operatia Group by;
  • Se inlocuieste operatia Group by din fiecare celula cu cea dorita (din lista derulanta)
  • Se introduce comanda <Query , Run> pentru vizualizarea rezultatului.

Operatia

Functia

Tipul de campuri

SUM

Suma valorilor unui camp

Numeric, Autonumber, Data si Logic

AVG

Media aritmetica

Numeric, Autonumber, Data si Logic

MIN

Valoarea minima

Numeric, Autonumber, Data si Logic si Text

COUNT

Numarul de valori dintr-un camp

Toate tipurile

STDEV

Varianta valorilor unui camp

Numeric, Autonumber, Data si Logic

FIRST

Prima valoare dintr-un camp

Toate tipurile

LAST

Ultima valoare dintr-un camp

Toate tipurile

Pentru realizarea unei operatii de calcul predefinite asupra unui grup de inregistrari dintr-o tabela se procedeaza ca mai inainte (pentru toate inregistrarile) cu deosebirea ca unele campuri din cerere (cel putin unul) trebuie sa contina operatia Totals: <Group By> pentru a defini criteriile de grupare. Ordinea de evaluare a criteriilor de grupare este de la stanga la dreapta. Astfel, daca dorim sa aflam totalul intrarilor de materiale, totalul iesirilor de materiale si stocul existent ... vom construi urmatoarea cerere de interogare (fig. 2):

  1. Salvarea unei cereri de interogare se face prin comanda <File, Save>

Dupa definnirea structurii cererii, campurile acesteia pot fi deplasate dintr-un loc in altul, sterse sau adaugate altele noi.





Politica de confidentialitate


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