Valitse kyselyt Accessissa. Kyselyjen luominen Microsoft Accessissa

Aihe: Pöytien välisten suhteiden luominen. Valintakyselyn luominen parametrin ja lopullisen kyselyn kanssa.

Avaa edellisessä laboratoriossa luotu tietokanta TF:n dekaanitoimisto .

Pöytien välisten suhteiden luominen

Valitse kohde tietokantaikkunassa Taulukot . Napsauta painiketta " Kaavio tiedot "työkalurivillä tai suorita komento" Palvelu »  « Kaavio tiedot " komentovalikon avulla. Näytölle tulee ikkuna: Kaavio tiedot "ja ikkuna" Lisäys taulukoita "(Kuva 18).

Riisi. 18. Data Schema -valintaikkuna ja Lisää taulukko -valintaikkuna

Ikkunassa" Lisäys taulukoita "välilehdellä" Taulukot » luettelee kaikki tietokantataulukot. Jos haluat luoda suhteita taulukoiden välille, sinun on siirrettävä ne " Lisäys taulukoita "ulos ikkunasta" Kaavio tiedot " Voit siirtää taulukon valitsemalla sen hiiren napsautuksella ja napsauttamalla painiketta “ Lisätä " Kun olet siirtänyt tarvittavat taulukot, sulje ikkuna " Lisäys taulukoita ».

Siirrä kaikki taulukot ikkunaan" Kaavio tiedot " Muuta taulukko-ikkunoiden kokoa niin, että kaikki teksti näkyy (kuva 19).

Luodaksesi suhteen taulukoiden välille Opiskelijat Ja Arviot mukaisesti Tietoskeema sinun on siirrettävä hiiren osoitin kenttään Opiskelijakoodi pöydässä Opiskelijat ja vedä tämä kenttä kenttään hiiren painiketta painettuna Opiskelijakoodi pöydässä Arviot , ja vapauta sitten hiiren painike. Ikkuna " Muuttaa yhteyksiä "(Kuva 20).

Tarkista kiinteistö" Turvallisuus eheys tiedot "klikkaamalla sitä. Valitse ominaisuuksien valintaruudut " ryöpytä päivittää liittyvät kentät "ja" ryöpytä poisto liittyvät kentät " Tämä mahdollistaa vain taulukon tietueiden muokkaamisen Opiskelijat , ja taulukossa Arviot nämä toiminnot linkitetyille tietueille suoritetaan automaattisesti.

Luo yhteys napsauttamalla painiketta " Luoda ».

Riisi. 19. Tietokannan tietoskeeman ulkonäkö " TF:n dekaanitoimisto» ennen liitäntöjen tekemistä

Riisi. 20. Valintaikkuna yhteysparametrien määrittämiseen taulukkokenttien välillä

Samoin mukaan Tietoskeema Muiden taulukoiden välille luodaan yhteydet (kuva 21).

Riisi. 21. Tietokannan tietokaavio " TF:n dekaanitoimisto»

Vastaa, kun suljet datakaavioikkunan Joo asettelun tallentamista koskevaan kysymykseen.

Luotuja suhteita tietokantataulukoiden välillä voidaan muuttaa.

Jos haluat vaihtaa yhteyksiä, sinun on soitettava ikkunaan " Kaavio tiedot " Aseta tämän jälkeen hiiren osoitin muutettavan yhteyden kohdalle ja napsauta hiiren kakkospainikkeella. Näkyviin tulee kontekstivalikko (kuva 22):

Riisi. 22. Viestinnän kontekstivalikko

Jos valitset komennon " Poistaa ", sitten vahvistuksen jälkeen yhteys poistetaan. Jos sinun on vaihdettava yhteyttä, valitse komento " Muuttaa yhteys " Tämän jälkeen näkyviin tulevassa ikkunassa " Muuttaa yhteyksiä " (sen yläosassa) valitse taulukoista kentät, jotka haluat linkittää ja napsauta painiketta " Luoda ».

Pyynnöt

Kyselyjä käytetään tietojen valitsemiseen tai hakemiseen yhdestä tai useammasta taulukosta. Voit käyttää kyselyitä useiden taulukoiden tietojen tarkastelemiseen, analysoimiseen ja muokkaamiseen. Niitä käytetään myös lomakkeiden ja raporttien tietolähteenä. Kyselyjen avulla voit laskea kokonaissummat ja näyttää ne kompaktissa muodossa sekä suorittaa laskutoimituksia tietueryhmille.

Kehitämme pyyntöjä tilassa Suunnittelija .

SISÄÄN Pääsy Voit luoda seuraavan tyyppisiä kyselyitä:

    Esimerkkipyyntö . Tämä on yleisimmin käytetty pyyntötyyppi. Tämäntyyppinen kysely palauttaa tiedot yhdestä tai useammasta taulukosta ja näyttää sen taulukkona. Valintakyselyitä voidaan käyttää myös tietueiden ryhmittelyyn ja summien, keskiarvojen laskemiseen, tietueiden laskemiseen ja muun tyyppisten summien etsimiseen. Jos haluat muuttaa valintaehtoja, sinun on muutettava pyyntöä.

    Pyyntö parametreilla . Tämä on kehote, joka, kun se suoritetaan, näyttää oman valintaikkunansa, jossa sinua kehotetaan syöttämään kenttään lisättävät tiedot tai arvo. Nämä tiedot tai arvot voivat muuttua joka kerta, kun pyyntö esitetään.

    Ristipyyntö . Käytetään laskelmiin ja tietojen esittämiseen rakenteessa, joka helpottaa niiden analysointia. Poikkileikkauskysely laskee summan, keskiarvon, arvojen lukumäärän tai suorittaa muita tilastollisia laskelmia ja ryhmittelee sitten tulokset taulukkoon kahdelle tietojoukolle, joista toinen määrittää sarakeotsikot ja toinen riviotsikot.

    Muutospyyntö . Tämä on kysely, joka muuttaa tai siirtää useita tietueita yhdellä toiminnolla. Muutospyyntöjä on neljää tyyppiä:

1. Tiedon poistaminen. Tämä kysely poistaa tietueiden ryhmän yhdestä tai useammasta taulukosta.

2. Tietueen päivittäminen. Tekee yleisiä muutoksia tietueryhmään yhdessä tai useammassa taulukossa. Mahdollistaa tietojen muuttamisen taulukoissa.

3. Tietueiden lisääminen. Liittää tietueryhmän yhdestä tai useammasta taulukosta yhden tai useamman taulukon loppuun.

4. Taulukon luominen. Luo uuden taulukon kaikista tai osasta yhden tai useamman taulukon tiedoista.

    Pyynnöt SQL . Luotu kieliohjeiden mukaan SQL , käytetty DB .

Haluaisin pystyä luomaan parametroidun kyselyn MS Access 2003:ssa ja välittämään tiettyjen lomakeelementtien arvot siihen kyselyyn ja sitten saamaan vastaavan tulosjoukon ja tekemään niillä peruslaskelmia. Kerron lyhyesti, kuinka kyselyparametrit täytetään lomakeelementeillä. Jos minun täytyy käyttää VBA:ta, se on hyvä.

5 vastausta

Viittauksia lomakkeen ohjaimiin voidaan käyttää suoraan Access-kyselyissä, vaikka on tärkeää määrittää ne parametreiksi (muuten tulokset uusimmat versiot Pääsy voi olla arvaamaton, jos se oli kerran luotettava).

Jos esimerkiksi haluat suodattaa kyselyn MyFormin Sukunimi-säätimellä, käytä tätä kriteerinä:

Sukunimi = Lomakkeet!Oma Lomake!Sukunimi

PARAMETRIT [!Oma Lomake!] Teksti (255); SELECT tblCustomers.* FROM tblCustomers WHERE tblCustomers.LastName=!;

Haluaisin kuitenkin kysyä, miksi tarvitset tallennettua kyselyä tähän tarkoitukseen. Mitä teet tuloksilla? Näytetäänkö ne lomakkeessa tai raportissa? Jos näin on, voit tehdä tämän lomakkeen/raportin tietuelähteessä ja jättää tallennetun kyselyn ennalleen parametrien kanssa, jotta sitä voidaan käyttää muissa yhteyksissä ilman, että näyttöön tulee kehote täyttää parametrit.

Toisaalta, jos teet jotain koodissa, kirjoita SQL lennossa ja käytä lomakkeen ohjausobjektin kirjaimellista arvoa WHERE-lauseen luomiseen.

Tässä on koodinpätkä. Päivittää taulukon parametrilla txtHospital:

Aseta db = CurrentDb Aseta qdf = db.QueryDefs("AddHospital") qdf.Parameters!txtHospital = Trim(Me.HospName) qdf.ReturnsRecords = Väärä qdf.Execute dbFailOnError = intqdRefs.

Tässä on esimerkki SQL:stä:

PARAMETRIT txtSairaalateksti(255); INSERT INTO tblHospitals() VALUES()

On kolme perinteistä tapaa kiertää tämä ongelma:

  1. Aseta parametrille arvo, jotta käyttäjältä kysytään arvoa kyselyä suoritettaessa.
  2. Lomakkeen linkkikenttä (mahdollisesti piilotettu)
  3. Luo kysely lennossa äläkä käytä parametreja.

Minusta on vain väärin, että sinun on syötettävä jotain kuten [?anna maan ISO-koodi] tai linkkejä lomakkeesi kenttiin, kuten: !! .

Tämä tarkoittaa, että emme voi käyttää samaa kyselyä uudelleen useammassa kuin yhdessä paikassa, koska tiedot tarjoavat eri kentät tai joudumme luottamaan siihen, että käyttäjä ei sekoita tietojen syöttämistä kyselyä suoritettaessa. Muistaakseni voi olla vaikeaa käyttää samaa arvoa useammin kuin kerran käyttäjän syöttämän parametrin kanssa.

Yleensä valitsisin jälkimmäisen vaihtoehdon, luon kyselyn lennossa ja päivitän kyselyobjektin tarpeen mukaan. Tämä on kuitenkin yleinen SQL-injektiohyökkäys (joko vahingossa tai tarkoituksella käyttäjieni tunteessa) ja se on vain säädytöntä.

"Ed. Start - esimerkin loppuun saattamiseksi dim qryStartDate päivämääränä dim qryEndDate päivämääränä qryStartDate = #2001-01-01# qryEndDate = #2010-01-01# "Toim. Lopeta "QUOTEING "stallion": Parametrien välittäminen kyselyyn VBA:ssa on todella yksinkertaista: "Asetamme ensin joitain muuttujia: Dim qdf As Querydef Dim rst As Recordset "ja sitten avaamme kyselyn: Aseta qdf = CurrentDB.QueryDefs(qryname) "Nyt annamme kyselylle arvot parametrivaihtoehdolla: qdf.Parameters(0) = qryStartDate qdf.Parameters(1) = qryEndDate "Nyt muunnetaan querydef recordset ja suorita se Set rst = qdf.OpenRecordset "Suorita jotain koodia tietuejoukossa "Sulje kaikki objektit rst.Close qdf.Close Set rst = Ei mitään Aseta qdf = ei mitään

(En ole itse testannut tätä, vain jotain, mitä olen kerännyt matkoillani, koska olen silloin tällöin halunnut tehdä tämän, mutta päädyin käyttämään jotakin aiemmin mainitsemistani kludgeista)

edit Minulla oli vihdoin syy käyttää tätä. Tässä varsinainen koodi.

"... Dim qdf As DAO.QueryDef Dim prmOne Kuten DAO.Parameter Dim prmTwo As DAO.Parameter Dim rst as recordset "... "avaa kysely: Set qdf = db.QueryDefs("my_two_param_query") " param_one ja "param_two "linkitä DAP.Parameters kyselyyn Set prmOne = qdf.Parameters!param_one Set prmTwo = qdf.Parameters!param_two "asettaa parametrien arvot prmOne = 1 prmTwo = 2 Set fst.O (dbOpenDynaset , _ dbSeeChanges) "... käsittele tietuejoukkoa normaalisti "varmista, että siivoat itsesi jälkeen Set rst = Nothing Set prmOne = Nothing Set prmTwo = Nothing Set qdf = Ei mitään

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

Missä SQL-kysely Access sisältää itse asiassa SQL:n. Esimerkiksi

"select blah from mytable where dateoffset="

Kaikki vain toimii!

Otetaan esimerkki. parametroitu pyyntö näyttää tältä:

Valitse Tbl_Country.* From Tbl_Country WHERE id_Country = _ [?kirjoita maan ISO-koodi]

ja haluat saada tämän arvon ([? enter... country] one) lomakkeesta, jossa sinulla on säätimiä ja tietoja. No... se saattaa olla mahdollista, mutta se vaatii jonkin verran koodin normalisointia.

Yksi ratkaisu olisi määrittää lomakkeen ohjausobjekteihin logiikkaa, kuten ohjausobjektille fid_Country, joka sisältää id_Country-arvon. Kyselysi voidaan sitten esittää merkkijonona:

Qr = "Valitse Tbl_Country.* From Tbl_Country WHERE id_Country = "

Kun olet syöttänyt kaikki pyydetyt tiedot lomakkeeseen, napsauta "Pyyntö" -painiketta. Logiikka käy läpi kaikki säätimet ja tarkistaa, ovatko ne pyynnössä, ja lopulta korvaa parametrin ohjausobjektin arvolla:

Himmennä ctl ohjausobjektina Kullekin Me.controls-kohdassa olevalle ctl:lle If instr(qr,"[" & ctl.nimi & "]") > 0 Sitten qr = korvaa(qr,"[" & ctl.nimi & "]",ctl .value) End if Next i

Tässä tapauksessa sinulla on täysin päivitetty kysely, jossa parametrit korvataan todellisilla tiedoilla. Fid_country-tyypistä (merkkijono, GUID, päivämäärä jne.) riippuen saatat joutua lisäämään muita kaksoislainausmerkit tai ei saada lopullista pyyntöä, kuten:

Qr = "Valitse Tbl_Country.* From Tbl_Country WHERE id_Country = ""GB"""

Tämä on täysin Access-yhteensopiva kysely, jonka avulla voit avata tietuejoukon:

Aseta rsQuery = currentDb.openRecordset(qr)

Luulen, että olet valmis.

Tämä aihe on tärkeä, kun tavoitteenasi on kehittää Access-sovelluksia. Sinun on tarjottava käyttäjille standardi tapa pyytää heiltä tietoja GUI ei vain kyselyjen suorittamiseen, vaan myös jatkuvien lomakkeiden suodattamiseen (kuten Excel tekee AutoFilter-vaihtoehdon kanssa) ja raporttivaihtoehtojen hallintaan. Onnea!

Aihe: Pöytien välisten suhteiden luominen. Valintakyselyn luominen parametrin ja lopullisen kyselyn kanssa.

Avaa edellisessä laboratoriossa luotu tietokanta TF:n dekaanitoimisto .

Pöytien välisten suhteiden luominen

Valitse kohde tietokantaikkunassa Taulukot . Napsauta painiketta " Kaavio tiedot "työkalurivillä tai suorita komento" Palvelu »  « Kaavio tiedot " komentovalikon avulla. Näytölle tulee ikkuna: Kaavio tiedot "ja ikkuna" Lisäys taulukoita "(Kuva 18).

Riisi. 18. Data Schema -valintaikkuna ja Lisää taulukko -valintaikkuna

Ikkunassa" Lisäys taulukoita "välilehdellä" Taulukot » luettelee kaikki tietokantataulukot. Jos haluat luoda suhteita taulukoiden välille, sinun on siirrettävä ne " Lisäys taulukoita "ulos ikkunasta" Kaavio tiedot " Voit siirtää taulukon valitsemalla sen hiiren napsautuksella ja napsauttamalla painiketta “ Lisätä " Kun olet siirtänyt tarvittavat taulukot, sulje ikkuna " Lisäys taulukoita ».

Siirrä kaikki taulukot ikkunaan" Kaavio tiedot " Muuta taulukko-ikkunoiden kokoa niin, että kaikki teksti näkyy (kuva 19).

Luodaksesi suhteen taulukoiden välille Opiskelijat Ja Arviot mukaisesti Tietoskeema sinun on siirrettävä hiiren osoitin kenttään Opiskelijakoodi pöydässä Opiskelijat ja vedä tämä kenttä kenttään hiiren painiketta painettuna Opiskelijakoodi pöydässä Arviot , ja vapauta sitten hiiren painike. Ikkuna " Muuttaa yhteyksiä "(Kuva 20).

Tarkista kiinteistö" Turvallisuus eheys tiedot "klikkaamalla sitä. Valitse ominaisuuksien valintaruudut " ryöpytä päivittää liittyvät kentät "ja" ryöpytä poisto liittyvät kentät " Tämä mahdollistaa vain taulukon tietueiden muokkaamisen Opiskelijat , ja taulukossa Arviot nämä toiminnot linkitetyille tietueille suoritetaan automaattisesti.

Luo yhteys napsauttamalla painiketta " Luoda ».

Riisi. 19. Tietokannan tietoskeeman ulkonäkö " TF:n dekaanitoimisto» ennen liitäntöjen tekemistä

Riisi. 20. Valintaikkuna yhteysparametrien määrittämiseen taulukkokenttien välillä

Samoin mukaan Tietoskeema Muiden taulukoiden välille luodaan yhteydet (kuva 21).

Riisi. 21. Tietokannan tietokaavio " TF:n dekaanitoimisto»

Vastaa, kun suljet datakaavioikkunan Joo asettelun tallentamista koskevaan kysymykseen.

Luotuja suhteita tietokantataulukoiden välillä voidaan muuttaa.

Jos haluat vaihtaa yhteyksiä, sinun on soitettava ikkunaan " Kaavio tiedot " Aseta tämän jälkeen hiiren osoitin muutettavan yhteyden kohdalle ja napsauta hiiren kakkospainikkeella. Näkyviin tulee kontekstivalikko (kuva 22):

Riisi. 22. Viestinnän kontekstivalikko

Jos valitset komennon " Poistaa ", sitten vahvistuksen jälkeen yhteys poistetaan. Jos sinun on vaihdettava yhteyttä, valitse komento " Muuttaa yhteys " Tämän jälkeen näkyviin tulevassa ikkunassa " Muuttaa yhteyksiä " (sen yläosassa) valitse taulukoista kentät, jotka haluat linkittää ja napsauta painiketta " Luoda ».

Pyynnöt

Kyselyjä käytetään tietojen valitsemiseen tai hakemiseen yhdestä tai useammasta taulukosta. Voit käyttää kyselyitä useiden taulukoiden tietojen tarkastelemiseen, analysoimiseen ja muokkaamiseen. Niitä käytetään myös lomakkeiden ja raporttien tietolähteenä. Kyselyjen avulla voit laskea kokonaissummat ja näyttää ne kompaktissa muodossa sekä suorittaa laskutoimituksia tietueryhmille.

Kehitämme pyyntöjä tilassa Suunnittelija .

SISÄÄN Pääsy Voit luoda seuraavan tyyppisiä kyselyitä:

    Esimerkkipyyntö . Tämä on yleisimmin käytetty pyyntötyyppi. Tämäntyyppinen kysely palauttaa tiedot yhdestä tai useammasta taulukosta ja näyttää sen taulukkona. Valintakyselyitä voidaan käyttää myös tietueiden ryhmittelyyn ja summien, keskiarvojen laskemiseen, tietueiden laskemiseen ja muun tyyppisten summien etsimiseen. Jos haluat muuttaa valintaehtoja, sinun on muutettava pyyntöä.

    Pyyntö parametreilla . Tämä on kehote, joka, kun se suoritetaan, näyttää oman valintaikkunansa, jossa sinua kehotetaan syöttämään kenttään lisättävät tiedot tai arvo. Nämä tiedot tai arvot voivat muuttua joka kerta, kun pyyntö esitetään.

    Ristipyyntö . Käytetään laskelmiin ja tietojen esittämiseen rakenteessa, joka helpottaa niiden analysointia. Poikkileikkauskysely laskee summan, keskiarvon, arvojen lukumäärän tai suorittaa muita tilastollisia laskelmia ja ryhmittelee sitten tulokset taulukkoon kahdelle tietojoukolle, joista toinen määrittää sarakeotsikot ja toinen riviotsikot.

    Muutospyyntö . Tämä on kysely, joka muuttaa tai siirtää useita tietueita yhdellä toiminnolla. Muutospyyntöjä on neljää tyyppiä:

1. Tiedon poistaminen. Tämä kysely poistaa tietueiden ryhmän yhdestä tai useammasta taulukosta.

2. Tietueen päivittäminen. Tekee yleisiä muutoksia tietueryhmään yhdessä tai useammassa taulukossa. Mahdollistaa tietojen muuttamisen taulukoissa.

3. Tietueiden lisääminen. Liittää tietueryhmän yhdestä tai useammasta taulukosta yhden tai useamman taulukon loppuun.

4. Taulukon luominen. Luo uuden taulukon kaikista tai osasta yhden tai useamman taulukon tiedoista.

    Pyynnöt SQL . Luotu kieliohjeiden mukaan SQL , käytetty DB .

Tänään alamme tarkastella sovellusta, kuten − Microsoft Access 2003 , joka voi luoda omia tietokantoja ( mdb-muodossa), sekä luoda asiakassovelluksia olemassa oleviin MS-pohjaisiin tietokantoihin SQL Server. Tämän päivän artikkelin aiheena on uusien kyselyjen luominen Accessista, mikä tarkoittaa sekä yksinkertaisia ​​kyselyitä että erilaisia ​​toimintoja, näkymiä ja menettelyjä. Tässä kysely viittaa tietokantaobjekteihin.

Tietoja Microsoft Accessista

Microsoft Accessohjelmisto Microsoft-yritys, joka on relaatiotietokantajärjestelmä. Sillä on valtavat ominaisuudet järjestettäessä tietokantaa, luomalla erillinen sovellus, joka voi olla vuorovaikutuksessa monien muiden DBMS-järjestelmien kanssa. Yleisin asiakas-palvelinratkaisu, jossa asiakas on Accessissa ( VBA-kieli, lomakkeet ja paljon muuta), ja palvelin on Microsoft DBMS SQL Server. Access tukee kuitenkin myös vuorovaikutusta muiden tietokantajärjestelmien kanssa, esimerkiksi MySql tai PostgreSQL. Voimme puhua Accessista pitkään, mutta tämän päivän artikkelin tarkoitus on juuri kyselyjen luominen ( esineitä) Accessista.

Jatketaan harjoittelua ja aloitetaan yksinkertaisesta mdb-tietokannasta, ts. kuinka luoda näitä kyselyitä.

Kyselyjen luominen Microsoft Access 2003 - MDB-tietokannassa

Avaa ensin tietokanta ja napsauta sitten objekteja "Pyynnöt" ja paina painiketta "Luoda".

Huomautus! Tämä tarkoittaa, että sinulla on jo tietokanta.

Edessäsi avautuu uusi ikkuna pyyntötyypin valintaa varten.

Katsotaanpa kutakin näistä pyyntötyypeistä yksityiskohtaisemmin.

Kyselytyypit Access 2003:ssa - MDB

Rakentaja- tämä on pyynnön luomista rakentajan perusteella, niin sanotusti sisään graafinen editori, mutta siinä voit vaihtaa sql-tilaan ja kirjoittaa kyselyn tekstin tavalliseen tapaan. Välittömästi käynnistämisen jälkeen avautuu ikkuna, jossa voit valita tarvittavat taulukot tai olemassa olevat kyselyt, koska olemassa olevia kyselyitä voidaan käyttää myös tarvittavien tietojen valitsemiseen, on kuin "esitys".

Jos et halua tehdä tätä graafisessa editorissa, voit vaihtaa SQL-tilaan napsauttamalla valikkokohtaa "Näytä", sitten "SQL-tila".

Yksinkertainen pyyntö- Tämä, voisi sanoa, on sama rakennussarja, vain hieman eri tyyppi ja vähemmän mahdollisuuksia.

Ristipyyntö– tämä on taulukon ns. transponointi, toisin sanoen vaakasuuntaisissa sarakkeissa sijaitsevien tietojen tulos, ts. Jokainen yhden sarakkeen arvo näytetään vaakasuunnassa erillisessä sarakkeessa. Tämä kaikki tehdään ohjatun toiminnon avulla, joten ongelmia ei pitäisi olla.

Päällekkäiset merkinnät– Kuten nimestä voi päätellä, tämä on päällekkäisten tietueiden haku.

Tietueet ilman alaisia– tämä on tietueiden haku, jotka puuttuvat tietystä taulukosta.

Mdb-tietokantojen kanssa riittää, koska niitä käytetään harvoin yrityksissä, ne käyttävät yleensä seuraavaa järjestelmää - he kirjoittavat erillisen asiakkaan ja kaikki tiedot tallennetaan palvelimelle DBMS: n avulla - tämä on MS SQL Server, ja asiakas on Access (.adp).

Kyselyjen luominen Microsoft Access 2003 - MS SQL Server -tietokannassa

Katsotaanpa uusien kyselyjen luomista MS SQL Serveriin perustuvasta Access-asiakkaasta ( Oletetaan, että sinulla on jo adp-asiakas ja MS SQL Serveriin perustuva tietokanta).

Huomautus! Tämä artikkeli ei tarkoita sql:n oppimista, joten tätä artikkelia lukiessasi sinun pitäisi jo ymmärtää sql:n perusteet ja tietokannan perusobjektien käsite, kuten näkymä, toiminto, menettely. Jos olet täysin uusi tässä, niin ensin on tietysti suositeltavaa hallita SQL, koska monet alla olevista termeistä eivät ole sinulle selviä. Suositellut artikkelit:

  • Mitä ovat VIEWS-näkymät tietokannoissa? Ja miksi niitä tarvitaan?

Alku on sama, avaa projektin ja napsauta sitten objekteja "Pyynnöt" ja paina painiketta "Luoda".

Ja nyt tarkemmin.

Access 2003 - MS SQL Server -tietokannan kyselytyypit

Sisäänrakennettu funktiokonstruktori- Tämä, voisi sanoa, on tavallinen näkymä, siihen voidaan välittää vain parametreja, sitten palvelimella suoritetaan joitain kyselyitä ja palautetaan taulukko. Se on eräänlainen funktio, joka palauttaa tiedot taulukon muodossa. Sitä käsitellään seuraavasti ( jos puhumme sql:stä):

SELECT * FROM my_test_tabl_func(par1, par2 ……)

Napsautuksen jälkeen "OK" Tämän toiminnon luomiseksi näet jo tutun ikkunan olemassa olevien taulukoiden ja näkymien lisäämistä varten. Mutta yleensä suljen tämän ikkunan ja kirjoitan pyynnön manuaalisesti erityiseen kenttään, jotta tämä kenttä tulee näkyviin, napsauta seuraavaa paneelissa:

Sitten, jos haluat lisätä saapuvia parametreja, voit laittaa @-merkin ja muuttujan nimen ehtoon esimerkiksi näin:

SELECT * FROM taulukosta WHERE kod = @par

Jälkeen paneelissa funktion ominaisuuksissa

välilehdellä "toimintoparametrit" määrittämäsi parametrit tulevat näkyviin, ja ne on lähetettävä tässä ilmoitetussa järjestyksessä.

Näytä rakentaja- tämä on tavallisen idean luominen tavallisten ihmisten keskuudessa "Vyuha".

Tallennetun menettelyn rakentaja– proseduurin luominen konstruktorilla, periaate on sama kuin yllä olevissa funktioissa. Haluan muistuttaa, että menettely on sarja sql-lausekkeet, sekä näytteenottoa että tietojen vaihtamista varten.

Tallennetun toimenpiteen aloittaminen– tämä on proseduurin luominen tekstieditorilla, ts. menettelyn luominen puhtaasti manuaalisesti. Loppujen lopuksi sama asia kuin rakentajan käyttäminen. Kun luot objekteja sisään tekstieditori Käyttöoikeus on jo luonut luontimallin automaattisesti.

Skalaarifunktion syöttäminen luo funktion, joka palauttaa arvon. Luotu tekstieditorilla.

Taulukkofunktion syöttäminen luo funktion, joka palauttaa joukon tietueita. Näyttää sisäänrakennetulta toiminnolta.

Niiden erottamiseksi Access-asiakasohjelmassa niillä on erilaisia ​​kuvakkeita, samat, jotka näet luodessasi tätä tai toista objektia.

Kun luot kaikki nämä objektit, ne tallennetaan palvelimelle, ja voit käyttää niitä paitsi adp-projektistasi myös muilta asiakkailta.

Tietenkin voit luoda kaikki nämä objektit palvelimelle käyttämällä esimerkiksi Enterprise Manageria ( vanhentunut, nyt SQL Server Management Studio ), mutta tänään harkitsemme mahdollisuutta luoda nämä objektit pääsyasiakkaasta.

Perusasioista mielestäni tämä riittää, jos puhumme tästä yksityiskohtaisemmin, se ei mahdu yhteen artikkeliin, mutta minusta näyttää siltä, ​​​​että tämä riittää luomaan tiettyjä pyyntöjä. Mutta jos sinulla on kysyttävää tietyn toiminnon tai menettelyn luomisesta, kysy heiltä kommenteissa, yritän auttaa.

Työn tarkoitus: Tutkia tekniikoita kyselyjen muodostamiseen ja käyttämiseen tiedon valitsemiseen.

Ennen toteutusta laboratoriotyöt Sinun on opittava seuraavat osat:

Pyyntötyypit;

Kyselyjen luominen suunnittelutilassa;

Tietojen valintaehtojen tallentamista koskevat säännöt;

Sisäänrakennettujen toimintojen käyttö;

Laskettujen kenttien luominen;

Tietojen syöttö-/tulostuslomakkeiden käyttö;

Ristikkäisten ja aktiivisten kyselyiden luominen.

Tehtävä 1: Luo yksinkertainen kysely.

1. Avaa tietokanta instituutti.

2. Napsauta Tietokanta-ikkunassa Queries-objektia.

3. Napsauta Kysely-ikkunassa Luo-painiketta.

4. Valitse Uusi kysely -ikkunassa Suunnittelu ja napsauta Ok.

5. Lisää kaikki neljä taulukkoa Lisää taulukko -ikkunassa ja sulje ikkuna.

6. Säädä tietokaavion taulukkoikkunoiden kokoa ja sijaintia.

7. Vedä vastaavat kenttien nimet (tieteellisen tiedekunnan nimi, ryhmä N, erikoisalan nimi, arvosana N, koko nimi) taulukko-ikkunoista tietoskeeman alla olevaan pyyntölomakkeeseen noudattaen niiden määritettyä järjestystä. Käytä yhtä lomakesaraketta jokaiselle valintaan sisällytettävälle kentälle.

8. Tarkastele valintaa suorittamalla VIEW/Table Mode -komento tai napsauttamalla Näytä-työkalurivin painiketta.

9. Palaa kyselyn suunnittelijatilaan, jos valinta sisältää virheitä ja korjaa kysely.

10. Sulje pyyntö. Näyttöön tulee valintaikkuna, jossa sinua pyydetään vahvistamaan, haluatko tallentaa sen. Nimeä kysely Select1.

Tehtävä 2. Luo yksinkertainen kysely tietojen hakemiseksi tietokannasta, sisältäen samat kentät kuin edellinen kysely, mutta sisältää tietoja vain kaupallisista opiskelijoista. Tällaista pyyntöä kutsutaan ehdollinen pyyntö.

1. Kopioi Tietokanta-ikkunassa Select1-kysely vetämällä kyselykuvaketta samalla, kun painat Ctrl-näppäintä.

2. Nimeä kysely uudelleen ja anna sille nimi Kaupallinen valinta. Voit tehdä tämän napsauttamalla hiiren kakkospainikkeella pyynnön nimeä ja valitsemalla kontekstivalikko Nimeä kohde uudelleen.

3. Avaa kysely suunnittelunäkymässä. Lisää pyyntöösi Kauppa-kenttä.

4. Syötä arvo Kyllä Kaupallinen-kentän Valintaehto-kenttään.

5. Poista näyttö käytöstä, kun sinua pyydetään syöttämään Kaupallinen-kentän arvo. Voit tehdä tämän poistamalla tämän kentän näytön valintaruudun käytöstä.

6. Selaa valintaa napsauttamalla työkalupalkin Suorita-painiketta.

7. Sulje pyyntö ja tallenna pyynnön asettelu.

Tehtävä 3. Luo kysely löytääksesi yhden ryhmän nuorimman opiskelijan sukunimen ja tietuenumeron.


1. Napsauta Tietokanta-ikkunassa Luo-painiketta ja valitse Suunnittelu-vaihtoehto.

2. Valitse Lisää taulukko -ikkunassa Opiskelijataulukko. Lisää tämän taulukon kaikki kentät pyyntölomakkeeseen. Voit tehdä tämän valitsemalla ensin kaikki tietokaavion kentät Shift-näppäimellä ja vetämällä ne sitten pyynnön kuvauslomakkeen ensimmäiselle riville.

3. Syötä kaavalauseke Syntymäaika-kentän valintaehto-kenttään tehtävän mukaisesti. Käytä Access Expression Builder -työkalua. Voit tehdä tämän asettamalla kohdistimen pyynnön kuvaustaulukon vastaavaan soluun ja napsauttamalla Rakenna-työkalupalkin painiketta.

4. Kirjoita Expression Builder -ikkunaan funktion nimi DMax. Voit tehdä tämän laajentamalla Funktiot-luetteloa rakentajan vasemmassa ruudussa ja valitsemalla Sisäänrakennetut toiminnot. Seuraavaksi valitse keskimmäisestä aliikkunasta funktioluokka By subset ja oikeasta aliikkunasta DMax()-funktio. Vastaava funktio ilmestyy rakennustyökalun pääikkunaan argumentteineen.

5. Poista funktion ensimmäinen argumentti ja lisää sen tilalle Syntymäaika-kentän nimi joko syöttämällä suoraan näppäimistöllä tai napsauttamalla vasemmassa ruudussa olevaa Taulukot-luetteloa ja valitsemalla sitten Opiskelija-taulukko ja kenttä. sen sisällä. Jälkimmäisessä tapauksessa sinun on poistettava Expression-rivin käyttämätön osa. Syötä seuraavaksi muiden funktion argumenttien arvot, jotta funktio saa seuraavan lopullisen muodon: DMax("[Syntymäaika]";"Oppilas";"=851")

6. Kirjoita funktio pyynnön kuvaustaulukon soluun napsauttamalla Ok-painiketta. Sulje pyyntö tallentamalla asettelu ja nimeämällä se uudelleen Nuorin opiskelijan näyte. Tarkastele kyselyn tulosta kaksoisnapsauttamalla sen nimeä tietokantaikkunassa.

7. Näytä työsi tulos opettajalle.

Tehtävä 4. Luo kysely laskeaksesi kaupallisten opiskelijoiden lukumäärän kussakin ryhmässä.

1. Luo uusi pyyntö käyttämällä taulukoita Tiedekunta, Ryhmä, Opiskelija.

3. Aseta 3. sarakkeen valintaehdoksi Kyllä.

4. Aseta lomakkeen 1. ja 2. sarake lajittelemaan nousevaan järjestykseen.

5. Poista käytöstä 3. sarakkeen tietojen näyttö.

6. Kirjoita 4. sarakkeen Kaupallinen-kenttä ja korvaa sarakkeen nimi sanalla Kaupan numero. Tätä varten kentän nimen sisältävän solun tulee sisältää: Mainosten lukumäärä: Kaupallinen (uudet ja vanhat sarakkeiden nimet erotetaan kaksoispisteellä)

7. Napsauta Ryhmätoiminnot-työkalurivin painiketta, lisää lomakkeelle Ryhmäoperaatio-rivi ja valitse luettelosta Count-toiminto neljännen sarakkeen kohdalla.

8. Tarkastele kokonaisvalintaa napsauttamalla Suorita-työkalupalkin painiketta tai suorittamalla QUERY/Run-komento.

9. Palaa kyselyn suunnittelutilaan napsauttamalla Dashboard View -painiketta.

10. Tallenna pyyntö ja anna sille nimi Mainosten lukumäärä ryhmittäin.

Tehtävä 5. Luo kysely, jonka avulla voit nähdä näytteen, joka kuvastaa kaupallisten opiskelijoiden määrää kussakin tiedekunnassa ja ryhmässä. Sarakeotsikoiden tulee vastata tiedekuntien nimiä, riviotsikoiden tulee vastata ryhmien numeroita. Otoksen tulee sisältää myös yhteenvetosarake, jossa näkyy kunkin laitoksen kaupallisten opiskelijoiden kokonaismäärä. Tämän tyyppinen otanta voidaan toteuttaa ristiinkyselyllä. Tällaisen kyselyn soveltamiseksi on toivottavaa, että tietokannassa on tiedot 5-6 opiskelijaryhmästä, jotka opiskelevat 3 tiedekunnassa.

1. Luo suunnittelijalla uusi kysely Tiedekunta-, Ryhmä-, Opiskelija-taulukoiden avulla.

2. Kirjoita pyyntölomakkeen 1. sarakkeeseen Tiedekunnan nimi, 2. sarakkeeseen Ryhmä N ja 3. sarakkeeseen Kaupallinen kenttä.

3. Suorita QUERY/Cross-komento tai napsauta Kyselytyyppi-työkalurivin painiketta ja valitse luettelosta Cross.

4. Valitse arvot Crosstab-lomakkeen riviltä laajentamalla solujen luetteloa: 1. sarakkeelle Riviotsikot, 2. sarakkeelle - Sarakeotsikot, 3. sarakkeelle - Arvo.

5. Valitse ryhmätoiminnon Count-toiminto kolmannesta sarakkeesta.

6. Näytä ristinäyte napsauttamalla Suorita-painiketta.

7. Luo tiivistelarake palaamalla suunnittelutilaan ja lisäämällä toinen kaupallinen kenttä pyyntölomakkeeseen. Kirjoita Yhteensä-sarakkeen nimi ennen tämän kentän nimeä: Valitse Ryhmätoiminto-riviltä Count ja valitse Crosstab-riviltä Rivien otsikot.

8. Pienennä valintataulukon sarakkeiden leveyttä taulukkotilassa. Voit tehdä tämän valitsemalla sarakkeet, joissa on tietoja ryhmissä ja suorittamalla komennon MUOTO/Sarakkeen leveys/Sovita datan leveyteen.

9. Katso muokattu valikoima ja tallenna pyyntö antamalla sille nimi Mainosten lukumäärä ryhmittäin ja tiedekunnittain.

10. Likimääräinen kuva poikkileikkausnäytteestä on esitetty kuvassa 1.

Kuva 1. - Ristiinotos kaupallisten opiskelijoiden lukumäärästä ryhmittäin ja tiedekunnittain.

Tehtävä 6. Kirjoita kysely listataksesi ryhmien luetteloita, ja ryhmänumeroa pyydetään osana kyselyä. Tällaista pyyntöä kutsutaan pyyntö parametrilla. Parametri on ryhmänumero. Parametrin arvo syötetään valintaikkunaan. Pyynnön luomiseksi sinun on kirjoitettava valintaehdon teksti hakasulkeisiin ehdon sisältävään soluun.

1. Luo uusi kysely suunnittelijaa käyttämällä yhtä opiskelijataulukkoa.

2. Syötä kaikki taulukon kentät pyyntölomakkeen ensimmäiselle riville.

3. Kirjoita teksti rivin soluun Valintaehto N ryhmälle: [Syötä ryhmän numero]

4. Suorita pyyntö ja kirjoita yhden ryhmän numero näkyviin tulevaan valintaikkunaan. Selaa valikoimaa. Tallenna pyyntö ja anna sille nimi Query with Parameter.

5. Näytä työsi tulos opettajalle.




Yläosa