Užklausų ir ataskaitų parametrų naudojimas

Užklausos yra naudingos dirbant tik su tais lentelės laukais, kurie susiję su čia pat esančia užduotimi. Norėdami daugiau apriboti duomenis, su kuriais dirbate, pagal lauke esančią reikšmę, savo užklausoje galite naudoti kriterijus. Kriterijai yra taisyklės, kurias įtraukiate į užklausos kūrimą. Šios taisyklės nurodo reikšmes arba trafaretus, su kuriais turėtų sutapti laukai arba kuriuos turėtų pateikti užklausa.

Jei norite, kad kaskart vykdant užklausą, ji ragintų pateikti reikšmę arba trafaretą, galite sukurti parametrų užklausą (parametrų užklausa: užklausa, kurioje vartotojas dialogo metu nurodo vieną arba daugiau kriterijų reikšmių. Parametrų užklausa  – tai ne atskiras užklausos tipas, ji išplečia užklausos galimybes.). Parametrus taip pat galite naudoti ataskaitoje, jei norite, kad ją vykdant būtų raginama pateikti kriterijus. Rinkiniui patobulinti ir užklausos bei ataskaitos parametrams perduoti galite naudoti formas. Tai galima padaryti šiais būdais:

  • Leidžiant naudoti konkretaus duomenų tipo valdiklius
  • Įgalinant parametrų reikšmių išlaikymą
  • Leidžiant naudoti pasirinktinio įvedimo lauko valdiklius (kad galėtumėte išsirinkti reikšmę iš sąrašo, o ne įrašyti ją)
  • Leidžiant naudoti kitus formose pasiekiamus valdiklius

Šiame straipsnyje aiškinama, kaip užklausose ir ataskaitose naudoti parametrus ir kaip naudoti formas norint pagerinti parametrų naudojimą.

Šiame straipsnyje


Įvadas

Programos Microsoft Office Access 2007 užklausos kriterijus galite naudoti užklausos pateikiamam įrašų rinkiniui riboti. Atsižvelkite į šią įsivaizduojamą įvykių seką.

Tarkime, kad turite užklausą Paskutinis užsakymas, kuri kartu su pristatyto paskutinio klientų užsakymo data, pateikia jūsų klientų vardus ir adresus. Į savo aprašą ir katalogą įtraukėte keletą puikių naujų produktų. Kaskart pristatydami užsakymą, pridedate ir dabartinio katalogo kopiją. Jūs numatote, kad naujieji produktai bus labai populiarūs, todėl norite įsitikinti, kad visi jūsų klientai žino apie šiuos produktus. Norėtumėte nusiųsti naujus katalogus visiems klientams, kurie dar jų negavo pristatymo metu.

Taigi, jūs norite sukurti siuntimo sąrašą, kuriame būtų vardai ir adresai tų klientų, kurių paskutiniai užsakymai buvo pristatyti jiems prieš pasirodant naujam jūsų katalogui. Norėdami tai padaryti, pristatymo datos lauke taikysite savo užklausos Paskutinis užsakymas kriterijus. Kriterijai nurodo, jog pristatymo datos lauke esanti data yra ankstesnė už jūsų naujojo katalogo platinimo pradžios datą, pavyzdžiui, 2006 03 31. Vykdydami užklausą, gausite siuntimo sąrašą, kuriame bus tik naujojo katalogo dar negavę klientai.

Tačiau kas bus, jei situacija pasikartos? Galėtumėte modifikuoti savo užklausos dizainą keisdami kriterijų nurodytą reikšmę. Bet ar nebūtų puiku, jei užklausa galėtų pati paklausti datos, tada naudoti ją sprendžiant, kuriuos klientus įtraukti į siuntimo sąrašą? Galite nustatyti, kad jūsų užklausa galėtų tai padaryti, naudodami specialios rūšies kriterijų, vadinamą parametru.

Parametrus taip pat galite naudoti ataskaitose; tai leis ataskaitos vartotojams atitikti ataskaitos kriterijus, kai ją vykdys. Šiame straipsnyje aiškinama, kaip naudoti programą Office Access 2007 parametrus priimančioms ataskaitoms kurti.

Gali būti, kad parametro užklausos pateikiamo dialogo lango jūsų tikslams nepakaks. Tokiais atvejais galite sukurti formą, kuri labiau atitiktų jūsų parametrų rinkinį. Šiame straipsnyje aiškinama, kaip sukurti ataskaitos parametrų rinkimo formą.

Šiame straipsnyje bus laikoma, kad esate susipažinę su užklausų ir ataskaitų kūrimu. Prieš tęsdami, turėtumėte mokėti bent sukurti atrankos užklausą.

Daugiau informacijos apie atrankos užklausos arba ataskaitos kūrimą rasite straipsniuose Paprastos atrankos užklausos kūrimas ir Paprastos ataskaitos kūrimas.

Šiame straipsnyje pateikiami parametrų naudojimo užklausose ir ataskaitose pavyzdžiai. Išsamių kriterijų nurodymo nuorodų čia nepateikiama.

Daugiau informacijos apie kriterijų nurodymą ieškokite straipsnyje Užklausos kriterijų pavyzdžiai.

Puslapio pradžia Puslapio pradžia

Užklausų parametrų naudojimas

Sukurti parametro nuorodą yra taip pat lengva, kaip ir kurti kriterijus naudojančią užklausą. Užklausą galite sukurti taip, kad ji prašytų vienos informacijos dalies, pvz., skaičiaus dalies, arba daugiau nei vienos informacijos dalies, pvz., dviejų datų. Parametro užklausa rodo atskirtą kiekvieno parametro dialogo langą, kuriame būsite raginami pateikti to parametro reikšmę.

Parametro užklausos kūrimas

  1. Sukurkite atrankos užklausą, tada atidarykite ją kaip dizaino rodinį (maketo rodinys: rodinys, kuris rodo duomenų bazės objektų – lentelių, užklausų, formų, ataskaitų ir makrokomandų – maketą. Dizaino rodinyje galite kurti naujus duomenų bazės objektus arba keisti esamų objektų dizainą.).
  2. Lauko, kuriame norite taikyti parametrą, eilutėje Kriterijai įrašykite laužtiniais skliaustais apskliaustą tekstą, kurį norite rodyti parametro dialogo lange. Pavyzdžiui:

[Kilmės šalis/regionas:]

Vykdant parametro užklausą, raginimas bus rodomas dialogo lange be laužtinių skliaustų.

  1. Kartokite 2 veiksmą su kiekvienu parametru, jei norite, kad užklausa jį surinktų ir taikytų.

Anksčiau nurodytus veiksmus galite atlikti, jei norite kurti parametro užklausą iš bet kurių čia nurodytų užklausų tipų:

  • Pasirinkimo
  • Kryžminės
  • Papildymo
  • Lentelės kūrimo
  • Naujinimo

Parametrų galite įtraukti ir į sujungimo užklausą. Kad tai padarytumėte:

  1. Atidarykite sujungimo užklausą kaip SQL rodinį.
  2. Įtraukite sąlygą WHERE, kurioje yra kiekvienas laukas, kuriame norėsite raginti pateikti parametrą.

Jei sąlyga WHERE jau yra, įsitikinkite, ar sąlygoje jau yra laukai, kuriuose norėsite raginti pateikti parametrą. Jei nėra – įtraukite juos.

  1. Užuot sąlygoje WHERE naudoję kriterijus, įtraukite tokius parametrų pateikimo raginimus, naudojančius tokią pačią sintaksę, kurią naudotumėte ir kitų užklausų tipų parametruose.

Lauko reikšmės dalies ir parametro eilutės sutapdinimas

Galbūt norėsite šiek tiek užklausos parametro taikymo būdų įvairovės. Pavyzdžiui, kad užklausa priimtų teksto eilutę ir sutapdintų ją su bet kuria lauko dalimi. Tai padaryti galite kartu su pakaitos simboliais naudodami raktažodį Primena. Galite norėti, kad jūsų užklausa ragintų pateikti kilmės šalį/regioną, tačiau sutapdinti tik tiesiogiai susijusią lauko reikšmę, kurioje yra parametro eilutė. Kad tai padarytumėte:

  1. Sukurkite atrankos užklausą, tada atidarykite ją kaip dizaino rodinį.
  2. Lauko, kuriame norite taikyti parametrą, eilutėje Kriterijai įrašykite Primena "*"&[, įrašykite tekstą, kurį norite naudoti kaip raginimą, tada įrašykite ]&"*".

Vykdant parametro užklausą, raginimas bus rodomas dialogo lange be laužtinių skliaustų ir be raktažodžio Primena ar pakaitos simbolių.

  1. Kai užklausa parametrą priima, jis sutapdinamas su parametro eilutę turinčiomis reikšmėmis. Pavyzdžiui, parametro eilutė us atitinka eilutes, kurių parametro laukuose yra reikšmė Australija, taip pat eilutes, kuriose reikšmė yra RUSIJA.

Norėdami nurodyti, kad parametras turi atitikti lauko reikšmės pradžią arba pabaigą, taip pat galite naudoti raktažodį Primena ir pakaitos simbolius. Norėdami, kad parametras atitiktų lauko reikšmės pradžią, praleiskite kabutes, pakaitos simbolį ir ampersendą (&), kurie yra prieš atidaromąjį laužtinį skliaustą. Jei norite, kad parametras atitiktų lauko reikšmės pabaigą, praleiskite po uždaromojo laužtinio skliausto esantį ampersendą, kabutes ir pakaitos simbolį.

Nelygiomis reikšmėmis pagrįstas atitikimas

Galbūt norėsite rinkti parametrą, bet labiau tikriausiai norėsite, kad užklausa pateiktų eilutes, kurių kitas lyginimas būtų įvertintas kaip teisingas, o ne gauti užklausos pateikiamas eilutes su atitinkančiomis reikšmėmis. Pavyzdžiui, galite raginti pateikti metus, tada grąžinti eilutes, kuriose metų reikšmė yra didesnė nei parametro eilutė. Norėdami tai padaryti, įrašykite lyginimo operatorių pirmojo laužtinio skliausto, kuris apskliaudžia parametro pateikimo raginimą, kairėje, pavyzdžiui, >[Metai:].

Puslapio pradžia Puslapio pradžia

Ataskaitų parametrų naudojimas

Paprasčiausias būdas sukurti ataskaitą, kuri priimtų parametrus – kaip ataskaitos įrašo šaltinį naudoti parametro užklausą. Pavyzdžiui, galite sukurti mėnesio uždarbio ataskaitą, pagrįstą parametro užklausa, raginančia pateikti mėnesio reikšmę. Vykdant arba spausdinant ataskaitą, programa Access rodo dialogo langą, kuriame raginama pateikti mėnesį, kurio ataskaitą norite įtraukti. Įvedus mėnesį, programa Access rodys arba spausdins atitinkamą ataskaitą.

Taip pat galite paprastą, atrankos užklausa pagrįstą ataskaitą nesunkiai konvertuoti į parametrinę ataskaitą, į jos šaltinio užklausą įtraukdami parametrų. Tai padaryti galima dviem būdais:

  • Atidarykite šaltinio užklausą kaip dizaino rodinį, tada įtraukite parametrus į norimus laukus, pridėdami juos prie tų laukų eilutės Kriterijai. Daugiau informacijos rasite skyriuje Užklausų parametrų naudojimas.
  • Atidarykite ataskaitą kaip dizaino rodinį, tada šalia ataskaitos ypatybės Įrašo šaltinis (Record Source) spustelėkite .... Tai atidarys šaltinio užklausą kaip dizaino rodinį. Tada galite į šaltinio užklausą įtraukti parametrų, kaip nurodyta skyriuje Užklausų parametrų naudojimas.

Baigę įterpti parametrus į šaltinio užklausą, įrašykite (paspauskite CTRL+S) ir uždarykite ją.

Puslapio pradžia Puslapio pradžia

Ataskaitos parametrų rinkimo formos kūrimas

Nors parametrų užklausose yra įtaisytasis parametrų rinkimo dialogo langas, šie parametrai pateikia tik pagrindines funkcines galimybes. Ataskaitos parametrams rinkti naudodami formą, galite valdyti šias savybes:

  • Galimybę naudoti konkretaus duomenų tipo valdiklius, pvz., datoms skirtus kalendoriaus valdiklius
  • Surinktų parametrų išlaikymą
  • Galimybę pateikti parametrų rinkinio pasirinktinio įvedimo arba sąrašo lauką, leidžiant rinktis iš prieinamų duomenų reikšmių sąrašo
  • Galimybę pateikti kitų funkcijų, pvz., ataskaitos skyrių rodymo arba slėpimo, valdiklius

Jei norite kurti ataskaitos parametrų rinkimo formą, atlikite 1–7 veiksmus.

1 veiksmas: laisvos formos, raginančios pateikti ataskaitos parametrus, kūrimas

  1. Skirtuko Sukurti grupėje Formos spustelėkite komandą Formos kūrimas.
  1. Dizaino rodinyje paspauskite F4, kad būtų rodomas ypatybės lapas, tada nustatykite formos ypatybes, kaip parodyta šioje lentelėje.
Ypatybė Parametras
Antraštė Įveskite pavadinimą, kurį norite matyti formos pavadinimo juostoje.
Numatytasis rodinys Viena forma
Leisti formos rodinį Taip
Leisti duomenų lapo rodinį Ne
Leisti PivotTable rodinį Ne
Leisti PivotChart rodinį Ne
Slinkties juostos Nė viena
Įrašų parinkikliai Ne
Naršymo mygtukai Ne
Kraštinės stilius Dialogas
  1. Skirtuko Dizainas grupėje Valdikliai spustelėkite Teksto laukelis. Tai atlikite su kiekvienu parametru, kurį norite rinkti naudodami formą.
  2. Nustatykite teksto laukelių ypatybes, kaip pavaizduota šioje lentelėje.
Ypatybė Parametras
Pavadinimas Įveskite pavadinimą, kuris apibūdintų parametrą, pavyzdžiui, Pradžios data.
Formatas Pasirinkite formatą, kuris atspindi parametro lauko duomenų tipą. Pavyzdžiui, datos laukui parinkite Vidutinė data.
  1. Formą įrašykite ir suteikite jai pavadinimą, pvz., Parametrų rinktuvas.

 Pastaba   Šiame pavyzdyje Parametrų rinktuvas yra formos pavadinimas. Vykdydami šias instrukcijas, pakeiskite savo ataskaitos parametrų formai suteiktą pavadinimą visur, kur tik šiose instrukcijose rasite panaudotą pavadinimą Parametrų rinktuvas.

2 veiksmas: modulio, turinčio funkciją, kuri tikrina, ar forma jau įkelta, kūrimas

  1. Skirtuko Sukurti grupėje Kita spustelėkite komandą Modulis. Jei ši komanda yra negalima, spustelėkite rodyklę, kuri randasi žemiau mygtuko Makrokomanda arba žemiau mygtuko Kasės modulis, ir spustelėkite komandą Modulis.

Naujas modulis atidaromas naudojant Visual Basic rengyklę.

  1. Visual Basic rengyklėje įrašykite arba įklijuokite šį kodą:
Function IsLoaded(ByVal strFormName As String) As Boolean

Dim oAccessObject As AccessObject
Set oAccessObject = CurrentProject.AllForms(strFormName)

If oAccessObject.IsLoaded Then
  If oAccessObject.CurrentView <> acCurViewDesign Then
    IsLoaded = True
  End If
End If

3 veiksmas: makrokomandų grupės, valdančios parametrų rinktuvo formą, kūrimas

  1. Skirtuko Sukurti grupėje Kita spustelėkite komandą Makrokomanda. Jei ši komanda yra negalima, spustelėkite rodyklę, kuri randasi žemiau mygtuko Modulis arba žemiau mygtuko Kasės modulis, ir spustelėkite komandą Makrokomanda.
  1. Skirtuko Dizainas grupėje Rodyti/Slėpti spustelėkite Rodyti visus veiksmus.
  1. Skirtuko Dizainas grupėje Rodyti/Slėpti spustelėdami Makrokomandų vardai pamatysite stulpelį Makrokomandos pavadinimas.
  1. Stulpelyje Makrokomandos pavadinimas įrašykite makrokomandos pavadinimą, pvz., Atidaryti dialogą.
  2. Šalia naujo makrokomandos pavadinimo esančiame stulpelyje Veiksmas spustelėkite langelį, spustelėkite išplečiamąją rodyklę, tada spustelėkite Atidaryti_formą.
  3. Tinklelyje Veiksmų argumentai (esančiame žemiau makrokomandos dizaino tinklelio) nustatykite veiksmų argumentus (veiksmo argumentas: papildoma informacija, kurios reikalauja kai kurie makrokomandų veiksmai. Pavyzdžiui, veiksmo įtakotas objektas arba specialios sąlygos, kuriomis atliekamas veiksmas.), kaip parodyta šioje lentelėje.
Argumentas Parametras
Formos pavadinimas Įveskite pavadinimą, kurį suteikėte savo ataskaitos parametrų formai.
Rodinys Forma
Duomenų režimas Redaguoti
Lango režimas Dialogas
  1. Kitame langelyje Veiksmas spustelėkite Atšaukti_įvykį, kad įtrauktumėte antrą veiksmą. Šis veiksmas bus naudojamas ataskaitos peržiūrai arba spausdinimui atšaukti, kai vartotojas formoje spusteli mygtuką Atšaukti.
  2. Jei stulpelis Sąlyga nerodomas, skirtuko Dizainas grupėje Rodymas/slėpimas spustelėkite Sąlygos.
  3. Stulpelyje Sąlyga įrašykite Not IsLoaded, po jos – atidarantįjį skliaustą ir kabutes, tada įrašykite pavadinimą, kurį suteikėte savo ataskaitos parametrų formai, o tada kabutes ir uždarantįjį skliaustą. Pavyzdžiui, jei jūsų formos pavadinimas yra Parametrų rinktuvas, įrašykite Not IsLoaded("Parametrų rinktuvas").
  4. Paskesnėje tuščioje makrokomandos dizaino tinklelio eilutėje įrašykite naują makrokomandos pavadinimą, pvz., Uždaryti dialogą.
  5. Gretimame langelyje Veiksmas spustelėkite išplečiamąją rodyklę, tada spustelėkite Uždaryti. Šį veiksmą naudos ataskaita ataskaitos parametrų formai uždaryti. Nustatykite jos veiksmų argumentus kaip parodyta šioje lentelėje.
Argumentas Parametras
Objekto tipas Forma
Objekto pavadinimas Įveskite pavadinimą, kurį suteikėte savo ataskaitos parametrų formai.
Įrašyti Ne
  1. Paskesnėje tuščioje makrokomandos dizaino tinklelio eilutėje įrašykite naują makrokomandos pavadinimą, pvz., Gerai. Gretimame langelyje Veiksmas spustelėkite išplečiamąją rodyklę, tada spustelėkite Nustatyti_reikšmę. Šis veiksmas bus naudojamas ataskaitos parametrų formai slėpti, kai vartotojas spustelės Gerai. Nustatykite jos veiksmų argumentus, kaip parodyta šioje lentelėje.
Argumentas Parametras
Elementas [Matomas]
Išraiška Ne
  1. Paskesnėje tuščioje makrokomandos dizaino tinklelio eilutėje įrašykite naują makrokomandos pavadinimą, pvz., Atšaukti. Gretimame langelyje Veiksmas spustelėkite išplečiamąją rodyklę, tada spustelėkite Uždaryti. Šis veiksmas bus naudojamas ataskaitos parametrų formai uždaryti, kai vartotojas spustelės Atšaukti. Nustatykite jos veiksmų argumentus, kaip parodyta šioje lentelėje.
Argumentas Parametras
Objekto tipas Forma
Objekto pavadinimas Įveskite pavadinimą, kurį suteikėte savo ataskaitos parametrų formai.
Įrašyti Ne
  1. Įrašykite ir uždarykite makrokomandų grupę. Sutekite jai pavadinimą, pavyzdžiui, Parametrų rinktuvas.

4 veiksmas: komandų Gerai ir Atšaukti mygtukų įtraukimas į formą

  1. Atidarykite parametrų rinktuvo formą iš naujo kaip dizaino rodinį.
  2. Įsitikinkite, kad skirtuko Dizainas grupėje Valdikliai nepažymėta parinktis Naudoti valdiklių vedlius.
  3. Skirtuko Dizainas grupėje Valdikliai spustelėkite Mygtukas.
  1. Palikite žymiklį žemiau formoje esančių teksto laukelių, tada vilkite, kad sukurtumėte komandos Gerai mygtuką.
  2. Jei ypatybės lapas nerodomas, paspauskite F4, kad jis būtų parodytas.
  3. Nustatykite mygtuko Gerai ypatybes, kaip parodyta šioje lentelėje.
Ypatybė Parametras
Pavadinimas Gerai
Antraštė Gerai
Numatytoji Taip
Spustelėjus (OnClick) Įveskite makrokomandos pavadinimą, pavyzdžiui, Parametrų rinktuvas.Gerai.
  1. Sukurkite komandos Atšaukti mygtuką ir nustatykite ypatybes, kaip parodyta šioje lentelėje.
Ypatybė Parametras
Pavadinimas (Name) Atšaukti
Antraštė (Caption) Atšaukti
Spustelėjus (OnClick) Įveskite makrokomandos pavadinimą, pavyzdžiui, Parametrų rinktuvas.Atšaukti.
  1. Įrašykite ir uždarykite formą.

5 veiksmas: kriterijų įvedimas į ataskaitos užklausą arba saugomą procedūrą

  1. Atidarykite ataskaitos užklausą arba saugomą procedūrą kaip dizaino rodinį.
  2. Įveskite duomenų kriterijus. Išraiškose (išraiška: bet koks matematinių ir loginių operatorių, konstantų, funkcijų ir laukų pavadinimų derinys, apskaičiuojantis vieną reikšmę. Išraiškos gali atlikti skaičiavimus, manipuliuoti simboliais arba tikrinti duomenis.) naudokite objektą Formos, formos pavadinimą ir kriterijų valdiklių pavadinimus (valdiklis: grafinės vartotojo sąsajos objektas, pvz., teksto laukas, žymės langelis, slinkties juosta arba komandos mygtukas, leidžiantis vartotojui valdyti programą. Valdikliai yra naudojami duomenims arba pasirinkimams rodyti, veiksmui atlikti arba vartotojo sąsają darant lengviau skaitoma.):
    • Pavyzdžiui, programos Access duomenų bazės (.accdb arba .mdb) formoje, kurios pavadinimas Parametrų rinktuvas, norėdami kreiptis į užklausos valdiklius Pradžios data ir Pabaigos data, naudokite šią išraišką:

Between [Formos]![Parametrų rinktuvas]![Pradžios data] And [Formos]![Parametrų rinktuvas]![Pabaigos data]

@Pradžios_data datetime, @Pabaigos_data datetime

Tada turite naudoti šiuos sąlygos WHERE parametrus, pavyzdžiui:

WHERE Pardavimai.Pristatymo_data Between @Pradžios_data And @Pabaigos_data

Programos Access projekte jūs nustatote ataskaitos ypatybės Įvesties_parametrai (InputParameters) formoje esančių valdiklių nuorodą, kaip parodyta paskesnėje procedūroje.

6 veiksmas: ypatybės Įvesties_parametrai (InputParameters) nustatymas programos Access projekto pagrindinėje ataskaitoje

  1. Atidarykite ataskaitą kaip dizaino rodinį.
  2. Nustatykite ataskaitos ypatybę Įvesties_parametrai (InputParameters) eilutėje, kuri nurodo parametrus, perduotus saugomai procedūrai, su kuria susieta ataskaita.

Kaip matyti šiame pavyzdyje, eilutė turi būti išraiška, kuri turi saugomoje procedūroje nurodytus parametrus, taip pat dialogo lango valdiklių nuorodą:

@Pradžios_data datetime = [Formos]![Parametrų rinktuvas]![Pradžios data], @Pabaigos_data datetime = [Formos]![Parametrų rinktuvas]![Pabaigos data]

7 veiksmas: makrokomandų pridėjimas prie pagrindinės ataskaitos

  1. Atidarykite ataskaitą kaip dizaino rodinį.
  2. Jei ypatybės lapas nerodomas, paspauskite F4, kad jis būtų parodytas.
  3. Nustatykite ataskaitos ypatybes, kaip parodyta šioje lentelėje.
Ypatybė Parametras
Atidarant (OnOpen) Įrašykite formą atidarančios makrokomandos pavadinimą, pavyzdžiui, Parametrų rinktuvas.Atidaryti dialogą.
Uždarant (OnClose) Įrašykite formą uždarančios makrokomandos pavadinimą, pavyzdžiui, Parametrų rinktuvas.Uždaryti dialogą.

    Puslapio pradžia Puslapio pradžia

     
     
    Taikoma:
    Access 2007