Kurdami naują duomenų bazę, paprastai pradedate sukurdami kelis duomenų bazės objektus, pvz., lenteles, formas ir ataskaitas. Galiausiai pasiekiate tašką, kai prireikia programavimo, norint automatizuoti tam tikrus procesus ir susieti duomenų bazės objektus. Šis straipsnis padės jums orientuotis į „Access“ " programavimo įrankius.
Šiame straipsnyje
Kas yra programavimas?
Programoje „Access“ programavimas yra duomenų bazės funkcijų įtraukimo procesas naudojant „Access“ makrokomandas arba "Visual Basic for Applications" (VBA) kodą. Tarkime, sukūrėte formą ir ataskaitą ir norite į formą įtraukti komandos mygtuką, kuris, spustelėtas, atidaro ataskaitą. Šiuo atveju programavimas – tai procesas, kai sukuriama makrokomanda arba VBA procedūra, tada nustatoma komandos mygtuko įvykio ypatybė OnClick, kad spustelėjus komandos mygtuką būtų paleista makromanda arba procedūra. Paprastai operacijai sukurti, pvz., atidaryti ataskaitą, galite naudoti komandos mygtuko vedlį, kuris atliks visą darbą, arba galite išjungti vedlį ir patys atlikti programavimą.
Pastaba: Daugelis „Microsoft Office“ programų VBA kodui pavadinti naudoja terminą „makrokomanda“. Tai gali būti painu „Access“ vartotojams, nes „Access“ terminas "makrokomanda" nurodo įvardytą makrokomandų veiksmų rinkinį, kurį galite surinkti naudodami makrokomandų daryklę. „Access“ makrokomandų veiksmai nurodo tik dalį VBA galimų komandų. Makrokomandų daryklė suteikia aiškesnės struktūros vartotojo sąsają nei „Visual Basic“ rengyklė, todėl galite į valdiklius ir objektus įtraukti programavimo elementų ir nesimokydami VBA kodo. Atminkite, kad „Access“ žinyno straipsniuose „Access“ makrokomandos vadinamos makrokomandomis. Ir priešingai, VBA kodas vadinamas VBA, kodu, funkcija arba procedūra. VBA kodas yra klasės moduliuose (kurie yra atskirų formų arba ataskaitų dalis, juose paprastai yra tik tų objektų kodas) ir moduliuose (kurie nėra susieti su konkrečiais objektais, juose paprastai yra „visuotinis“ kodas, kuris gali būti naudojamas visoje duomenų bazėje).
Objektuose (pvz., formose ir ataskaitose) ir valdikliuose (pvz., komandų mygtukuose ir teksto laukuose) yra įvairių įvykių ypatybių, prie kurių galite pridėti makrokomandų arba procedūrų. Kiekviena įvykio ypatybė susieta su konkrečiu įvykiu, pvz., pelės spustelėjimu, formos atidarymu arba duomenų modifikavimu teksto lauke. Įvykius taip pat gali sukelti ne „Access“ veiksniai, pvz., sistemos įvykiai arba makrokomandos ar procedūros, pridėtos prie kitų įvykių. Duomenų bazė gali tapti sudėtinga, jei įtrauksite daug makrokomandų arba procedūrų į daugelio objektų įvykių ypatybes, tačiau daugeliu atveju galite pasiekti norimus rezultatus naudodami labai mažai programavimo.
Ar turėčiau naudoti makrokomandas, ar VBA kodą?
Sprendimas naudoti makrokomandas, VBA arba abu priklauso visų pirma nuo to, kaip ketinate diegti arba platinti duomenų bazę. Pavyzdžiui, jei duomenų bazė saugoma jūsų kompiuteryje ir esate vienintelis vartotojas bei mokate naudoti VBA kodą, gali būti naudinga naudoti VBA daugumai programavimo užduočių atlikti. Tačiau jei ketinate bendrinti duomenų bazę su kitais žmonėmis saugodami ją failų serveryje, neturėtumėte naudoti VBA dėl saugumo sumetimų.
Priimkite sprendimą naudoti makrokomandas arba VBA kodą atsižvelgdami į du dalykus: saugą ir norimas funkcines galimybes. Sauga yra svarbus klausimas, nes VBA gali būti panaudota siekiant sukurti kodą, keliantį grėsmę jūsų duomenų saugai arba pakenksiantį failams jūsų kompiuteryje. Naudodami duomenų bazę, sukurtą kieno nors kito, turėtumėte įgalinti VBA kodą tik tada, jei žinote, kad duomenų bazė yra iš patikimo šaltinio. Kurdami duomenų bazę, kuri bus naudojama kitų žmonių, stenkitės neįtraukti programavimo įrankių, kurie vartotojų reikalautų duomenų bazei suteikti pasitikėjimo būseną. Bendrieji būdai, kaip vengti poreikio vartotojams pasitikėti duomenų baze, pateikiami toliau šiame skyriuje.
Norėdami užtikrinti duomenų bazės saugą, naudokite makrokomandas, kai įmanoma, o VBA kalba programuokite tik tas operacijas, kurių negalima atlikti naudojant makrokomandų veiksmus. Be to, stenkitės naudoti tik tuos makrokomandų veiksmus, kuriuos norint vykdyti nereikia suteikti pasitikėjimo būsenos. Tokiu būdu apribojant makrokomandų veiksmus, vartotojai gali būti tikri, kad duomenų bazėje nėra kodo, kuris galėtų pakenkti duomenims ar kitiems failams jų kompiuteryje.
Ką reikėtų žinoti apie makrokomandas
„Access“ yra daug naujų makrokomandų veiksmų, kurie leidžia kurti galingesnes makrokomandas nei naudojant ankstesnes „Access“ versijas. Pavyzdžiui, dabar galite kurti ir naudoti visuotinius laikinus kintamuosius naudodami makrokomandų veiksmus bei sklandžiau šalinti klaidas naudodami naujus klaidų šalinimo makrokomandų veiksmus. Ankstesnėse „Access“ versijose šios funkcijos galimos tik naudojant VBA. Be to, galite įdėti makrokomandą tiesiogiai į objekto arba valdiklio įvykio ypatybę. Įdėtoji makrokomanda tampa objekto arba valdiklio dalimi ir lieka su objektu arba valdikliu, jei jis perkeliamas arba kopijuojamas.
Makrokomandos leidžia lengvai tvarkyti daugelį programavimo užduočių, pvz., atidaryti ir uždaryti formas ir vykdyti ataskaitas. Galite greitai ir lengvai susieti sukurtus duomenų bazės objektus (formas, ataskaitas ir t. t.), nes yra nedaug sintaksės, kurią jums reikėtų prisiminti. Kiekvieno veiksmo argumentai rodomi makrokomandų daryklėje.
Be makrokomandų suteikiamos padidėjusios saugos ir paprasto naudojimo, turite naudoti makrokomandas šiems veiksmams atlikti:
-
Priskirti veiksmą arba veiksmų rinkinį raktui. Tam reikia sukurti makrokomandų grupę pavadinimu AutoKeys.
-
Atlikti veiksmą arba keletą veiksmų, kai pirmą kartą atidaroma duomenų bazė. Tam reikia sukurti makrokomandą pavadinimu AutoExec.
Pastaba: Makrokomanda AutoExec paleidžiama prieš bet kurią kitą makrokomandą arba VBA kodą, net jei nustatėte paleisties formą dialogo lange „Access“ parinktys ir prie tos formos įvykio OnOpen arba OnLoad pridėjote makrokomandą arba VBA kodą.
Daugiau informacijos, kaip kurti makrokomandas, žr. skyrių Kas yra makrokomandos.
Ką reikėtų žinoti apie VBA
Turėtumėte naudoti VBA kodą, užuot naudoję makrokomandas, jei norite atlikti vieną iš šių veiksmų:
-
Naudokite įtaisytąsias funkcijas arba kurkite savo funkcijas, „Access“ yra daug įtaisytųjų funkcijų, pvz., IPmt funkcija, kuri apskaičiuoja palūkanų mokėjimą. Galite naudoti šias įtaisytąsias funkcijas, jei norite atlikti skaičiavimus nekurdami sudėtingų reiškinių. Naudodami VBA kodą, taip pat galite kurti savo funkcijas, skirtas arba atlikti skaičiavimams, kurie viršija reiškinio galimybes, arba pakeisti sudėtingus reiškinius. Be to, galite naudoti funkcijas, kurias kuriate reiškiniuose, norėdami taikyti bendrą operaciją daugiau nei vienam objektui.
-
Kurti ir valdyti objektus Suprasite, kad daugeliu atveju paprasčiausia objektą sukurti ir modifikuoti to objekto dizaino rodinyje. Vis dėlto kai kuriais atvejais gali būti naudinga valdyti objekto apibrėžimą naudojant kodą. Naudodami VBA, be pačios duomenų bazės, galite valdyti ir visus duomenų bazės objektus.
-
Atlikti veiksmus sistemos lygiu Galite vykdyti veiksmą Vykdytiprogramą makrokomandoje, kad paleistumėte kitą programą (pvz., "Microsoft Excel") iš „Access“ "", tačiau negalite naudoti makrokomandos dar daug ne „Access“. Naudodami VBA, galite patikrinti, ar failas yra kompiuteryje, naudoti automatizavimą arba dinaminius duomenų mainus (DDE) komunikacijai su kitomis „Microsoft Windows“ programomis, pvz., „Excel“, ir iškviesti funkcijas „Windows“ dinaminių saitų bibliotekose (DLL).
-
Valdyti įrašus vieną po kito Galite naudoti VBA norėdami naršyti kelis įrašus, po vieną vienu metu, ir atlikti operaciją su kiekvienu iš jų. Tuo tarpu makrokomandos dirba su visais įrašais vienu metu.
Komandos mygtuko vedlio naudojimas norint atlikti įprastas programavimo užduotis
Jei į formą įtraukiate komandos mygtuką, komandos mygtuko vedlys gali jums padėti programuoti. Vedlys padeda sukurti komandos mygtuką, kuris atlieka tam tikrą užduotį. „Access“ (.accdb) faile vediklis sukuria makrokomandą, įdėtą į komandos mygtuko ypatybę OnClick . .mdb arba .adp faile vedlys sukuria VBA kodą, nes įdėtosios makrokomandos šiuose failų formatuose negalimos. Bet kuriuo atveju, tada galite modifikuoti ar tobulinti makrokomandą arba VBA kodą, kad jis geriau atitiktų jūsų poreikius.
-
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite formą, į kurią norite įtraukti komandos mygtuką, tada spustelėkite Dizaino rodinys.
-
Skirtuke Formos dizainas spustelėkite rodyklę žemyn, kad būtų rodoma valdiklių galerija, tada įsitikinkite, kad pasirinkta Naudoti valdymo vediklius .
-
Skirtuko Formos dizainas galerijoje Valdikliai spustelėkite Mygtukas.
-
Formos užklausos kūrimo tinklelyje spustelėkite toje vietoje, kurioje norite išdėstyti komandos mygtuką.
Paleidžiamas komandos mygtuko vedlys
-
Pirmame vedlio puslapyje spustelėkite norimą kategoriją sąraše Kategorijos, kad peržiūrėtumėte, kuriems veiksmams atlikti vedlys gali užprogramuoti komandų mygtuką. Sąraše Veiksmai pasirinkite norimą veiksmą ir spustelėkite Pirmyn.
-
Spustelėkite parinktį Tekstas arba parinktį Paveikslėlis, priklausomai nuo to, ar norite, kad komandos mygtuke būtų rodomas tekstas arba paveikslėlis.
-
Jei norite, kad būtų rodomas tekstas, galite redaguoti tekstą lauke, esančiame šalia parinkties Tekstas.
-
Jei norite, kad būtų rodomas paveikslėlis, vedlys sąraše siūlo paveikslėlį. Jei norite pažymėti kitą paveikslėlį, pažymėkite žymės langelį Rodyti visus paveikslėlius , kad būtų rodomas visų „Access“ pateikiamų komandos mygtukų paveikslėlių sąrašas, arba spustelėkite Naršyti , kad pasirinktumėte kitoje vietoje saugomą paveikslėlį.
Spustelėkite Pirmyn.
-
-
Įveskite prasmingą komandos mygtuko pavadinimą. Tai nebūtinas veiksmas, o vardas nėra rodomas komandos mygtuke. Tačiau gali būti naudinga įvesti prasmingą pavadinimą, nes vėliau norint nurodyti komandos mygtuką (pvz., jei nustatote formos valdiklių tabuliavimo tvarką) bus daug lengviau atskirti komandų mygtukus. Jei, pavyzdžiui, komandos mygtukas uždaro formą, galite jį pavadinti kmdUždaryti arba KomandaUždaryti.
-
Spustelėkite Baigti.
„Access“ į formą įdės komandos mygtuką.
-
Jei norite pamatyti, ką vedlys jums „užprogramavo“, atlikite šiuos neprivalomus veiksmus:
-
Jei ypatybių lapas iš karto nerodomas, paspauskite F4 norėdami jį rodyti.
-
Ypatybių lape spustelėkite skirtuką Įvykis.
-
Ypatybės lauke Spustelėjus spustelėkite mygtuką Kurti .
„Access“ paleidžia makrokomandų daryklę ir rodo vedlio sukurtą makrokomandą. Jei norite, galite redaguoti makrokomandą (daugiau informacijos, kaip redaguoti makrokomandą, žr. skyrių Kas yra makrokomandos). Kai baigsite, skirtuko Makrokomandų dizainas grupėje Uždaryti spustelėkite Uždaryti , kad uždarytumėte makrokomandų daryklę. Jei „Access“ paragins įrašyti keitimus ir atnaujinti ypatybę, spustelėkite Taip , kad įrašytumėte keitimus, arba Ne , kad atmestumėte keitimus.
-
-
Skirtuko Formos dizainas grupėje Rodiniai spustelėkite Rodinys, tada spustelėkite Formos rodinys. Spustelėkite naująjį komandos mygtuką, kad įsitikintumėte, jog jis veikia taip, kaip tikėjotės.
Kas yra makrokomandos
Makrokomanda yra įrankis, leidžiantis automatizuoti užduotis ir padidinti formų, ataskaitų ir valdiklių funkcines galimybes. Pavyzdžiui, jei į formą įtraukiate komandos mygtuką, susiejate mygtuko įvykio ypatybę OnClick su makrokomanda, kurioje yra norimos komandos, kurias mygtukas turi atlikti kiekvieną kartą, kai jis paspaudžiamas.
Naudinga „Access“ makrokomandas laikyti supaprastinta programavimo kalba, kuria kuriate kodą kurdami norimų atlikti veiksmų sąrašą. Kurdami makrokomandą, pasirenkate kiekvieną veiksmą iš išplečiamojo sąrašo, tada užpildote kiekvieno veiksmo reikiamą informaciją. Makrokomandos leidžia padidinti formų, ataskaitų ir valdiklių funkcines galimybes nerašant kodo VBA modulyje. Makrokomandos suteikia pogrupį komandų, galimų VBA, ir daugumai žmonių paprasčiau sukurti makrokomandą nei parašyti VBA kodą.
Makrokomanda kuriama naudojant makrokomandų daryklę, kuri parodyta šioje iliustracijoje.
Norėdami, kad būtų rodoma makrokomandų daryklė:
-
Skirtuke Kurti grupėje Makrokomanda ir kodas spustelėkite Makrokomanda.
Kas yra VBA kodas
Kaip ir makrokomandos, VBA leidžia į „Access“ programą įtraukti automatizavimo ir kitų funkcijų. Galite išplėsti VBA naudodami trečiųjų šalių valdiklius ir rašyti savo funkcijas bei procedūras pagal konkrečius poreikius.
Greitas būdas pradėti naudoti VBA programavimą – pirmiausia sukurti „Access“ makrokomandą ir konvertuoti ją į VBA kodą. Nurodymai, kaip tai daryti, įtraukti į skiltį Makrokomandų konvertavimas į VBA kodą. Ši funkcija sukuria naują VBA modulį, kuris atlieka atitinkamas operacijas makrokomandoje. Ji taip pat atidaro „Visual Basic“ rengyklę, kad galėtumėte pradėti modifikuoti procedūrą. Kai dirbate naudodami "Visual Basic" rengyklę, galite spustelėti raktažodžius ir paspausti F1, kad pradėtumėte „Access“ kūrėjų žinyną ir sužinotumėte daugiau apie kiekvieną raktažodį. Tada galėsite naršyti „Access“ kūrėjų žinyną ir atrasti naujų komandų, kurios padės atlikti norimas programavimo užduotis.
Makrokomandų konvertavimas į VBA kodą
Naudodami „Access“ galite automatiškai konvertuoti makrokomandas į VBA modulius arba klasės modulius. Galite konvertuoti makrokomandas, kurios pridėtos prie formos arba ataskaitos, nesvarbu, ar jos veikia kaip atskiri objektai, ar kaip įdėtosios makrokomandos. Taip pat galite konvertuoti visuotines makrokomandas, kurios nėra pridėtos prie konkrečios formos ar ataskaitos.
Makrokomandų, pridėtų prie formos arba ataskaitos, konvertavimas
Šis procesas konvertuoja VBA į bet kurias makrokomandas, kurios nurodytos (arba įdėtos) formoje arba ataskaitoje (arba bet kuriuose jos valdikliuose), ir įtraukia VBA kodą į formos arba ataskaitos klasės modulį. Tas klasės modulis tampa formos arba ataskaitos dalimi ir yra perkeliamas kartu su forma arba ataskaita, jei ši perkeliama arba kopijuojama.
-
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite formą arba ataskaitą, tada spustelėkite Dizaino rodinys.
-
Skirtuko Formos dizainas grupėje Įrankiai spustelėkite Konvertuoti formos makrokomandas į "Visual Basic" arba Konvertuoti ataskaitos makrokomandas į "Visual Basic".
-
Dialogo lange Konvertuoti formos makrokomandas arba Konvertuoti ataskaitos makrokomandas pažymėkite, ar norite, „Access“ į jos generuojamas funkcijas įtraukti klaidų apdorojimo kodą. Taip pat, jei makrokomandose yra komentarų, pasirinkite, ar norite jas įtraukti kaip komentarus į funkcijas. Spustelėkite Konvertuoti, norėdami tęsti.
Jei formoje ar ataskaitoje nėra klasės modulio, „Access“ ją sukuria ir įtraukia procedūrą į kiekvienos makrokomandos, susietos su forma arba ataskaita, modulį. „Access“ taip pat pakeičia formos arba ataskaitos įvykio ypatybes, kad būtų vykdomos naujos VBA procedūros, o ne makrokomandos.
-
Norėdami peržiūrėti arba redaguoti VBA kodą:
-
Kai dizaino rodinyje vis dar atidaryta forma arba ataskaita, jei ypatybių lapas iš karto nerodomas, paspauskite F4 norėdami jį rodyti.
-
Ypatybių lapo skirtuke Įvykis spustelėkite bet kurį ypatybės lauką, kuriame rodoma [Įvykio procedūra], tada spustelėkite kūrimo mygtuką . Norėdami peržiūrėti konkretaus valdiklio įvykių ypatybes, spustelėkite valdiklį, kad jį pažymėtumėte. Norėdami peržiūrėti visos formos arba ataskaitos įvykių ypatybes, ypatybių lapo viršuje esančiame išplečiamajame sąraše pasirinkite Forma arba Ataskaita.
„Access“ atidaro "Visual Basic" rengyklę ir rodo įvykio procedūrą jos klasės modulyje. Galite slinkti aukštyn arba žemyn, norėdami peržiūrėti kitas procedūras, esančias tame pačiame klasės modulyje.
-
Visuotinių makrokomandų konvertavimas
-
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite norimą konvertuoti makrokomandą, tada spustelėkite Dizaino rodinys.
-
Skirtuko Makrokomandų dizainas grupėje Įrankiai spustelėkite Konvertuoti makrokomandas į "Visual Basic".
-
Dialogo lange Konvertuoti makrokomandas pasirinkite norimas parinktis, tada spustelėkite Konvertuoti.
„Access“ konvertuoja makrokomandą ir atidaro "Visual Basic" rengyklę.
-
Norėdami peržiūrėti arba redaguoti VBA kodą:
-
„Visual Basic“ rengyklėje, jei nerodoma „Project Explorer“ sritis, meniu Rodymas spustelėkite Project Explorer.
-
Išplėskite medį, esantį po duomenų bazės, kurioje dirbate, pavadinimu.
-
Dalyje Moduliai dukart spustelėkite modulio Konvertuota makrokomanda – makrokomandos pavadinimą.
„Visual Basic“ rengyklė atidaro modulį.
-
VBA funkcijos pridėjimas prie įvykio ypatybės
Kai konvertuojate visuotinę makrokomandą į VBA, VBA kodas patenka į standartinį modulį. Skirtingai nei klasės modulis, standartinis modulis nėra formos arba ataskaitos dalis. Tikriausiai norėsite susieti funkciją formos, ataskaitos arba valdiklio įvykio ypatybe, kad kodas būtų vykdomas tiksliai ten, kur norite, ir kada norite. Norėdami tai padaryti, galite arba nukopijuoti VBA kodą į klasės modulį, tada jį susieti su įvykio ypatybe, arba įvykio ypatybėje atlikti specialųjį iškvietimą į standartinį modulį naudodami toliau nurodytą procedūrą.
-
„Visual Basic“ rengyklėje pasižymėkite funkcijos pavadinimą. Pavyzdžiui, jei konvertuosite makrokomandą pavadinimu ManoMakrokomanda, funkcijos pavadinimas bus ManoMakrokomanda().
-
Uždarykite „Visual Basic“ rengyklę.
-
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite norimą keisti formą arba ataskaitą, kurią norite susieti su funkcija, tada spustelėkite Dizaino rodinys.
-
Spustelėkite valdiklį arba skyrių, su kuriuo norite susieti funkciją.
-
Jei ypatybių lapas iš karto nerodomas, paspauskite F4 norėdami jį rodyti.
-
Ypatybių lapo skirtuke Įvykis spustelėkite ypatybių lapo lauką, su kuriuo norite susieti funkciją.
-
Ypatybės lauke įveskite lygybės ženklą (=) ir po jo funkcijos pavadinimą, pvz., =ManoMakrokomanda(). Nepamirškite skliaustelių.
-
Įrašykite formą arba ataskaitą sparčiosios prieigos įrankių juostoje paspausdami Įrašyti.
-
Naršymo srityje dukart spustelėkite formą arba ataskaitą ir išbandykite ją, kad sužinotumėte, ar kodas veikia taip, kaip turėtų.
Dabar žinote reikiamus atlikti pagrindinius veiksmus norint įtraukti VBA kodą į duomenų bazę. Šiame straipsnyje aprašomi tik darbo pradžios pagrindai; yra daug puikių informacinių knygų ir internetinių išteklių, kurie jums gali padėti tobulinti programavimo įgūdžius.
Taip pat žr.
Vartotojo sąsajos (UI) makrokomandos kūrimas
"Access" makrokomandos vykdymas naudojant sparčiuosius klavišus
Paleisties įvykių automatizavimas naudojant makrokomandą
Makrokomandos, vykdomos atidarius duomenų bazę, kūrimas