Az új adatbázisok létrehozását általában adatbázis-objektumok, például táblák, űrlapok és jelentések létrehozásával kezdi. Előfordulhat, hogy programozással automatizálnia kell a folyamatokat és összekapcsolhatja ezeket az objektumokat. Ez a cikk az Access programozási eszközeit mutatja be.
Tartalom
- Mi az a programozás?
- Makrókat vagy VBA-kódot használjak?
- Gyakori programozási műveletek elvégzése a Parancsgomb varázslóval
- A makrók működése
- A VBA-kód működése
- Makró konvertálása VBA-kóddá
Mi az a programozás?
Az Accessben a programozás azt jelenti, hogy Access-makrók vagy Visual Basic for Applications- (VBA) kód használatával funkciókkal bővítjük az adatbázist. Létrehozhat például egy űrlapot és egy jelentést, majd hozzáadhat egy parancsgombot az űrlaphoz, amely megnyitja a jelentést, ha kiválasztja azt. Ebben az esetben hozzon létre egy makrót vagy VBA eljárást, majd állítsa be a parancsgomb eseménytulajdonságát OnClick úgy, hogy az lefuttassa a makrót vagy az eljárást. Egyszerű műveletekhez, mint amilyen egy jelentés megnyitása, használhatja a Parancsgomb varázslót, vagy kikapcsolhatja, és saját maga programozhatja azt.
Megjegyzés
Számos Microsoft Office-programban a "makró" kifejezés kódot jelöl VBA . Ez összezavarhatja az Access-felhasználókat, mert az Accessben a "makró" kifejezés névvel ellátott makróműveletekre utal, amelyeket a Makrószerkesztővel állíthat össze. Az Access-makróműveletek csak egy részét képezik a .VBA A Makrószerkesztő rendezettebb felületet biztosít a Visual Basic Editornál, így programozhat vezérlőelemeket és objektumokat anélkül, hogy kódolásra kellene tanulnia VBA . Az Access súgócikkeiben az Access-makrókat makrónak nevezzük.
VBA A kódot kódnak, függvénynek vagy eljárásnak nevezzük VBA .
VBA A kódot osztálymodulokban tárolja – amelyek különálló űrlapok vagy jelentések részét képezik, és általában csak az adott objektumok kódját tartalmazzák, valamint olyan modulokban, amelyek nem kapcsolódnak konkrét objektumokhoz, és amelyek általában a teljes adatbázisban felhasználható globális kódot tartalmaznak.
Az objektumok (például űrlapok és jelentések), valamint a vezérlők, például a parancsgombok és a szövegmezők olyan eseménytulajdonságokkal rendelkeznek, amelyekhez makrókat vagy eljárásokat csatolhat. Minden egyes eseménytulajdonság egy adott eseményhez (például egérkattintáshoz, űrlap megnyitásához, szövegdoboz adatainak módosításához) kapcsolódik. Az eseményeket beindíthatják Access-en kívüli tényezők is, például rendszeresemények vagy más eseményekhez csatolt makrók vagy eljárások. Az adatbázis összetetté válhat, ha sok objektum sok eseménytulajdonságához ad makrókat vagy eljárásokat. A legtöbb esetben azonban minimális programozással is elérheti a kívánt eredményt.
Makrókat vagy VBA-kódot használjak?
Azt, VBAhogy makrókat vagy mindkettőt használja, az elsősorban attól függ, hogyan kívánja felhasználni vagy terjeszteni az adatbázist. Ha például az adatbázist a számítógépén tárolja, és ismeri VBA a kódolást, akkor célszerű lehet ezt VBA használni a legtöbb programozási feladathoz. Ha azonban fájlkiszolgálóról szeretné más felhasználókkal megosztani az adatbázist, biztonsági okokból célszerű kerülni a használatát VBA .
A makrók vagy VBA a kód használata mellett két szempont alapján döntsön: biztonság és a kívánt funkcionalitás. A biztonság azért fontos, mert VBA olyan kód létrehozására használható, amely veszélyezteti az adatokat vagy károsítja a számítógépen tárolt fájlokat. Más által létrehozott adatbázis használata esetén csak akkor engedélyezze a VBA kódot, ha tudja, hogy az adatbázis megbízható forrásból származik. Mások által használt adatbázis létrehozásakor törekedjen olyan programozási eszközök alkalmazására, amelyek megkövetelik, hogy a felhasználó kifejezetten megbízzon az adatbázisban. A követelmény elkerülésére szolgáló általános módszereket a jelen szakasz későbbi részében találja.
Az adatbázis biztonságossá tétele érdekében lehetőség szerint használjon makrókat, és csak olyan műveletekhez használja VBA , amelyek makróműveletekkel nem hajthatók végre. Ezenkívül próbáljon csak olyan makróműveleteket használni, amelyek futtatásához nem szükséges megbízhatónak lennie az adatbázisnak. A makróműveletek ily módon történő korlátozásával a felhasználók biztosak lehetnek abban, hogy az adatbázis nincs olyan programban, amely károsíthatja a számítógépeken tárolt adatokat vagy más fájlokat.
Megfontolandó szempontok makrókhoz
Az Access számos makróműveletet tartalmaz, amelyekkel az Access korábbi verzióinál hatékonyabb makrókat készíthet. Immár létrehozhat és használhat például globális ideiglenes változókat makróműveletekkel, az új hibakezelő makróműveletekkel pedig jóval elegánsabbá válik a hibaelhárítás. Az Access korábbi verzióiban ezek a funkciók csak a következőkben VBAvoltak elérhetők. Egy makrót közvetlenül egy objektum vagy vezérlő eseménytulajdonságába is beágyazhat. A beágyazott makró az objektum vagy vezérlőelem részévé válik, és az objektum vagy vezérlőelem mozgatásakor vagy másolása során is megmarad.
A makrókkal egyszerűen végezhető el számos programozási feladat, például az űrlapok megnyitása és bezárása vagy a jelentések futtatása. A létrehozott adatbázis-objektumokat (például űrlapokat és jelentéseket) gyorsan egymáshoz kötheti, mert kevés szintaxist kell megjegyezni. Az egyes műveletek argumentumai megjelennek a Makrószerkesztőben.
Amellett, hogy nagyobb biztonságot és jobb használhatóságot jelentenek, a makrókat kell használni ezen feladatok létrehozásához:
Műveletek hozzárendelése billentyűparancshoz. Ehhez létre kell hozni egy .
AutoKeysMűveletek végrehajtása adatbázis első megnyitásakor. Ehhez a .
AutoExecMegjegyzés
A
AutoExecmakró minden más makró vagyVBAkód előtt fut, még akkor is, ha Az Access beállításai párbeszédpanelen kijelölt egy indítási űrlapot, és az űrlaphozOnOpenvagyOnLoadeseményhez makrót vagyVBAkódot csatolt.
A makrók készítésével kapcsolatos további információkért lásd : A makrók működése.
Megfontolandó szempontok VBA-hoz
Makrók helyett akkor használható VBA , ha az alábbi műveletek valamelyikét szeretné elvégezni:
- Használjon beépített függvényeket, vagy hozzon létre sajátokat. Az Access számos beépített függvényt tartalmaz, például a
IPmt, amely kamatot számít ki. Ezekkel a függvényekkel számításokat végezhet anélkül, hogy bonyolult kifejezéseket hozna létre.VBAA segítségével saját függvényeket is létrehozhat, amelyekkel a kifejezések képességein túlmutató számításokat végezhet, vagy bonyolult kifejezéseket helyettesíthet. A kifejezésekben létrehozott függvényeket emellett arra is használhatja, hogy gyakori műveleteket több objektumban is alkalmazzon. - Objektumok létrehozása vagy kezelése A legtöbb esetben legegyszerűbb objektumot létrehozni vagy módosítani az adott objektum Tervező nézetében. Bizonyos esetekben azonban az objektumkód definícióját célszerű módosítani.
VBAA használatával módosíthatja az adatbázis összes objektumát, valamint magát az adatbázist is. - Rendszerszintű műveletek végrehajtása. A
RunAppmakróműveletet végrehajtva futtathat egy másik programot (például a Microsoft Excelt) az Accessből, de makrókkal nem sok mindent kezdhet az Accessen kívül.VBAA segítségével ellenőrizheti, hogy egy adott fájl megtalálható-e a számítógépen; az Automation vagy a Dynamic Data Exchange (DDE) segítségével kommunikálhat más Microsoft Windows-alapú programokkal, például az Excellel, és függvényeket hívhat meg dinamikus csatolású függvénytárakban ().DLLs - A rekordok módosítása egyenként Segítségével
VBArekordonként lépegethet egy rekordhalmazban, és minden rekordon elvégezhet egy műveletet. Ezzel szemben a makrók egyszerre teljes rekordhalmazokkal dolgoznak.
Gyakori programozási műveletek elvégzése a Parancsgomb varázslóval
Ha parancsgombot ad egy űrlaphoz, a Parancsgomb varázsló segít a programozás alaplépéseiben. A varázsló segítségével létrehozhat egy adott feladatot végrehajtó parancsgombot. Access- (.accdb) fájlokban a varázsló létrehoz egy makrót, amely a parancsgomb tulajdonságába van beágyazva OnClick . Az .mdb or .adp fájlban a varázsló azért hoz létre VBA kódot, mert a beágyazott makrók nem érhetők el ezekben a fájlformátumokban. A makró és VBA kód egyaránt módosítható és bővíthető az igényeinek megfelelően.
Kattintson a jobb gombbal a navigációs ablakban arra az űrlapra, amelyhez parancsgombot szeretne hozzáadni, majd kattintson a Tervező nézet parancsra.
Az Űrlaptervezés lapon a lefelé mutató nyílra kattintva jelenítse meg a Vezérlők gyűjteményt, és győződjön meg arról, hogy a Vezérlőelem varázslók használata jelölőnégyzet be van jelölve.
Az Űrlaptervezés lap Vezérlők gyűjteményében kattintson a Gomb gombra.
Az űrlaptervezési rácson kattintson a parancsgomb kívánt helyére. Elindul a Parancsgomb varázsló.
A varázsló első lapján a Kategóriák listában található elemeken végigkattintva láthatja, mely műveletek végrehajtását képes a varázsló a parancsgombhoz programozni. A Műveletek listában válassza ki a kívánt műveletet, és kattintson a Tovább gombra.
Kattintson a Szöveg vagy a Kép lehetőségre attól függően, hogy a parancsgombon szöveget vagy képet szeretne látni.
- Ha szöveget jelenítene meg, azt a Szöveg lehetőség melletti mezőben szerkesztheti.
- Ha képet szeretne megjeleníteni, a varázsló ajánl egy képet a listából. Ha másik képet szeretne, jelölje be Az összes kép megjelenítése jelölőnégyzetet az Accessben elérhető összes parancsgombkép megjelenítéséhez, vagy a Tallózás lehetőségre kattintva válasszon máshol tárolt képet. Kattintson a Tovább gombra.
Adjon meg egy leíró jellegű nevet a parancsgombhoz. Ez a lépés nem kötelező, és ez a név nem jelenik meg a parancsgombon. Érdemes azonban megadni egy értelmes nevet, mert ha később hivatkoznia kell erre a parancsgombra, például amikor a vezérlőelemek bejárási sorrendjét állítja be az űrlapon, könnyebben megkülönböztethetők lesznek a parancsgombok. Ha a parancsgomb bezárja az űrlapot, akkor például elnevezheti vagy
cmdClose.CommandCloseKattintson a Befejezés gombra. Az Access elhelyezi a parancsgombot az űrlapon.
Ha meg szeretné tekinteni, mit programozott a varázsló, kövesse ezeket az opcionális lépéseket:
Ha a tulajdonságlap még nem látható, jelenítse meg az F4 billentyű lenyomásával.
A tulajdonságlapon kattintson az Esemény fülre.
A Kattintásra tulajdonságmezőben kattintson az Összeállítás gombra.
Az Access elindítja a Makrószerkesztőt, és megjeleníti a varázslóval létrehozott makrót. A makró igény szerint módosítható. További információt A makrók működése című témakörben talál. Ha végzett, a Makrószerkesztő bezárásához kattintson a Makrótervezés lap Bezárás csoportjának Bezárás gombjára. Ha az Access megkérdezi, hogy mentse-e a módosításokat, és frissítse-e a tulajdonságot, az Igen lehetőségre kattintva mentheti a változtatásokat, a Nem elemre kattintva pedig elvetheti őket.
Az Űrlaptervezés lap Nézetek csoportjában kattintson a Nézet, majd az Űrlapnézet elemre. Az új parancsgombra kattintva erősítse meg, hogy a várt módon működik.
A makrók működése
A makrók olyan eszközök, amelyekkel automatizálhatók a feladatok, és funkcionalitás adható űrlapoknak, jelentéseknek és vezérlőelemeknek. Ha például parancsgombot ad egy űrlaphoz, a gomb OnClick eseménytulajdonságát társíthatja egy makróhoz, amely a gomb minden kijelölésekor végrehajtandó parancsokat tartalmazza.
Gondoljon úgy az Access-makrókra, mint egyszerűsített programnyelvre, amelyben végrehajtandó műveletek listáját építve hoz létre kódot. Amikor makrót készít, akkor minden egyes műveletet egy legördülő menüből választ ki, majd megadja az egyes műveletek egyéb szükséges adatait. A makrókkal funkcionalitás adható űrlapoknak, jelentéseknek és vezérlőelemeknek anélkül, hogy modulban írna kódot VBA . A makrók az elérhető parancsoknak csak egy részét alkotják VBA, és makrót készíteni jellemzően egyszerűbb, mint kódot írni VBA .
Makrót a Makrószerkesztővel lehet készíteni, amit az alábbi ábrán mutatunk be.
A Makrószerkesztő megjelenítése:
- Kattintson a Létrehozás lap Makrók és kódok csoportjában a Makró gombra.
A VBA-kód működése
A makrókhoz VBA hasonlóan többek között automatizálási és egyéb funkciókat is nyújthat az Access alkalmazásban. Külső felektől származó vezérlőkkel bővítheti VBA , de konkrét igényeknek megfelelően saját függvényeket és eljárásokat is írhat.
Gyorsan elkezdheti VBA , ha először létrehoz egy Access-makrót, majd kóddá VBA alakítja. Ennek lépéseit a Makrók konvertálása VBA-kóddá című témakör tartalmazza. Ez a funkció egy új VBA modult hoz létre, amely a makróban szereplő műveletekkel egyenértékű műveleteket hajt végre. Megnyílik továbbá a Visual Basic Editor is, így szerkesztheti az eljárást. A Visual Basic Editorban végzett munka közben kattintson a kulcsszavakra, majd az F1 billentyűt lenyomva indítsa el az Access fejlesztői súgóját, ahol további információkhoz juthat az egyes kulcsszavakról. Az Access fejlesztői súgóját böngészve új parancsokat találhat, amelyek segítenek a tervezett programozási feladatok végrehajtásában.
Makró konvertálása VBA-kóddá
Az Access segítségével automatikusan modulokká vagy osztálymodulokká VBA konvertálhatja a makrókat. Űrlapokhoz vagy jelentésekhez kapcsolt makrókat is konvertálhat attól függetlenül, hogy ezen makrók különálló objektumok vagy beágyazottak. Olyan globális makrókat is konvertálhat, amelyek nincsenek űrlapokhoz vagy jelentésekhez csatolva.
Űrlapokhoz vagy jelentésekhez csatolt makrók konvertálása
A folyamat során a program bármilyen makróvá alakul, VBA amelyre űrlap vagy jelentés hivatkozik, vagy amely ebbe van ágyazva, a kódot pedig hozzáadja VBA az űrlap vagy jelentés osztálymoduljához. A osztálymodul az űrlap vagy jelentés része marad még áthelyezés vagy másolás során is.
A navigációs ablakban kattintson a jobb gombbal az űrlapra vagy jelentésre, majd válassza a Tervező nézet parancsot.
Az Űrlaptervezés lap Eszközök csoportjában kattintson az Űrlap makróinak konvertálása Visual Basicbe vagy a Jelentés makróinak konvertálása Visual Basicbe lehetőségre.
Az Űrlapmakrók konvertálása vagy a Jelentésmakrók konvertálása párbeszédpanelen adja meg, hogy az Access hibakezelő kódot adjon-e a generált függvényekhez. Ha a makrók megjegyzéseket is tartalmaznak, azt is kiválaszthatja, hogy szeretné-e ezeket a megjegyzéseket is szerepeltetni a függvényekben. Kattintson a Konvertálás elemre. Ha az űrlaphoz vagy jelentéshez nem tartozik osztálymodul, akkor az Access létrehoz egyet, és minden olyan makróhoz, amely az űrlaphoz vagy jelentéshez lett társítva, felvesz egy eljárást a modulban. Az Access úgy módosítja az űrlap vagy jelentés eseménytulajdonságait, hogy a jövőben a makrók helyett az új
VBAeljárásokat futtassák.A kód megtekintése és szerkesztése
VBA:Miközben az űrlap vagy jelentés meg van nyitva Tervező nézetben, ha a tulajdonságlap még nem látható, jelenítse meg az F4 billentyű lenyomásával.
A tulajdonságlap Esemény lapján kattintson bármelyik tulajdonságmezőbe, amely megjeleníti
[Event Procedure]a , majd kattintson az Összeállítás gombra. Ha meg szeretné tekinteni adott vezérlőelem eseménytulajdonságait, kattintással jelölje ki a vezérlőt. Ha a teljes űrlap vagy jelentés eseménytulajdonságait szeretné látni, válassza az Űrlap vagy a Jelentés elemet a tulajdonság lap tetején található legördülő menüből.
Az Access megnyitja a Visual Basic Editort, és megjeleníti az eseménytulajdonságot annak osztálymoduljában. Felfelé vagy lefelé görgetve megtekintheti az adott osztálymodul egyéb eljárásait is.
Globális makrók konvertálása
Kattintson a jobb gombbal a navigációs ablakban a konvertálni kívánt makróra, majd kattintson a Tervező nézet parancsra.
Kattintson a Makrótervezés lap Eszközök csoportjában a Makrók konvertálása Visual Basic formátumba.
A Makró konvertálása párbeszédpanelben adja meg a kívánt beállításokat, majd kattintson a Konvertálás parancsra. Az Access konvertálja a makrót, és megnyitja a Visual Basic Editor alkalmazást.
A kód megtekintése és szerkesztése
VBA:- A Visual Basic Editorban – ha a Projektböngésző ablak nincs nyitva – kattintson a Nézet menü Projektböngésző elemére.
- Bontsa ki a fát azon adatbázis neve alatt, amelyben dolgozik.
- A Modulok területen kattintson duplán a
Converted Macro-<macro name>modulra. A Visual Basic Editor megnyitja a modult.
VBA-függvény csatolása eseménytulajdonsághoz
Ha egy globális makrót VBAkonvertál , a VBA kód egy normál modulba kerül. Az osztálymodulokkal ellentétben a normál modulok nem képezik űrlapok vagy jelentések részét. Vélhetően azért szeretne függvényt űrlap, jelentés vagy vezérlőelem eseménytulajdonságával társítani, hogy a kód pontosan akkor és ott fusson, ahol Ön szeretné. Ehhez a kódot bemásolhatja egy VBA osztálymodulba, majd társíthatja egy eseménytulajdonsággal, vagy az alábbi eljárással speciális hívást hajthat végre az eseménytulajdonságból a normál modulba.
- A Visual Basic Editorban jegyezze fel a függvény nevét. Ha például a makrót
MyMacroalakította át, a függvény neve a következő:MyMacro(). - Zárja be a Visual Basic Editort.
- Kattintson a jobb gombbal a navigációs ablakban arra az űrlapra vagy jelentésre, amellyel társítani szeretné a függvényt, és válassza a Tervező nézet parancsot.
- Kattintson arra a vezérlőelemre vagy területre, amellyel társítani szeretné a függvényt.
- Ha a tulajdonságlap még nem látható, jelenítse meg az F4 billentyű lenyomásával.
- A tulajdonságlap Esemény lapján kattintson arra az eseménytulajdonság-mezőre, amellyel társítani szeretné a függvényt.
- A tulajdonságmezőbe írjon be egy egyenlőségjelet (
=), majd a függvény nevét – például:=MyMacro(). Ne feledje belefoglalni a zárójeleket. - A Gyorselérési eszköztár Mentés elemére kattintva mentse az űrlapot vagy jelentést.
- A navigációs ablakban kattintson duplán az űrlapra vagy jelentésre, és tesztelje, hogy megfelelően fut-e a kód.
Ezzel megtanulta azokat az alapvető lépéseket, amelyekkel kódot adhat VBA adatbázisához. Ez a cikk csupán az alapismereteket foglalja magában az első lépések megtételéhez. Számos kiváló könyv és online forrás segítheti programozói tudásának fejlesztésében.
Lásd még
Felhasználóifelület-makró létrehozása
Access-makrók futtatása billentyűparancsokkal
Indítási események automatizálása makróval
Az adatbázis megnyitásakor futtatandó makró létrehozása