Selectați interogări în Access. Crearea de interogări în Microsoft Access

Subiect: Crearea de relații între mese. Crearea unei interogări de selecție, cu un parametru și o interogare finală.

Deschideți baza de date creată în laboratorul anterior Decanatul TF .

Crearea de relații între mese

Selectați un obiect în fereastra bazei de date Mese . Faceți clic pe butonul " Sistem date " pe bara de instrumente sau executați comanda " Serviciu »  « Sistem date " folosind meniul de comandă. Pe ecran va apărea o fereastră: Sistem date "și fereastra" Plus Mese „(Fig. 18).

Orez. 18. Caseta de dialog Schema de date și Caseta de dialog Adăugare tabel

La fereastră " Plus Mese "pe fila" Mese » listează toate tabelele bazei de date. Pentru a crea relații între tabele, trebuie să le mutați din " Plus Mese "pe fereastră" Sistem date " Pentru a transfera un tabel, selectați-l cu un clic de mouse și faceți clic pe butonul „ Adăuga " După transferul tabelelor necesare, închideți fereastra " Plus Mese ».

Mutați toate tabelele în fereastră " Sistem date " Redimensionați ferestrele tabelului astfel încât tot textul să fie vizibil (Fig. 19).

Pentru a crea o relație între tabele Elevi Și Evaluări în conformitate cu Schema de date trebuie să mutați cursorul mouse-ului în câmp Cod student in masa Elevi și cu butonul mouse-ului apăsat, trageți acest câmp pe câmp Cod student in masa Evaluări , apoi eliberați butonul mouse-ului. Fereastra " Schimbare conexiuni „(Fig. 20).

Verificați proprietatea " Securitate integritate date " făcând clic pe el. Bifați casetele de selectare din proprietăți " Cascadă Actualizați legate de câmpuri " Și " Cascadă ştergere legate de câmpuri " Acest lucru vă va permite să editați înregistrările numai în tabel Elevi , și în tabel Evaluări aceste acțiuni asupra înregistrărilor legate vor fi efectuate automat.

Pentru a crea o conexiune, faceți clic pe butonul " Crea ».

Orez. 19. Aspectul schemei de date a bazei de date " Decanatul TF» înainte de a face conexiuni

Orez. 20. Casetă de dialog pentru specificarea parametrilor de conexiune între câmpurile tabelului

La fel conform Schema de date se creează conexiuni între tabelele rămase (Fig. 21).

Orez. 21. Schema de date a bazei de date " Decanatul TF»

Răspundeți când închideți fereastra diagramei de date da la întrebarea despre salvarea aspectului.

Relațiile create între tabelele bazei de date pot fi modificate.

Pentru a schimba conexiunile trebuie să apelați fereastra „ Sistem date " După aceasta, plasați cursorul mouse-ului pe conexiunea care trebuie schimbată și faceți clic dreapta. Va apărea un meniu contextual (Fig. 22):

Orez. 22. Meniul contextual Comunicare

Dacă selectați comanda " Șterge ", apoi după confirmare conexiunea va fi ștearsă. Dacă trebuie să schimbați conexiunea, selectați comanda " Schimbare conexiune " După aceea, în fereastra care apare „ Schimbare conexiuni " (în partea de sus) selectați câmpurile din tabelele pe care doriți să le conectați și faceți clic pe butonul " Crea ».

Cereri

Interogările sunt folosite pentru a selecta sau a căuta date dintr-unul sau mai multe tabele. Puteți utiliza interogări pentru a vizualiza, analiza și modifica datele din mai multe tabele. Ele sunt, de asemenea, utilizate ca sursă de date pentru formulare și rapoarte. Interogările vă permit să calculați totaluri și să le afișați într-un format compact, precum și să efectuați calcule pe grupuri de înregistrări.

Vom dezvolta cereri în modul Designer .

ÎN Acces Puteți crea următoarele tipuri de interogări:

    Cerere de mostra . Acesta este tipul de cerere cel mai frecvent utilizat. Acest tip de interogare returnează date dintr-unul sau mai multe tabele și le afișează ca tabel. Interogările de selectare pot fi, de asemenea, folosite pentru a grupa înregistrări și pentru a calcula sume, medii, numără înregistrări și pentru a găsi alte tipuri de totaluri. Pentru a modifica condițiile de selecție, trebuie să modificați cererea.

    Cerere cu parametri . Acesta este un prompt care, atunci când este executat, afișează propria casetă de dialog care vă solicită să introduceți datele sau valoarea pe care doriți să o introduceți într-un câmp. Aceste date sau valoare se pot modifica de fiecare dată când se face cererea.

    Cerere încrucișată . Folosit pentru calcule și prezentarea datelor într-o structură care facilitează analiza acestora. O interogare transversală calculează suma, media, numărul de valori sau efectuează alte calcule statistice, apoi grupează rezultatele într-un tabel în două seturi de date, unul definind titlurile coloanelor, iar celălalt definind titlurile rândurilor.

    Cerere de modificare . Aceasta este o interogare care modifică sau mută mai multe înregistrări într-o singură operațiune. Există patru tipuri de solicitări de modificare:

1. Pentru a șterge o intrare. Această interogare șterge un grup de înregistrări din unul sau mai multe tabele.

2. Pentru a actualiza înregistrarea. Efectuează modificări generale unui grup de înregistrări dintr-unul sau mai multe tabele. Vă permite să modificați datele din tabele.

3. Pentru a adăuga înregistrări. Adaugă un grup de înregistrări dintr-unul sau mai multe tabele la sfârșitul unuia sau mai multor tabele.

4. Pentru a crea un tabel. Creează un tabel nou din toate sau o parte din datele din unul sau mai multe tabele.

    Cereri SQL . Creat folosind instrucțiuni lingvistice SQL , folosit in DB .

Aș dori să pot crea o interogare parametrizată în MS Access 2003 și să trec valorile anumitor elemente de formular în acea interogare, apoi să obțin setul de rezultate corespunzător și să fac câteva calcule de bază cu ele. Vă voi prezenta pe scurt cum să obțineți parametrii de interogare care să fie populați cu elemente de formular. Dacă trebuie să folosesc VBA, e în regulă.

5 răspunsuri

Referințele la controale dintr-un formular pot fi folosite direct în interogările Access, deși este important să le definiți ca parametri (în caz contrar, rezultatele în ultimele versiuni Accesul poate fi imprevizibil dacă a fost cândva fiabil).

De exemplu, dacă doriți să filtrați o interogare după controlul LastName din MyForm, veți folosi acesta ca criteriu:

LastName = Forms!MyForm!LastName

PARAMETRI [!MyForm!] Text (255); SELECTAȚI tblCustomers.* FROM tblCustomers WHERE tblCustomers.LastName=!;

Cu toate acestea, aș dori să vă întreb de ce aveți nevoie de o interogare stocată în acest scop. Ce faci cu rezultatele? Afișați-le într-un formular sau raport? Dacă acesta este cazul, puteți face acest lucru în sursa de înregistrare a formularului/raportului și lăsați interogarea salvată neschimbată cu parametrii, astfel încât să poată fi utilizată în alte contexte fără a afișa o solicitare de populare a parametrilor.

Pe de altă parte, dacă faceți ceva în cod, scrieți SQL-ul din mers și utilizați valoarea literală a controlului formularului pentru a crea clauza WHERE.

Iată un fragment de cod. Actualizează tabelul utilizând parametrul txtHospital:

Set db = CurrentDb Set qdf = db.QueryDefs("AddHospital") qdf.Parameters!txtHospital = Trim(Me.HospName) qdf.ReturnsRecords = False qdf.Execute dbFailOnError intResult = qdf.RecordsAffected

Iată un exemplu de SQL:

PARAMETRI txtHospital Text(255); INSERT INTO tblHospitals() VALUES()

Există trei modalități tradiționale de a ocoli această problemă:

  1. Setați parametrul la o valoare, astfel încât utilizatorului să i se solicite o valoare atunci când rulează interogarea.
  2. Câmp de link din formular (posibil ascuns)
  3. Creați interogarea din mers și nu utilizați parametrii.

Cred că este greșit pentru mine că ar trebui să introduceți ceva de genul [?introduceți codul ISO al țării] sau link-uri către câmpuri din formularul dvs. precum: !! .

Aceasta înseamnă că nu putem reutiliza aceeași interogare în mai multe locuri, deoarece câmpuri diferite furnizează datele sau trebuie să ne bazăm pe faptul că utilizatorul nu confundă introducerea datelor atunci când rulează interogarea. Din câte îmi amintesc, poate fi dificil să folosești aceeași valoare de mai multe ori cu un parametru introdus de utilizator.

De obicei, aș alege ultima opțiune, aș crea interogarea din mers și aș actualiza obiectul de interogare după cum este necesar. Cu toate acestea, acesta este un atac obișnuit de injecție SQL (fie accidental, fie intenționat cunoscând utilizatorii mei) și este pur și simplu obscen.

„Ed. Start - pentru completarea exemplului dim qryStartDate ca data dim qryEndDate ca data qryStartDate = #2001-01-01# qryEndDate = #2010-01-01# „Ed. Sfârșitul „CITAT „Armăsar”: Pentru a transmite parametri unei interogări în VBA „ este într-adevăr destul de simplu: „Mai întâi vom seta câteva variabile: Dim qdf As Querydef Dim rst As Recordset „apoi vom deschide interogarea: Set qdf = CurrentDB.QueryDefs(qryname) „Acum vom atribui valori interogării folosind opțiunea de parametri: qdf.Parameters(0) = qryStartDate qdf.Parameters(1) = qryEndDate „Acum vom converti querydef într-o recordset și rulați-l Set rst = qdf.OpenRecordset "Run code on recordset" Închideți toate obiectele rst.Close qdf.Close Set rst = Nimic Set qdf = Nimic

(Nu am testat asta eu însumi, ci doar ceva ce am adunat în călătoriile mele pentru că din când în când am vrut să fac asta, dar am ajuns să folosesc unul dintre kludge-urile mele menționate anterior)

edit am avut în sfârșit un motiv să folosesc asta. Iată codul real.

"... Dim qdf As DAO.QueryDef Dim prmOne As DAO.Parameter Dim prmTwo As DAO.Parameter Dim rst as recordset "... "deschide interogarea: Set qdf = db.QueryDefs("my_two_param_query") "params called param_one și „param_two” vă leagă DAP.Parameters la interogarea Set prmOne = qdf.Parameters!param_one Set prmTwo = qdf.Parameters!param_two "setează valorile parametrilor prmOne = 1 prmTwo = 2 Set rst = qdf.OpenRecordset (dbOpenDynaset , _ dbSeeChanges) „... tratați setul de înregistrări ca de obicei „asigurați-vă că vă curățați după dvs. Set rst = Nimic Set prmOne = Nimic Set prmTwo = Nimic Set qdf = Nimic

DoCmd.SetParameter „frontMthOffset”, -3 DoCmd.SetParameter „endMthOffset”, -2 DoCmd.OpenQuery „QryShowDifference_ValuesChangedBetweenSELECTEDMonths”

Unde interogare SQL Accesul include de fapt SQL. De exemplu

„selectați blah din mytable unde dateoffset="

Totul funcționează!

Să luăm un exemplu. cererea parametrizată arată astfel:

Selectați Tbl_Country.* Din Tbl_Country WHERE id_Country = _ [?introduceți codul ISO al țării]

și ați dori să puteți obține această valoare ([? introduceți... țară] una) dintr-un formular în care aveți controale și câteva date în el. Ei bine... ar putea fi posibil, dar necesită o anumită normalizare a codului.

O soluție ar fi să atribuiți o anumită logică controalelor de formular, cum ar fi fid_Country pentru control, care ar deține valoarea id_Country. Interogarea dvs. poate fi apoi reprezentată ca șir:

Qr = "Selectați Tbl_Country.* Din Tbl_Country WHERE id_Country = "

După ce ați introdus toate datele solicitate în formular, faceți clic pe butonul „cerere”. Logica va trece prin toate controalele și va verifica dacă acestea sunt prezente în cerere, eventual înlocuind parametrul cu valoarea controlului:

Dim ctl ca control Pentru fiecare ctl din Me.controls Dacă instr(qr,"[" & ctl.name & "]") > 0 Atunci qr = înlocuiți(qr,"[" & ctl.name & "]",ctl .valoare) End if Next i

În acest caz, veți avea o interogare complet actualizată, în care parametrii sunt înlocuiți cu date reale. În funcție de tipul fid_country (șir, GUID, dată etc.), poate fi necesar să adăugați suplimentar ghilimele duble sau nu pentru a primi cererea finală ca:

Qr = "Selectați Tbl_Country.* Din Tbl_Country WHERE id_Country = ""GB"""

Aceasta este o interogare complet compatibilă cu Access pe care o puteți folosi pentru a deschide un set de înregistrări:

Setați rsQuery = currentDb.openRecordset(qr)

Cred că ai terminat aici.

Acest subiect este esențial atunci când scopul dvs. este să dezvoltați aplicații Access. Trebuie să oferi utilizatorilor mod standard solicitați date de la aceștia GUI nu numai pentru rularea interogărilor, ci și pentru filtrarea formularelor continue (la fel cum face Excel cu opțiunea „autofilter”) și gestionarea opțiunilor de raport. Noroc!

Subiect: Crearea de relații între mese. Crearea unei interogări de selecție, cu un parametru și o interogare finală.

Deschideți baza de date creată în laboratorul anterior Decanatul TF .

Crearea de relații între mese

Selectați un obiect în fereastra bazei de date Mese . Faceți clic pe butonul " Sistem date " pe bara de instrumente sau executați comanda " Serviciu »  « Sistem date " folosind meniul de comandă. Pe ecran va apărea o fereastră: Sistem date "și fereastra" Plus Mese „(Fig. 18).

Orez. 18. Caseta de dialog Schema de date și Caseta de dialog Adăugare tabel

La fereastră " Plus Mese "pe fila" Mese » listează toate tabelele bazei de date. Pentru a crea relații între tabele, trebuie să le mutați din " Plus Mese "pe fereastră" Sistem date " Pentru a transfera un tabel, selectați-l cu un clic de mouse și faceți clic pe butonul „ Adăuga " După transferul tabelelor necesare, închideți fereastra " Plus Mese ».

Mutați toate tabelele în fereastră " Sistem date " Redimensionați ferestrele tabelului astfel încât tot textul să fie vizibil (Fig. 19).

Pentru a crea o relație între tabele Elevi Și Evaluări în conformitate cu Schema de date trebuie să mutați cursorul mouse-ului în câmp Cod student in masa Elevi și cu butonul mouse-ului apăsat, trageți acest câmp pe câmp Cod student in masa Evaluări , apoi eliberați butonul mouse-ului. Fereastra " Schimbare conexiuni „(Fig. 20).

Verificați proprietatea " Securitate integritate date " făcând clic pe el. Bifați casetele de selectare din proprietăți " Cascadă Actualizați legate de câmpuri " Și " Cascadă ştergere legate de câmpuri " Acest lucru vă va permite să editați înregistrările numai în tabel Elevi , și în tabel Evaluări aceste acțiuni asupra înregistrărilor legate vor fi efectuate automat.

Pentru a crea o conexiune, faceți clic pe butonul " Crea ».

Orez. 19. Aspectul schemei de date a bazei de date " Decanatul TF» înainte de a face conexiuni

Orez. 20. Casetă de dialog pentru specificarea parametrilor de conexiune între câmpurile tabelului

La fel conform Schema de date se creează conexiuni între tabelele rămase (Fig. 21).

Orez. 21. Schema de date a bazei de date " Decanatul TF»

Răspundeți când închideți fereastra diagramei de date da la întrebarea despre salvarea aspectului.

Relațiile create între tabelele bazei de date pot fi modificate.

Pentru a schimba conexiunile trebuie să apelați fereastra „ Sistem date " După aceasta, plasați cursorul mouse-ului pe conexiunea care trebuie schimbată și faceți clic dreapta. Va apărea un meniu contextual (Fig. 22):

Orez. 22. Meniul contextual Comunicare

Dacă selectați comanda " Șterge ", apoi după confirmare conexiunea va fi ștearsă. Dacă trebuie să schimbați conexiunea, selectați comanda " Schimbare conexiune " După aceea, în fereastra care apare „ Schimbare conexiuni " (în partea de sus) selectați câmpurile din tabelele pe care doriți să le conectați și faceți clic pe butonul " Crea ».

Cereri

Interogările sunt folosite pentru a selecta sau a căuta date dintr-unul sau mai multe tabele. Puteți utiliza interogări pentru a vizualiza, analiza și modifica datele din mai multe tabele. Ele sunt, de asemenea, utilizate ca sursă de date pentru formulare și rapoarte. Interogările vă permit să calculați totaluri și să le afișați într-un format compact, precum și să efectuați calcule pe grupuri de înregistrări.

Vom dezvolta cereri în modul Designer .

ÎN Acces Puteți crea următoarele tipuri de interogări:

    Cerere de mostra . Acesta este tipul de cerere cel mai frecvent utilizat. Acest tip de interogare returnează date dintr-unul sau mai multe tabele și le afișează ca tabel. Interogările de selectare pot fi, de asemenea, folosite pentru a grupa înregistrări și pentru a calcula sume, medii, numără înregistrări și pentru a găsi alte tipuri de totaluri. Pentru a modifica condițiile de selecție, trebuie să modificați cererea.

    Cerere cu parametri . Acesta este un prompt care, atunci când este executat, afișează propria casetă de dialog care vă solicită să introduceți datele sau valoarea pe care doriți să o introduceți într-un câmp. Aceste date sau valoare se pot modifica de fiecare dată când se face cererea.

    Cerere încrucișată . Folosit pentru calcule și prezentarea datelor într-o structură care facilitează analiza acestora. O interogare transversală calculează suma, media, numărul de valori sau efectuează alte calcule statistice, apoi grupează rezultatele într-un tabel în două seturi de date, unul definind titlurile coloanelor, iar celălalt definind titlurile rândurilor.

    Cerere de modificare . Aceasta este o interogare care modifică sau mută mai multe înregistrări într-o singură operațiune. Există patru tipuri de solicitări de modificare:

1. Pentru a șterge o intrare. Această interogare șterge un grup de înregistrări din unul sau mai multe tabele.

2. Pentru a actualiza înregistrarea. Efectuează modificări generale unui grup de înregistrări dintr-unul sau mai multe tabele. Vă permite să modificați datele din tabele.

3. Pentru a adăuga înregistrări. Adaugă un grup de înregistrări dintr-unul sau mai multe tabele la sfârșitul unuia sau mai multor tabele.

4. Pentru a crea un tabel. Creează un tabel nou din toate sau o parte din datele din unul sau mai multe tabele.

    Cereri SQL . Creat folosind instrucțiuni lingvistice SQL , folosit in DB .

Astăzi vom începe să ne uităm la o aplicație precum − Microsoft Access 2003 , care își poate crea propriile baze de date ( format mdb), precum și să creeze aplicații client pentru bazele de date existente bazate pe MS SQL Server. Subiectul articolului de astăzi va fi crearea de noi interogări din Access, adică atât interogări simple, cât și diverse funcții, vizualizări și proceduri. Aici, o interogare se referă la obiectele bazei de date.

Despre Microsoft Access

Microsoft Accesssoftware Compania Microsoft, care este un SGBD relațional. Are capabilități enorme atunci când organizează o bază de date, creând o aplicație separată care poate interacționa cu multe alte SGBD. Cea mai comună soluție client-server, unde clientul este o aplicație scrisă în Access ( Limbajul VBA, formulare și multe altele), iar serverul este un SGBD Microsoft SQL Server. Cu toate acestea, Access acceptă și interacțiunea cu alte SGBD-uri, de exemplu, MySql sau PostgreSQL. Putem vorbi de multă vreme despre Access, dar scopul articolului de astăzi este tocmai crearea de interogări ( obiecte) din Access.

Să trecem la exersare și să începem cu o bază de date mdb simplă, adică. cum să creați chiar aceste interogări.

Crearea de interogări în Microsoft Access 2003 - baza de date MDB

Mai întâi, deschideți baza de date, apoi faceți clic pe obiecte "Solicitari"și apăsați butonul "Crea".

Notă! Aceasta înseamnă că aveți deja o bază de date.

Și o nouă fereastră pentru selectarea tipului de solicitare se va deschide în fața ta.

Să ne uităm la fiecare dintre aceste tipuri de solicitări mai detaliat.

Tipuri de interogare în Access 2003 - MDB

Constructor- aceasta este crearea unei cereri bazate pe constructor, ca să spunem așa editor grafic, dar în el puteți trece la modul sql și puteți scrie textul interogării ca de obicei. Imediat după lansare, se va deschide o fereastră pentru a selecta tabelele necesare sau interogările existente, deoarece interogările existente pot fi folosite și pentru a selecta datele necesare, este ca și cum "performanţă".

Dacă nu vă place să faceți acest lucru într-un editor grafic, puteți trece la modul SQL făcând clic pe elementul de meniu "Vedere", apoi „Modul SQL”.

Cerere simplă- acesta, s-ar putea spune, este același set de construcție, doar un tip puțin diferit și mai puține posibilități.

Cerere încrucișată– aceasta este așa-numita transpunere a tabelului, cu alte cuvinte, ieșirea datelor care se află în coloane orizontale, i.e. Fiecare valoare dintr-o coloană va fi afișată orizontal într-o coloană separată. Toate acestea se fac cu ajutorul unui vrăjitor, așa că nu ar trebui să existe probleme.

Intrări duplicate– după cum sugerează și numele, aceasta este o căutare a înregistrărilor duplicate.

Înregistrări fără subordonați– aceasta este o căutare pentru acele înregistrări care lipsesc într-un anumit tabel.

Cu bazele de date mdb este suficient, deoarece sunt rar utilizate în întreprinderi, de obicei folosesc următoarea schemă - scriu un client separat și toate datele sunt stocate pe server folosind un DBMS în cazul nostru - acesta este MS SQL Server și clientul este Access (.adp).

Crearea de interogări în baza de date Microsoft Access 2003 - MS SQL Server

Să ne uităm la crearea de noi interogări de la un client Access bazat pe MS SQL Server ( Se presupune că aveți deja un client adp și o bază de date bazată pe MS SQL Server).

Notă! Acest articol nu implică învățarea sql, așa că până când citiți acest articol ar trebui să înțelegeți deja elementele de bază ale sql și conceptul de obiecte de bază din baza de date, cum ar fi: vizualizare, funcție, procedură. Dacă sunteți complet nou în acest domeniu, atunci mai întâi, desigur, este recomandat să stăpâniți SQL, deoarece mulți dintre termenii de mai jos nu vă vor fi clari. Articole recomandate:

  • Ce sunt vizualizările VIEWS în bazele de date? Și de ce sunt necesare?

Începutul este același, deschide proiectul, apoi faceți clic pe obiecte "Solicitari"și apăsați butonul "Crea".

Și acum mai detaliat.

Tipuri de interogări în baza de date Access 2003 - MS SQL Server

Constructor de funcții încorporat- aceasta, s-ar putea spune, este o vizualizare obișnuită, doar parametrii pot fi trecuți în ea, apoi unele interogări sunt executate pe server și este returnat un tabel. Este un fel de funcție care returnează date sub forma unui tabel. Se adresează după cum urmează ( dacă vorbim despre sql):

SELECTAȚI * FROM my_test_tabl_func(par1, par2 ……)

După ce faceți clic pe "BINE" Pentru a crea această funcție, veți vedea fereastra deja familiară pentru adăugarea tabelelor și vizualizărilor existente. Dar de obicei închid această fereastră și scriu manual cererea într-un câmp special. Pentru ca acest câmp să fie afișat, faceți clic pe următorul panou:

Apoi, dacă doriți să adăugați parametrii de intrare, puteți pune pur și simplu semnul @ și numele variabilei în condiție, de exemplu, astfel:

SELECT * FROM tabelul WHERE kod = @par

După pe panoul în proprietățile funcției

pe filă "parametrii funcției" vor apărea parametrii pe care i-ați specificat și trebuie să fie transmisi în ordinea în care sunt indicați aici.

Vizualizare constructor- aceasta este crearea unei idei obișnuite în rândul oamenilor obișnuiți "Vyukha".

Constructor de proceduri stocate– crearea unei proceduri folosind un constructor, principiul este același ca în funcțiile de mai sus. Permiteți-mi să vă reamintesc că procedura este un set instrucțiuni sql, atât pentru eșantionare, cât și pentru modificarea datelor.

Introducerea unei proceduri stocate– aceasta este crearea unei proceduri folosind un editor de text, i.e. crearea unei proceduri pur manuală. În cele din urmă, același lucru cu utilizarea constructorului. La crearea obiectelor în editor de textȘablonul de creare este deja creat automat prin acces.

Introducerea unei funcții scalare este crearea unei funcții care returnează o valoare. Creat folosind un editor de text.

Introducerea unei funcții de tabel creează o funcție care va returna un set de înregistrări. Arată ca o funcție încorporată.

Pentru a le distinge în clientul de acces, au pictograme diferite, aceleași pe care le vedeți la crearea unui obiect sau altul.

Când creați toate aceste obiecte, ele sunt salvate pe server și le puteți utiliza nu numai din proiectul dvs. adp, ci și de la alți clienți.

Desigur, puteți crea toate aceste obiecte pe server folosind, de exemplu, Enterprise Manager ( depreciat, acum SQL Server Studio de management ), dar astăzi luăm în considerare posibilitatea de a crea aceste obiecte din clientul de acces.

Pentru elementele de bază, cred că este suficient, dacă vorbim despre asta mai detaliat, nu se va încadra într-un articol, dar mi se pare că este suficient pentru a crea anumite solicitări. Dar dacă aveți întrebări despre crearea unei anumite funcții sau proceduri, atunci întrebați-le în comentarii, voi încerca să vă ajut.

Scopul lucrării: Studierea tehnicilor de construire și utilizare a interogărilor pentru selectarea datelor.

Înainte de execuție munca de laborator Trebuie să studiați următoarele secțiuni:

Tipuri de cereri;

Crearea de interogări în modul design;

Reguli pentru înregistrarea condițiilor de selecție a datelor;

Utilizarea funcțiilor încorporate;

Crearea câmpurilor calculate;

Utilizarea formularelor de intrare/ieșire a datelor;

Crearea de interogări încrucișate și active.

Sarcina 1: Creați o interogare simplă.

1. Deschide baza de date institut.

2. Faceți clic în fereastra Bază de date pe obiectul Interogări.

3. În fereastra Interogări, faceți clic pe butonul Creare.

4. În fereastra New Query, selectați Design și faceți clic pe Ok.

5. În fereastra Adăugare tabel, adăugați toate cele patru tabele și închideți fereastra.

6. Reglați dimensiunea și locația ferestrelor tabelului în diagrama de date.

7. Trageți numele câmpurilor corespunzătoare (numele facultății, grupa N, numele specialității, carnetul de calificare N, numele complet) din ferestrele tabelului în formularul de solicitare aflat sub schema de date, respectând ordinea specificată a acestora. Utilizați o coloană de formular pentru fiecare câmp care trebuie inclus în selecție.

8. Vizualizați selecția executând comanda VIEW/Table Mode sau făcând clic pe butonul View toolbar.

9. Reveniți la modul de proiectare de interogări dacă selecția conține erori și corectați interogarea.

10. Închideți cererea. Va apărea o casetă de dialog care vă va cere să confirmați dacă doriți să o salvați. Denumiți interogarea Select1.

Sarcina 2. Creați o interogare simplă pentru a prelua informații din baza de date, inclusiv aceleași câmpuri ca și interogarea anterioară, dar care conține informații doar despre studenții din comerț. O astfel de cerere se numește cerere condiționată.

1. În fereastra Bază de date, copiați interogarea Select1 trăgând pictograma de interogare în timp ce apăsați tasta Ctrl.

2. Redenumiți interogarea în Select by Commercial. Pentru a face acest lucru, faceți clic dreapta pe numele cererii și selectați meniul contextual Redenumiți elementul.

3. Deschideți interogarea în vizualizarea design. Adăugați câmpul Comercial la cererea dvs.

4. Introduceți valoarea Da în câmpul Condiție selecție pentru câmpul Comercial.

5. Dezactivați afișarea când vi se solicită valoarea câmpului Comercial. Pentru a face acest lucru, dezactivați caseta de selectare afișare pentru acest câmp.

6. Răsfoiți selecția făcând clic pe butonul Executare din bara de instrumente.

7. Închideți cererea, salvând aspectul cererii.

Sarcina 3. Creați o interogare pentru a găsi numele de familie și numărul de înregistrare al celui mai tânăr student dintr-unul dintre grupuri.


1. În fereastra Bază de date, faceți clic pe butonul Creare și selectați opțiunea Design.

2. În fereastra Adăugare tabel, selectați tabelul Student. Introduceți toate câmpurile acestui tabel în formularul de solicitare. Pentru a face acest lucru, mai întâi selectați toate câmpurile din diagrama de date folosind tasta Shift, apoi trageți-le în prima linie a formularului de descriere a cererii.

3. Introduceți o expresie de formulă în câmpul Condiție de selecție pentru câmpul Data nașterii în conformitate cu sarcina. Utilizați instrumentul Access Expression Builder. Pentru a face acest lucru, plasați cursorul în celula corespunzătoare a tabelului de descriere a cererii și faceți clic pe butonul Construiți bara de instrumente.

4. În fereastra Expression Builder, introduceți numele funcției DMax. Pentru a face acest lucru, extindeți lista Funcții din panoul din stânga al constructorului și selectați Funcții încorporate. Apoi, în subfereastra din mijloc, selectați categoria de funcție Prin subset, iar în subfereastra din dreapta, selectați funcția DMax(). Funcția corespunzătoare va apărea în fereastra principală a constructorului cu argumentele indicate.

5. Eliminați primul argument al funcției și introduceți în locul lui numele câmpului Data nașterii, fie prin introducerea directă de la tastatură, fie făcând clic pe lista Tabele din panoul din stânga, apoi selectând tabelul Student și câmpul în ea. În acest din urmă caz, trebuie să eliminați partea neutilizată a liniei de expresie. Apoi, introduceți valorile argumentelor rămase ale funcției, astfel încât funcția să ia următoarea formă finală: DMax("[Data nașterii]";"Student";"=851")

6. Pentru a scrie funcția în celula tabelului de descriere a cererii, faceți clic pe butonul Ok. Închideți solicitarea salvând aspectul și redenumindu-l Youngest Student Sample. Vizualizați rezultatul unei interogări făcând dublu clic pe numele acesteia în fereastra bazei de date.

7. Demonstrează-i profesorului rezultatul muncii tale.

Sarcina 4. Creați o interogare pentru a număra numărul de studenți comerciali din fiecare grup.

1. Creați cerere nouă folosind tabele Facultate, Grupa, Student.

3. Setați condiția de selecție pentru a treia coloană la Da.

4. Setați prima și a doua coloană a formularului pentru a sorta în ordine crescătoare.

5. Dezactivați afișarea datelor coloanei a treia.

6. Introduceți câmpul Comercial în coloana a 4-a și înlocuiți numele coloanei cu Număr de reclamă. Pentru a face acest lucru, celula cu numele câmpului trebuie să conțină: Număr de reclame: Comerciale (numele coloanelor noi și vechi sunt separate prin două puncte)

7. Făcând clic pe butonul Group Operations din bara de instrumente, adăugați linia Group Operation în formular și selectați operația Count din lista pentru a 4-a coloană.

8. Vizualizați selecția totală făcând clic pe butonul Run bara de instrumente sau executând comanda QUERY/Run.

9. Reveniți la modul Proiectare interogare făcând clic pe butonul Vizualizare tablou de bord.

10. Salvați cererea, dându-i numele Numărarea reclamelor pe grupuri.

Sarcina 5. Creați o interogare care vă permite să vedeți un eșantion care reflectă numărul de studenți comerciali pentru fiecare facultate și fiecare grup. Titlurile coloanelor trebuie să corespundă numelor facultăților, titlurile rândurilor trebuie să corespundă numerelor de grup. Eșantionul ar trebui să conțină, de asemenea, o coloană rezumat cu numărul total de studenți comerciali din fiecare departament. Acest tip de eșantionare poate fi implementat cu o interogare încrucișată. Pentru a aplica o astfel de interogare, este de dorit să aveți în baza de date informații despre 5-6 grupe de studenți care studiază la 3 facultăți.

1. Folosind designerul, creați o nouă interogare folosind tabelele Facultate, Grup, Studenți.

2. Introduceți câmpul Numele Facultății în prima coloană a formularului de solicitare, câmpul Grupa N în coloana a 2-a și câmpul Comercial în coloana a 3-a.

3. Executați comanda QUERY/Cross sau faceți clic pe butonul din bara de instrumente Query Type și selectați Cross din listă.

4. Selectați valorile din rândul formularului Crosstab prin extinderea listei în celule: pentru prima coloană Row Headings, pentru a doua coloană – Colon Headings, pentru a treia coloană – Value.

5. Selectați funcția Count pentru operația de grup în a 3-a coloană.

6. Vizualizați eșantionul încrucișat făcând clic pe butonul Executare.

7. Pentru a crea o coloană rezumat, reveniți la modul proiectare și introduceți un alt câmp Comercial în formularul de solicitare. Introduceți numele coloanei Total înainte de numele acestui câmp: în rândul Operațiuni de grup, selectați Număr, iar în rândul Tablou încrucișat, selectați Anteturi rând.

8. În modul tabel, reduceți lățimea coloanelor din tabelul de selecție. Pentru a face acest lucru, selectați coloanele cu date în grupuri și rulați comanda FORMAT/Column Width/Fit to Data Width.

9. Vizualizați selecția editată și salvați cererea, dându-i numele Număr de reclame pe grupuri și facultăți.

10. O vedere aproximativă a unei probe în secțiune transversală este prezentată în Fig. 1.

Fig.1. - Eșantionarea încrucișată a numărului de studenți comerciali pe grupuri și facultăți.

Sarcina 6. Scrieți o interogare pentru a lista liste de grupuri, cu numărul grupului solicitat ca parte a interogării. O astfel de cerere se numește cerere cu parametru. Parametrul este numărul grupului. Valoarea parametrului este introdusă în caseta de dialog. Pentru a crea o cerere, trebuie să introduceți textul condiției de selecție între paranteze drepte în celula cu condiția.

1. Folosind designerul, creați o nouă interogare folosind un tabel Student.

2. Introduceți toate câmpurile tabelului în primul rând al formularului de solicitare.

3. Introduceți textul în celula liniei Condiție de selecție pentru câmpul N grup: [Introduceți numărul grupului]

4. Rulați cererea și introduceți numărul unuia dintre grupuri în caseta de dialog care apare. Răsfoiți selecția. Salvați cererea și denumiți-o Interogare cu Parametru.

5. Demonstrează-i profesorului rezultatul muncii tale.




Top