Vyberte dotazy v Accesse. Vytváranie dotazov v programe Microsoft Access

Predmet: Vytváranie vzťahov medzi tabuľkami. Vytvorenie výberového dotazu s parametrom a finálnym dotazom.

Otvorte databázu vytvorenú v predchádzajúcom cvičení Dekanát TF .

Vytváranie vzťahov medzi tabuľkami

Vyberte objekt v okne databázy Tabuľky . Kliknite na tlačidlo " Schéma údajov "na paneli nástrojov alebo vykonajte príkaz" servis »  « Schéma údajov " pomocou príkazového menu. Na obrazovke sa objaví okno: Schéma údajov "a okno" Doplnenie tabuľky “ (obr. 18).

Ryža. 18. Dialógové okno Data Schema a Dialógové okno Pridať tabuľku

V okne" Doplnenie tabuľky "na karte" Tabuľky » zoznam všetkých databázových tabuliek. Ak chcete vytvoriť vzťahy medzi tabuľkami, musíte ich presunúť z " Doplnenie tabuľky "z okna" Schéma údajov " Ak chcete preniesť tabuľku, vyberte ju kliknutím myši a kliknite na tlačidlo „ Pridať " Po prenose potrebných tabuliek zatvorte okno " Doplnenie tabuľky ».

Presuňte všetky tabuľky do okna " Schéma údajov " Zmeňte veľkosť okien tabuľky tak, aby bol viditeľný celý text (obr. 19).

Na vytvorenie vzťahu medzi tabuľkami Študenti A hodnotenia v súlade s Dátová schéma musíte presunúť kurzor myši do poľa Kód študenta v tabulke Študenti a so stlačeným tlačidlom myši presuňte toto pole do poľa Kód študenta v tabulke hodnotenia a potom uvoľnite tlačidlo myši. Okno " Zmeniť spojenia “ (obr. 20).

Skontrolujte nehnuteľnosť " Bezpečnosť bezúhonnosť údajov “ kliknutím naň. Začiarknite políčka vo vlastnostiach " Cascade aktualizovať súvisiace poliach "A" Cascade vymazanie súvisiace poliach " To vám umožní upravovať záznamy iba v tabuľke Študenti a v tabuľke hodnotenia tieto akcie na prepojených záznamoch sa vykonajú automaticky.

Ak chcete vytvoriť spojenie, kliknite na tlačidlo " Vytvorte ».

Ryža. 19. Vzhľad schémy údajov databázy " Dekanát TF» pred vykonaním pripojení

Ryža. 20. Dialógové okno pre špecifikáciu parametrov spojenia medzi poliami tabuľky

Rovnako podľa Dátová schéma medzi zvyšnými tabuľkami sa vytvoria spojenia (obr. 21).

Ryža. 21. Schéma údajov databázy " Dekanát TF»

Odpovedzte pri zatváraní okna dátového diagramu Áno na otázku o uložení rozloženia.

Vytvorené vzťahy medzi tabuľkami databázy je možné meniť.

Ak chcete zmeniť pripojenia, musíte zavolať okno " Schéma údajov " Potom umiestnite kurzor myši na pripojenie, ktoré je potrebné zmeniť, a kliknite pravým tlačidlom myši. Zobrazí sa kontextové menu (obr. 22):

Ryža. 22. Kontextové menu komunikácie

Ak vyberiete príkaz " Odstrániť “, po potvrdení sa spojenie vymaže. Ak potrebujete zmeniť pripojenie, vyberte príkaz " Zmeniť spojenie " Potom sa v okne, ktoré sa zobrazí „ Zmeniť spojenia " (v hornej časti) vyberte polia v tabuľkách, ktoré chcete prepojiť, a kliknite na tlačidlo " Vytvorte ».

Žiadosti

Dotazy sa používajú na výber alebo vyhľadávanie údajov z jednej alebo viacerých tabuliek. Dotazy môžete použiť na zobrazenie, analýzu a úpravu údajov z viacerých tabuliek. Používajú sa aj ako zdroj údajov pre formuláre a zostavy. Dotazy vám umožňujú počítať súčty a zobrazovať ich v kompaktnom formáte, ako aj vykonávať výpočty na skupinách záznamov.

Požiadavky vypracujeme v režime Dizajnér .

IN Prístup Môžete vytvoriť nasledujúce typy dopytov:

    Vzorová žiadosť . Toto je najčastejšie používaný typ požiadavky. Tento typ dotazu vracia údaje z jednej alebo viacerých tabuliek a zobrazuje ich ako tabuľku. Výberové dotazy možno použiť aj na zoskupenie záznamov a výpočet súčtov, priemerov, počítanie záznamov a nájdenie iných typov súčtov. Ak chcete zmeniť podmienky výberu, musíte zmeniť požiadavku.

    Žiadosť s parametrami . Toto je výzva, ktorá po spustení zobrazí svoje vlastné dialógové okno s výzvou na zadanie údajov alebo hodnoty, ktoré chcete vložiť do poľa. Tieto údaje alebo hodnota sa môžu zmeniť pri každej požiadavke.

    Krížová žiadosť . Používa sa na výpočty a prezentáciu údajov v štruktúre, ktorá uľahčuje ich analýzu. Prierezový dotaz vypočíta súčet, priemer, počet hodnôt alebo vykoná iné štatistické výpočty a potom výsledky zoskupí v tabuľke cez dve množiny údajov, pričom jedna definuje hlavičky stĺpcov a druhá definuje hlavičky riadkov.

    Žiadosť o zmenu . Toto je dotaz, ktorý upravuje alebo presúva viacero záznamov v jednej operácii. Existujú štyri typy žiadostí o zmenu:

1. Vymazanie záznamu. Tento dotaz vymaže skupinu záznamov z jednej alebo viacerých tabuliek.

2. Aktualizovať záznam. Vykonáva všeobecné zmeny v skupine záznamov v jednej alebo viacerých tabuľkách. Umožňuje meniť údaje v tabuľkách.

3. Na pridanie záznamov. Pripojí skupinu záznamov z jednej alebo viacerých tabuliek na koniec jednej alebo viacerých tabuliek.

4. Vytvorenie tabuľky. Vytvorí novú tabuľku zo všetkých alebo časti údajov z jednej alebo viacerých tabuliek.

    Žiadosti SQL . Vytvorené pomocou jazykových pokynov SQL , použité v DB .

Chcel by som byť schopný vytvoriť parametrizovaný dotaz v MS Access 2003 a odovzdať hodnoty určitých prvkov formulára do tohto dotazu a potom získať zodpovedajúcu sadu výsledkov a urobiť s nimi niekoľko základných výpočtov. Stručne vás prevediem, ako získať parametre dopytu na vyplnenie prvkami formulára. Ak potrebujem použiť VBA, je to v poriadku.

5 odpovedí

Odkazy na ovládacie prvky vo formulári možno použiť priamo v dotazoch Accessu, aj keď je dôležité definovať ich ako parametre (inak výsledky v najnovšie verzie Prístup môže byť nepredvídateľný, ak bol kedysi spoľahlivý).

Napríklad, ak by ste chceli filtrovať dotaz podľa ovládacieho prvku Priezvisko v MyForm, použili by ste toto ako kritérium:

Priezvisko = Forms!MyForm!LastName

PARAMETRE [!MyForm!] Text (255); SELECT tblCustomers.* FROM tblCustomers WHERE tblCustomers.LastName=!;

Chcel by som sa však opýtať, prečo na tento účel potrebujete uložený dotaz. Čo robíte s výsledkami? Zobraziť ich vo formulári alebo zostave? Ak je to tak, môžete to urobiť v zdroji záznamu formulára/prehľadu a ponechať uložený dotaz nezmenený s parametrami, aby sa dal použiť v iných kontextoch bez zobrazenia výzvy na vyplnenie parametrov.

Na druhej strane, ak robíte niečo v kóde, jednoducho napíšte SQL za behu a použite doslovnú hodnotu ovládacieho prvku formulára na vytvorenie klauzuly WHERE.

Tu je úryvok kódu. Aktualizuje tabuľku pomocou parametra txtHospital:

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

Tu je príklad SQL:

PARAMETRE txtNemocnica Text(255); INSERT INTO tblHospitals() VALUES()

Existujú tri tradičné spôsoby, ako tento problém vyriešiť:

  1. Nastavte parameter na hodnotu, aby sa používateľovi pri spustení dotazu zobrazila výzva na zadanie hodnoty.
  2. Pole odkazu vo formulári (možno skryté)
  3. Vytvorte dotaz za chodu a nepoužívajte parametre.

Myslím, že je pre mňa nesprávne, že by ste museli zadať niečo ako [?zadajte ISO kód krajiny] alebo odkazy na polia vo vašom formulári ako: !! .

To znamená, že nemôžeme znova použiť rovnaký dotaz na viac ako jednom mieste, pretože údaje poskytujú rôzne polia, alebo sa musíme spoliehať na to, že používateľ si pri spustení dotazu nepomýli zadávanie údajov. Pokiaľ si pamätám, môže byť ťažké použiť rovnakú hodnotu viac ako raz s parametrom zadaným používateľom.

Zvyčajne by som si vybral druhú možnosť, vytvoril dotaz za chodu a podľa potreby aktualizoval objekt dotazu. Toto je však bežný útok SQL injekciou (či už náhodou alebo zámerne, keď poznám svojich používateľov) a je to jednoducho obscénne.

"Ed. Start - pre dokončenie príkladu dim qryStartDate ako dátum dim qryEndDate ako dátum qryStartDate = #2001-01-01# qryEndDate = #2010-01-01# "Ed. Koniec "CITOVANIA "žrebec": Odovzdať parametre dotazu vo VBA" je naozaj celkom jednoduché: "Najskôr nastavíme nejaké premenné: Dim qdf As Querydef Dim rst As Recordset "potom otvoríme dotaz: Set qdf = CurrentDB.QueryDefs(qryname) "Teraz priradíme hodnoty dotazu pomocou možnosti parametrov: qdf.Parameters(0) = qryStartDate qdf.Parameters(1) = qryEndDate "Teraz skonvertujeme querydef na záznamov a spustite ho Set rst = qdf.OpenRecordset "Spustite nejaký kód na sade záznamov "Zatvorte všetky objekty rst.Close qdf.Close Set rst = Nič Set qdf = Nič

(Netestoval som to sám, len niečo, čo som nazbieral na svojich cestách, pretože som to tu a tam chcel urobiť, ale nakoniec som použil jednu z mojich predtým spomenutých kludges)

edit Konečne som mal dôvod toto použiť. Tu je skutočný kód.

"... Dim qdf As DAO.QueryDef Dim prmOne As DAO.Parameter Dim prmTwo As DAO.Parameter Dim rst as Records "... "otvorte dotaz: Set qdf = db.QueryDefs("my_two_param_query") "paramy tzv. param_one a "param_two "prepojte svoje DAP.Parameters s dotazom Set prmOne = qdf.Parameters!param_one Set prmTwo = qdf.Parameters!param_two "nastavte hodnoty parametrov prmOne = 1 prmTwo = 2 Set rstpen = qdfset O. (dbOpenDynaset , _ dbSeeChanges) "... narábajte so množinou záznamov ako normálne "uistite sa, že ste po sebe upratali Set rst = Nič Nastaviť prmOne = Nič Nastaviť prmTwo = Nič Nastaviť qdf = Nič

DoCmd.SetParameter "frontMthOffset", -3 DoCmd.SetParameter "endMthOffset", -2 DoCmd.OpenQuery "QryShowDifference_ValuesChangedBetweenSELECTEDMonths"

Kde SQL dotaz Access v skutočnosti obsahuje SQL. Napríklad

"vyberte bla z mytable where dateoffset="

Všetko jednoducho funguje!

Vezmime si príklad. parametrizovaná požiadavka vyzerá takto:

Vyberte Tbl_Country.* Z Tbl_Country WHERE id_Country = _ [?zadajte ISO kód krajiny]

a chceli by ste mať možnosť získať túto hodnotu ([? enter... country] one) z formulára, v ktorom máte ovládacie prvky a nejaké údaje. No... možno by to bolo možné, ale vyžaduje si to určitú normalizáciu kódu.

Jedným z riešení by bolo priradiť určitú logiku ovládacím prvkom formulára, ako napríklad fid_Country pre ovládací prvok, ktorý by obsahoval hodnotu id_Country. Váš dopyt potom môže byť reprezentovaný ako reťazec:

Qr = "Vyberte Tbl_Country.* Z Tbl_Country WHERE id_Country = "

Po zadaní všetkých požadovaných údajov do formulára kliknite na tlačidlo „požiadať“. Logika prejde všetkými ovládacími prvkami a skontroluje, či sú prítomné v požiadavke, prípadne nahradí parameter hodnotou ovládacieho prvku:

Dim ctl ako ovládací prvok Pre každý ctl v Me.controls If instr(qr,"[" & ctl.name & "]") > 0 Potom qr = replace(qr,"[" & ctl.name & "]",ctl .value) End if Next i

V tomto prípade budete mať úplne aktualizovaný dotaz, v ktorom sú parametre nahradené skutočnými údajmi. V závislosti od typu fid_country (reťazec, GUID, dátum atď.) možno budete musieť pridať ďalšie dvojité úvodzovky alebo nedostať konečnú požiadavku, ako napríklad:

Qr = "Vyberte Tbl_Country.* Z Tbl_Country WHERE id_Country = ""GB"""

Toto je dotaz plne kompatibilný s Accessom, ktorý môžete použiť na otvorenie sady záznamov:

Nastaviť rsQuery = currentDb.openRecordset(qr)

Myslím, že ste tu skončili.

Táto téma je kritická, keď je vaším cieľom vývoj aplikácií Accessu. Musíte ponúknuť používateľom štandardným spôsobom požadovať od nich údaje GUI nielen na spúšťanie dopytov, ale aj na filtrovanie súvislých formulárov (rovnako ako to robí Excel s možnosťou „automatického filtrovania“) a správu možností zostavy. Veľa štastia!

Predmet: Vytváranie vzťahov medzi tabuľkami. Vytvorenie výberového dotazu s parametrom a finálnym dotazom.

Otvorte databázu vytvorenú v predchádzajúcom cvičení Dekanát TF .

Vytváranie vzťahov medzi tabuľkami

Vyberte objekt v okne databázy Tabuľky . Kliknite na tlačidlo " Schéma údajov "na paneli nástrojov alebo vykonajte príkaz" servis »  « Schéma údajov " pomocou príkazového menu. Na obrazovke sa objaví okno: Schéma údajov "a okno" Doplnenie tabuľky “ (obr. 18).

Ryža. 18. Dialógové okno Data Schema a Dialógové okno Pridať tabuľku

V okne" Doplnenie tabuľky "na karte" Tabuľky » zoznam všetkých databázových tabuliek. Ak chcete vytvoriť vzťahy medzi tabuľkami, musíte ich presunúť z " Doplnenie tabuľky "z okna" Schéma údajov " Ak chcete preniesť tabuľku, vyberte ju kliknutím myši a kliknite na tlačidlo „ Pridať " Po prenose potrebných tabuliek zatvorte okno " Doplnenie tabuľky ».

Presuňte všetky tabuľky do okna " Schéma údajov " Zmeňte veľkosť okien tabuľky tak, aby bol viditeľný celý text (obr. 19).

Na vytvorenie vzťahu medzi tabuľkami Študenti A hodnotenia v súlade s Dátová schéma musíte presunúť kurzor myši do poľa Kód študenta v tabulke Študenti a so stlačeným tlačidlom myši presuňte toto pole do poľa Kód študenta v tabulke hodnotenia a potom uvoľnite tlačidlo myši. Okno " Zmeniť spojenia “ (obr. 20).

Skontrolujte nehnuteľnosť " Bezpečnosť bezúhonnosť údajov “ kliknutím naň. Začiarknite políčka vo vlastnostiach " Cascade aktualizovať súvisiace poliach "A" Cascade vymazanie súvisiace poliach " To vám umožní upravovať záznamy iba v tabuľke Študenti a v tabuľke hodnotenia tieto akcie na prepojených záznamoch sa vykonajú automaticky.

Ak chcete vytvoriť spojenie, kliknite na tlačidlo " Vytvorte ».

Ryža. 19. Vzhľad schémy údajov databázy " Dekanát TF» pred vykonaním pripojení

Ryža. 20. Dialógové okno pre špecifikáciu parametrov spojenia medzi poliami tabuľky

Rovnako podľa Dátová schéma medzi zvyšnými tabuľkami sa vytvoria spojenia (obr. 21).

Ryža. 21. Schéma údajov databázy " Dekanát TF»

Odpovedzte pri zatváraní okna dátového diagramu Áno na otázku o uložení rozloženia.

Vytvorené vzťahy medzi tabuľkami databázy je možné meniť.

Ak chcete zmeniť pripojenia, musíte zavolať okno " Schéma údajov " Potom umiestnite kurzor myši na pripojenie, ktoré je potrebné zmeniť, a kliknite pravým tlačidlom myši. Zobrazí sa kontextové menu (obr. 22):

Ryža. 22. Kontextové menu komunikácie

Ak vyberiete príkaz " Odstrániť “, po potvrdení sa spojenie vymaže. Ak potrebujete zmeniť pripojenie, vyberte príkaz " Zmeniť spojenie " Potom sa v okne, ktoré sa zobrazí „ Zmeniť spojenia " (v hornej časti) vyberte polia v tabuľkách, ktoré chcete prepojiť, a kliknite na tlačidlo " Vytvorte ».

Žiadosti

Dotazy sa používajú na výber alebo vyhľadávanie údajov z jednej alebo viacerých tabuliek. Dotazy môžete použiť na zobrazenie, analýzu a úpravu údajov z viacerých tabuliek. Používajú sa aj ako zdroj údajov pre formuláre a zostavy. Dotazy vám umožňujú počítať súčty a zobrazovať ich v kompaktnom formáte, ako aj vykonávať výpočty na skupinách záznamov.

Požiadavky vypracujeme v režime Dizajnér .

IN Prístup Môžete vytvoriť nasledujúce typy dopytov:

    Vzorová žiadosť . Toto je najčastejšie používaný typ požiadavky. Tento typ dotazu vracia údaje z jednej alebo viacerých tabuliek a zobrazuje ich ako tabuľku. Výberové dotazy možno použiť aj na zoskupenie záznamov a výpočet súčtov, priemerov, počítanie záznamov a nájdenie iných typov súčtov. Ak chcete zmeniť podmienky výberu, musíte zmeniť požiadavku.

    Žiadosť s parametrami . Toto je výzva, ktorá po spustení zobrazí svoje vlastné dialógové okno s výzvou na zadanie údajov alebo hodnoty, ktoré chcete vložiť do poľa. Tieto údaje alebo hodnota sa môžu zmeniť pri každej požiadavke.

    Krížová žiadosť . Používa sa na výpočty a prezentáciu údajov v štruktúre, ktorá uľahčuje ich analýzu. Prierezový dotaz vypočíta súčet, priemer, počet hodnôt alebo vykoná iné štatistické výpočty a potom výsledky zoskupí v tabuľke cez dve množiny údajov, pričom jedna definuje hlavičky stĺpcov a druhá definuje hlavičky riadkov.

    Žiadosť o zmenu . Toto je dotaz, ktorý upravuje alebo presúva viacero záznamov v jednej operácii. Existujú štyri typy žiadostí o zmenu:

1. Vymazanie záznamu. Tento dotaz vymaže skupinu záznamov z jednej alebo viacerých tabuliek.

2. Aktualizovať záznam. Vykonáva všeobecné zmeny v skupine záznamov v jednej alebo viacerých tabuľkách. Umožňuje meniť údaje v tabuľkách.

3. Na pridanie záznamov. Pripojí skupinu záznamov z jednej alebo viacerých tabuliek na koniec jednej alebo viacerých tabuliek.

4. Vytvorenie tabuľky. Vytvorí novú tabuľku zo všetkých alebo časti údajov z jednej alebo viacerých tabuliek.

    Žiadosti SQL . Vytvorené pomocou jazykových pokynov SQL , použité v DB .

Dnes sa začneme pozerať na aplikáciu ako − Microsoft Access 2003 , ktorá môže vytvárať svoje vlastné databázy ( formát mdb), ako aj vytvárať klientske aplikácie pre existujúce databázy založené na MS SQL Server. Témou dnešného článku bude vytváranie nových dotazov z Accessu, teda ako jednoduchých dotazov, tak aj rôznych funkcií, pohľadov a procedúr. Tu sa dotaz týka databázových objektov.

O programe Microsoft Access

Microsoft Accesssoftvér Spoločnosť Microsoft, ktorá je relačným DBMS. Má obrovské možnosti pri organizovaní databázy, vytvára samostatnú aplikáciu, ktorá môže interagovať s mnohými ďalšími DBMS. Najbežnejšie riešenie klient-server, kde klientom je aplikácia napísaná v Accesse ( Jazyk VBA, formuláre a mnoho ďalšieho) a server je DBMS Microsoft SQL Server. Access však podporuje aj interakciu s inými DBMS, napríklad MySql alebo PostgreSQL. O Accesse sa môžeme baviť dlho, no účelom dnešného článku je práve vytváranie dopytov ( predmety) z Accessu.

Prejdime k praxi a začnime jednoduchou databázou mdb, t.j. ako vytvoriť práve tieto otázky.

Vytváranie dotazov v databáze Microsoft Access 2003 - MDB

Najprv otvorte databázu a potom kliknite na objekty "žiadosti" a stlačte tlačidlo "Vytvoriť".

Poznámka! To znamená, že už máte databázu.

A pred vami sa otvorí nové okno na výber typu požiadavky.

Pozrime sa na každý z týchto typov žiadostí podrobnejšie.

Typy dotazov v Accesse 2003 – MDB

Konštruktér- toto je vytvorenie požiadavky na základe konštruktora, takpovediac grafický editor, ale v ňom sa môžete prepnúť do režimu sql a napísať text dotazu ako obvykle. Ihneď po spustení sa vám otvorí okno na výber potrebných tabuliek alebo existujúcich dotazov, keďže na výber potrebných údajov sa dajú použiť aj existujúce dotazy, je to ako keby "výkon".

Ak to nechcete robiť v grafickom editore, kliknutím na položku ponuky môžete prepnúť do režimu SQL "Vyhliadka", potom "Režim SQL".

Jednoduchá žiadosť- dalo by sa povedať, že je to rovnaká stavebnica, len trochu iný typ a menej možností.

Krížová žiadosť– ide o takzvanú transpozíciu tabuľky, inak povedané výstup údajov, ktoré sa nachádzajú v horizontálnych stĺpcoch, t.j. Každá hodnota z jedného stĺpca sa zobrazí vodorovne v samostatnom stĺpci. To všetko sa deje pomocou sprievodcu, takže by nemali byť žiadne problémy.

Duplicitné záznamy– ako už názov napovedá, ide o vyhľadávanie duplicitných záznamov.

Záznamy bez podriadených– ide o vyhľadávanie tých záznamov, ktoré v konkrétnej tabuľke chýbajú.

S databázami mdb to stačí, keďže sa v podnikoch používajú zriedka, zvyčajne používajú nasledujúcu schému - píšu samostatného klienta a všetky údaje sú uložené na serveri pomocou DBMS v našom prípade - to je MS SQL Server a klientom je Access (.adp).

Vytváranie dopytov v Microsoft Access 2003 - databáza MS SQL Server

Pozrime sa na vytváranie nových dotazov z klienta Access založeného na MS SQL Server ( Predpokladá sa, že už máte adp klienta a databázu založenú na MS SQL Server).

Poznámka! Tento článok neznamená učenie sql, takže v čase, keď čítate tento článok, by ste už mali rozumieť základom sql a konceptu základných objektov v databáze, ako sú: pohľad, funkcia, procedúra. Ak ste v tomto úplne nováčik, potom sa, samozrejme, odporúča najprv ovládať SQL, keďže mnohé z nižšie uvedených výrazov vám nebudú jasné. Odporúčané články:

  • Čo sú zobrazenia VIEWS v databázach? A prečo sú potrebné?

Začiatok je rovnaký, otvorí sa projekt a potom klikne na objekty "žiadosti" a stlačte tlačidlo "Vytvoriť".

A teraz podrobnejšie.

Typy dopytov v Access 2003 - databáza MS SQL Server

Vstavaný konštruktor funkcií- dalo by sa povedať, že ide o bežný pohľad, do ktorého sa dajú odovzdať iba parametre, potom sa na serveri vykonajú nejaké dotazy a vráti sa tabuľka. Je to druh funkcie, ktorá vracia údaje vo forme tabuľky. Rieši sa to nasledovne ( ak hovoríme o sql):

SELECT * FROM my_test_tabl_func(par1, par2 ……)

Po kliknutí na "OK" Na vytvorenie tejto funkcie sa vám zobrazí už známe okno na pridávanie existujúcich tabuliek a pohľadov. Toto okno však zvyčajne zavriem a žiadosť zapíšem ručne do špeciálneho poľa. Ak chcete, aby sa toto pole zobrazilo, kliknite na panel:

Potom, ak chcete pridať prichádzajúce parametre, môžete jednoducho vložiť znak @ a názov premennej do podmienky, napríklad takto:

SELECT * FROM table WHERE kod = @par

Potom na paneli vo vlastnostiach funkcie

na karte "parametre funkcie" zobrazia sa parametre, ktoré ste zadali, a musia sa preniesť v poradí, v akom sú tu uvedené.

Zobraziť konštruktor- to je vytvorenie obyčajnej myšlienky medzi obyčajnými ľuďmi "Vyuha".

Konštruktor uložených procedúr– vytvorenie procedúry pomocou konštruktora, princíp je rovnaký ako vo vyššie uvedených funkciách. Pripomínam, že postup je súbor SQL príkazy pre vzorkovanie aj zmenu údajov.

Zadanie uloženej procedúry– ide o vytvorenie postupu pomocou textového editora, t.j. vytvorenie postupu čisto ručne. Nakoniec to isté ako pomocou konštruktora. Pri vytváraní objektov v textový editorŠablóna vytvorenia je už vytvorená automaticky prístupom.

Zadanie skalárnej funkcie vytvára funkciu, ktorá vracia hodnotu. Vytvorené pomocou textového editora.

Zadanie funkcie tabuľky vytvára funkciu, ktorá vráti sadu záznamov. Vyzerá to ako vstavaná funkcia.

Aby sa v prístupovom klientovi rozlíšili, majú rôzne ikony, tie isté, aké vidíte pri vytváraní toho či onoho objektu.

Keď vytvoríte všetky tieto objekty, uložia sa na server a môžete ich použiť nielen z vášho projektu adp, ale aj z iných klientov.

Všetky tieto objekty môžete samozrejme vytvoriť na serveri napríklad pomocou Enterprise Manager ( zastarané, teraz SQL Server Manažérske štúdio ), no dnes zvažujeme možnosť vytvorenia týchto objektov z prístupového klienta.

Pre základy si myslím, že to stačí, ak o tom hovoríme podrobnejšie, nezmestí sa to do jedného článku, ale zdá sa mi, že to stačí na vytvorenie určitých požiadaviek. Ak však máte otázky týkajúce sa vytvorenia konkrétnej funkcie alebo postupu, opýtajte sa ich v komentároch, pokúsim sa pomôcť.

Cieľ práce: Štúdium techník vytvárania a používania dotazov na výber údajov.

Pred popravou laboratórne práce Musíte si preštudovať nasledujúce časti:

Typy žiadostí;

Vytváranie dotazov v režime návrhu;

Pravidlá pre zaznamenávanie podmienok výberu údajov;

Používanie vstavaných funkcií;

Vytváranie vypočítaných polí;

Používanie formulárov na vstup/výstup údajov;

Vytváranie krížových a aktívnych dopytov.

Úloha 1: Vytvorte jednoduchý dotaz.

1. Otvorte databázu inštitútu.

2. Kliknite v okne Databáza na objekt Queries.

3. V okne Dotazy kliknite na tlačidlo Vytvoriť.

4. V okne Nový dotaz vyberte položku Návrh a kliknite na tlačidlo Ok.

5. V okne Pridať tabuľku pridajte všetky štyri tabuľky a zatvorte okno.

6. Upravte veľkosť a umiestnenie okien tabuľky v dátovom diagrame.

7. Presuňte príslušné názvy polí (názov fakulty, skupina N, názov špecializácie, zápisník N, celé meno) z okien tabuľky do formulára žiadosti umiestneného pod schémou údajov, pričom dodržujte ich určené poradie. Pre každé pole, ktoré musí byť zahrnuté do výberu, použite jeden stĺpec formulára.

8. Zobrazte výber vykonaním príkazu VIEW/Table Mode alebo kliknutím na tlačidlo Zobraziť na paneli nástrojov.

9. Ak výber obsahuje chyby, vráťte sa do režimu návrhára dotazov a opravte dotaz.

10. Zatvorte požiadavku. Zobrazí sa dialógové okno so žiadosťou o potvrdenie, či ho chcete uložiť. Pomenujte dopyt Select1.

Úloha 2. Vytvorte jednoduchý dotaz na získanie informácií z databázy vrátane rovnakých polí ako predchádzajúci dotaz, ale obsahujúci informácie iba o komerčných študentoch. Takáto žiadosť je tzv podmienená žiadosť.

1. V okne Databáza skopírujte dotaz Select1 potiahnutím ikony dotazu a súčasne stlačeným klávesom Ctrl.

2. Premenujte dotaz na Select by commercial. Ak to chcete urobiť, kliknite pravým tlačidlom myši na názov požiadavky a vyberte obsahové menu Premenovať položku.

3. Otvorte dotaz v návrhovom zobrazení. Pridajte do svojej požiadavky pole Obchod.

4. Do poľa Podmienka výberu pre pole Obchod zadajte hodnotu Áno.

5. Po výzve na zadanie hodnoty obchodného poľa vypnite zobrazenie. Ak to chcete urobiť, vypnite začiarkavacie políčko zobrazenia tohto poľa.

6. Prezrite si výber kliknutím na tlačidlo Spustiť na paneli nástrojov.

7. Zatvorte požiadavku a uložte rozloženie požiadavky.

Úloha 3. Vytvorte dotaz na zistenie priezviska a čísla záznamu najmladšieho študenta v jednej zo skupín.


1. V okne Databáza kliknite na tlačidlo Vytvoriť a vyberte možnosť Návrh.

2. V okne Pridať tabuľku vyberte tabuľku Študent. Do formulára žiadosti vložte všetky polia tejto tabuľky. Ak to chcete urobiť, najprv vyberte všetky polia v dátovom diagrame pomocou klávesu Shift a potom ich presuňte na prvý riadok formulára popisu požiadavky.

3. V súlade s úlohou zadajte do poľa Podmienka výberu pre pole Dátum narodenia výraz vzorca. Použite nástroj Access Expression Builder. Ak to chcete urobiť, umiestnite kurzor do zodpovedajúcej bunky tabuľky s popisom požiadavky a kliknite na tlačidlo Vytvoriť na paneli nástrojov.

4. V okne Expression Builder zadajte názov funkcie DMax. Ak to chcete urobiť, rozbaľte zoznam Funkcie na ľavej table tvorcu a vyberte možnosť Vstavané funkcie. Ďalej v prostrednom podokne vyberte kategóriu funkcií Podľa podmnožiny a v pravom podokne vyberte funkciu DMax(). Zodpovedajúca funkcia sa objaví v hlavnom okne tvorcu s uvedenými argumentmi.

5. Odstráňte prvý argument funkcie a vložte na jeho miesto názov poľa Dátum narodenia buď priamym zadaním z klávesnice, alebo kliknutím na zoznam Tabuľky v ľavom paneli a následným výberom tabuľky Študent a poľa v ňom. V druhom prípade musíte odstrániť nepoužitú časť riadku Expression. Ďalej zadajte hodnoty zostávajúcich argumentov funkcie tak, aby funkcia nadobudla nasledujúci konečný tvar: DMax("[Dátum narodenia]";"Študent";"=851")

6. Ak chcete funkciu zapísať do bunky tabuľky popisu požiadavky, kliknite na tlačidlo Ok. Zatvorte požiadavku uložením rozloženia a premenovaním vzorky najmladšieho študenta. Výsledok dotazu zobrazíte dvojitým kliknutím na jeho názov v okne databázy.

7. Predveďte výsledok svojej práce učiteľovi.

Úloha 4. Vytvorte dotaz na spočítanie počtu komerčných študentov v každej skupine.

1. Vytvorte nová žiadosť pomocou tabuliek Fakulta, Skupina, Študent.

3. Nastavte podmienku výberu pre 3. stĺpec na Áno.

4. Nastavte 1. a 2. stĺpec formulára na zoradenie vo vzostupnom poradí.

5. Vypnite zobrazenie údajov 3. stĺpca.

6. Zadajte pole Obchod do 4. stĺpca a nahraďte názov stĺpca číslom reklamy. Na to musí bunka s názvom poľa obsahovať: Číslo reklamy: Komerčné (nové a staré názvy stĺpcov sú oddelené dvojbodkou)

7. Kliknutím na tlačidlo na paneli nástrojov Skupinové operácie pridajte do formulára riadok Skupinová operácia a vyberte operáciu Počet zo zoznamu pre 4. stĺpec.

8. Zobrazte celkový výber kliknutím na tlačidlo Spustiť na paneli nástrojov alebo vykonaním príkazu QUERY/Run.

9. Vráťte sa do režimu Query Design kliknutím na tlačidlo Dashboard View.

10. Uložte požiadavku a pomenujte ju Počítanie reklám podľa skupín.

Úloha 5. Vytvorte dotaz, ktorý vám umožní zobraziť vzorku, ktorá odráža počet komerčných študentov pre každú fakultu a každú skupinu. Nadpisy stĺpcov by mali zodpovedať názvom fakúlt, nadpisy riadkov by mali zodpovedať číslam skupín. Vzorka by mala obsahovať aj súhrnný stĺpec s celkovým počtom komerčných študentov na každom oddelení. Tento typ vzorkovania možno implementovať krížovým dotazom. Pre aplikáciu takéhoto dotazu je žiaduce mať v databáze informácie o 5-6 skupinách študentov študujúcich na 3 fakultách.

1. Pomocou návrhára vytvorte nový dotaz pomocou tabuliek Fakulta, Skupina, Študent.

2. Zadajte pole Názov fakulty do 1. stĺpca formulára žiadosti, pole Skupina N do 2. stĺpca a pole Obchod do 3. stĺpca.

3. Vykonajte príkaz QUERY/Cross alebo kliknite na tlačidlo na paneli s nástrojmi Query Type a vyberte zo zoznamu Cross.

4. Vyberte hodnoty v riadku formulára Krížová tabuľka rozbalením zoznamu v bunkách: pre 1. stĺpec Záhlavia riadkov, pre 2. stĺpec – Záhlavia stĺpcov, pre 3. stĺpec – Hodnota.

5. Vyberte funkciu Count pre skupinovú operáciu v 3. stĺpci.

6. Zobrazte krížovú vzorku kliknutím na tlačidlo Spustiť.

7. Ak chcete vytvoriť súhrnný stĺpec, vráťte sa do režimu návrhu a do formulára žiadosti vložte ďalšie pole Commercial. Pred názov tohto poľa zadajte názov stĺpca Celkom: V riadku Skupinová operácia vyberte Počet a v riadku Krížová tabuľka vyberte Záhlavia riadkov.

8. V režime tabuľky zmenšite šírku stĺpcov výberovej tabuľky. Ak to chcete urobiť, vyberte stĺpce s údajmi v skupinách a spustite príkaz FORMÁT/Šírka stĺpca/Prispôsobiť šírke údajov.

9. Zobrazte upravený výber a uložte požiadavku s názvom Počet reklám podľa skupín a fakúlt.

10. Približný pohľad na vzorku v reze je na obr.

Obr.1. - Krížový výber počtu komerčných študentov podľa skupín a fakúlt.

Úloha 6. Napíšte dotaz na zoznam zoznamov skupín s číslom skupiny požadovaným ako súčasť dotazu. Takáto žiadosť je tzv požiadavka s parametrom. Parameter je Číslo skupiny. Hodnota parametra sa zadáva v dialógovom okne. Pre vytvorenie požiadavky je potrebné zadať text výberovej podmienky v hranatých zátvorkách do bunky s podmienkou.

1. Pomocou návrhára vytvorte nový dotaz pomocou jednej študentskej tabuľky.

2. Zadajte všetky polia tabuľky v 1. riadku formulára žiadosti.

3. Zadajte text do bunky riadku Podmienka výberu pre pole N skupiny: [Zadajte číslo skupiny]

4. Spustite požiadavku a v zobrazenom dialógovom okne zadajte číslo jednej zo skupín. Prehľadávať výber. Uložte požiadavku a pomenujte ju Dopyt s parametrom.

5. Predveďte výsledok svojej práce učiteľovi.




Hore