Informatika | Adatbázisok » Barhács - Access alkalmazásfejlesztés jegyzet

Alapadatok

Év, oldalszám:2002, 161 oldal

Nyelv:magyar

Letöltések száma:2194

Feltöltve:2005. március 30.

Méret:2 MB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

Ms-Access alkalmazásfejlesztés jegyzet Barhács Oktatóközpont 2002. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Az alkalmazásfejlesztés alapjai A Microsoft Access sokrétű irodai fejlesztőeszköz. Alkalmas kisebb irodai adatbázisok, és nagyobb, többfelhasználós adatbázis-alapú alkalmazások létrehozására is. Jegyzetünk ez utóbbi fejlesztésének alapjaival kívánja megismertetni a hallgatókat. Mi a Microsoft Access alkalmazás? Az adatbázisokkal adatokat kezelhetünk, például tároljuk, visszakeressük és elemezzük azokat. A Microsoft Access alkalmazások ugyanolyan objektumokból állnak, mint a Microsoft Access adatbázisok, azaz táblákból, jelentésekből, űrlapokból, lekérdezésekből, makrókból és modulokból. Az objektumok tárolása egy vagy több adatbázis állományban történik. Az alkalmazást az adatbázistól az különbözteti meg, hogy az alkalmazásban az objektumok összefüggő rendszerbe vannak kapcsolva. Az

alkalmazás a kapcsolódó feladatokat úgy szervezi, hogy a felhasználó az éppen végzett munkára összpontosítson, és ne kelljen az alkalmazás vagy az alkalmazás fejlesztéséhez használt program működésére figyelnie. Egy Microsoft Access alkalmazás kulcsfontosságú részeit objektumai, az objektumok tulajdonságai, valamint az űrlapokon bekövetkező események képezik. Az alkalmazás működésére az alábbiak jellemzők: - Az alkalmazás a felhasználó által látható (vagy rejtett) és használható objektumokból épül fel. - Az objektumok megjelenését és viselkedését a kívánalmainknak megfelelően a tulajdonságokon keresztül állíthatjuk be. - Az alkalmazásban az űrlapok (melyek a felhasználói felület alapját képezik) automatikusan reagálnak az űrlapokon bekövetkezett eseményekre. - Az eseményvezérelt eljárások egy Microsoft Access alkalmazásban egyediek, az adott alkalmazás azon pontján elérendő hatáshoz kötődnek.

Adatbázis alkalmazásokat létrehozhatunk az Adatbázis Varázsló használatával, vagy önállóan is. Ez utóbbi esetben az alkalmazás létrehozásának lépései a következők: 1. Az alkalmazás szerepének, céljának, az abban tárolt adatok körének meghatározása. 2. Felhasználói felület tervezés 3. Táblák, kapcsolatok, mezők megtervezése 4. A legfontosabb lekérdezések meghatározása és megtervezése 5. Felhasználói felület létrehozása: - Legfontosabb űrlapok (törzsek) elkészítése. - További űrlapok megtervezése. - Űrlapobjektumok tulajdonságainak és eseményeinek beállítása. - Makrók létrehozása, melyek eseményekre reagálnak. - Gyakran használt eseményvezérelt eljárások modulokba gyűjtése. - Űrlapok összekapcsolása. - Jelentések elkészítése. Adataink eléréshez és alkalmazásunk fejlesztéséhez több különböző, előre beépített lehetőséget használhatunk. Ezek: az ODBC, a DAO és a Ms-Access objektumok 2.

Barhács OktatóKözpont Ms-Access modul - 1. fejezet Az ODBC (Open Database Connectivity) Manapság már igen sok szoftvergyártó elkészítette saját adatbázis-kezelő rendszerét. Ez egyben azt is jelenti, hogy megnehezedett azoknak a feladata akik a programjukból akarnak adatbázist használni, netán több adatbázis fajtát is egyszerre, hiszen minden adatbázis típushoz ki kellene nyomozni a pontos formátumát, netán telepíteni annak kezelőprogramját. Ezt a munkát megkönnyítendő a Microsoft elkészítette az ún. nyitott adatbázis-kapcsolat (ODBC) szabványát A különböző fejlesztőrendszerekből az adatbázisokat az ODBC-n keresztül nagy biztonsággal érhetjük el, tény azonban, hogy az adatbázis-specifikus függvényhívásokkal, nagy adatbázisok esetén jobb teljesítményt érhetünk el. Hogy ODBC-n keresztül elérjük az adott adatbázist ahhoz rendelkezésre kell, hogy álljon az adott adatbázis ODBC meghajtója. Az ODBC működése: Meghajtó

Adatforrás Alkalmazás ODBC Interfész Meghajtó kezelő Meghajtó Adatforrás Meghajtó Adatforrás Az ODBC felépítésében öt szintet különböztetünk meg. A legfelső - ötödik - szinten az alkalmazások helyezkednek el, melyek a negyedik szinten lévő ODBC interfészeken keresztül érik el a harmadik szintet. Itt a meghajtókat (vezérlőket) kezelő program foglal helyet. Ennek feladata a második szinten helyet foglaló (az egyes adatbázis-típusoknak megfelelő) vezérlők kezelése. Természetesen ahhoz, hogy egy adatbázist kezelni tudjunk ODBC-n keresztül rendelkezésre kell hogy álljon az adott adatbázis ODBC alá installált meghajtója. 3. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Az ODBC kezelését a Vezérlőpulton lévő Felügyeleti eszközök/ODBC Data Source (ODBC Adatforrások) ikon kiválasztásával tudjuk elvégezni. Itt a Drivers (Illesztőprogramok) fülön tudunk hozzáadni ill. eltávolítani ODBC vezérlőket Ahhoz hogy

hozzáférhessünk egy adatforráshoz, meg kell osztani azt. Ha azt akarjuk, hogy ne csak egy személy, hanem egy folyamat is hozzáférhessen, akkor a System DSN (Rendszer DSN) fület kell választani (a másik lehetőség a User/Felhasználói DSN, de ez csak személyes hozzáférést tesz lehetővé). Itt az Add (Hozzáadás) gombra kattintva tudjuk elvégezni az adott adatbázis megosztását, a Remove (Eltávolítás) gombra kattintva megszüntethetünk egy már létező megosztást, míg a Configure (Beállítások) gombbal megosztott adatbázisok speciális beállítási lehetőségeit tehetjük meg. Az Add (Hozzáadás) gombra kattintva először ki kell választanunk a megosztandó adatbázis típusát, majd meg kell adnunk egy megosztási nevet (Data Source Name), amihez leírást is fűzhetünk (Description). 4. Barhács OktatóKözpont Ms-Access modul - 1. fejezet A Select gombbal választhatjuk ki tallózásos módszerrel magát az adatbázist, a Create-tel

létrehozhatunk egy újat, a Repair a helyreállításban segít a Compact pedig tömöríti a megadott adatbázist. Az Advanced gombra kattintva adhatjuk meg a hozzáféréshez használt felhasználói nevet és jelszót (természetesen ezt az adatbázisban adminisztrálnunk kell). Ha adatbázis tárolja a rendszeradatokat, azt is megadhatjuk, valamint a hozzáférés típusát, a pufferelést stb. Ha mindent beállítottunk már használhatjuk is az adatbázis-elérésünket bármilyen külső programkörnyezetből (Delphi, Java, Webes scriptnyelvek). A DAO (Data Access Objects) A Microsoft Access a Microsoft Jet adatbázis-motort használja az adatbázisban lévő adatok tárolásához, visszakereséséhez és manipulálásához. A Microsoft Jet adatbázis-motor más adatelérési rendszerek, például a Microsoft Access és a Visual Basic adatkezelő összetevőjeként fogható fel, mely a DAO-t használja a programokkal történő kapcsolattartásban. A DAO (Data Access Objects -

adatelérési objektumok) lehetővé teszi egy programozási nyelv használatát a helyi vagy távoli adatbázis adataihoz történő hozzáféréshez, valamint az adatbázis és annak objektumai és szerkezete kezelésére. Olyan programozási felületet nyújt, melyen keresztül könnyedén elérhetőek, lekérdezhetőek vagy manipulálhatóak az adatok. A DAO szabványt támogató összes adatbázist (ilyen a Microsoft Access is) ugyanolyan módon tudjuk elérni és felhasználni a programunkban: a DAO által definiált objektumokon és az objektumokat csoportba foglaló gyűjteményeken keresztül. A DAO két különböző adatbázis-környezetet vagy "munkaterületet" támogat: - A Microsoft Jet munkaterületet az adatokhoz történő hozzáférést a Microsoft Jet adatbázisokban, Microsoft Jet kapcsolt ODBC adatbázisokban és telepíthető adatforrásokban más, így Paradox vagy Lotus 1-2-3 formátumokban is lehetővé teszi. - Az ODBCDirect munkaterületet az

adatbázis kiszolgálókhoz ODBC-n keresztül történő hozzáférést a Microsoft Jet adatbázis-motor betöltése nélkül is lehetővé teszi. A Microsoft Jet munkaterület akkor használható, amikor egy Microsoft Jet adatbázist (.mdb fájlt) nyitunk meg, vagy amikor a Microsoft Jet olyan egyedülálló jellemzőit kívánjuk kihasználni, mint a különböző adatbázis formátumok összekapcsolásának képessége. A ODBCDirect munkaterület választási lehetőséget ad, amikor csak egy háttérkiszolgálót (mint a Microsoft SQL Server) érintő lekérdezést vagy mentett eljárásokat kell végrehajtani, vagy amikor az ügyfél alkalmazásnak az ODBC olyan képességeire van szüksége, mint a kötegelt frissítés vagy aszinkron lekérdezés végrehajtása. 5. Barhács OktatóKözpont Ms-Access modul - 1. fejezet A DAO objektumok keretet biztosítanak az adatbázis rendszer elemeinek programkód használatával történő létrehozására és kezelésére. Az

objektumoknak az adatbázis-összetevők jellemzőit leíró tulajdonságai és azok kezelésére használható metódusai vannak. Ezek az objektumok együttesen az adatbázisszerkezet hierarchikus modelljét alkotják, amelyet a programon keresztül vezérelhetünk. A DBEngine kivételével minden egyes DAO objektumtípusnak egy megfelelő gyűjteménye is van. A gyűjtemény az adott típusú összes létező objektumot magában foglalja. Például, a Recordsets gyűjtemény az összes nyitott Recordset objektumot tartalmazza. Minden egyes gyűjteménynek a hierarchia következő magasabb szintjén lévő más objektumok a "tulajdonosai", így például egy Database objektum egy Recordsets gyűjtemény "tulajdona". A Connection és Error objektumok kivételével mindegyik DAO objektumnak van Properties gyűjteménye. Legtöbb DAO objektumnak alapértelmezett gyűjteményei és tulajdonságai vannak. Például, a Recordset objektum alapértelmezett gyűjteménye

egy Fields gyűjtemény, és a Field objektum alapértelmezett tulajdonság a Value tulajdonság. Ezen alapértelmezettségek kihasználásával a programkód egyszerűsíthető. Az objektumok és gyűjtemények különböző tartalmazási kapcsolattípusokat tartalmazhatnak: nulla vagy több különböző típusba tartozó gyűjteményt tartalmazó objektumokat, és nulla vagy több ugyanazon típusba tartozó objektumot tartalmazó gyűjteményeket. Noha az objektumok és gyűjtemények hasonló képződmények, ez a megkülönböztetés elválasztja a kapcsolatok eme két típusát. DAO objektumhierarchia DBEngine Errors Connections QueryDefs TableDefs Fields Indexes WorkSpaces Databases RcordSets QueryDefs Fields Parameters Fields 6. Users Groups Groups Users RecordSets Relations Containers Fields Fields Documents Barhács OktatóKözpont Gyűjtemény Connections Objektum Connection Containers Container Databases Semmi Documents Database DBEngine Document

Errors Error Fields Field Groups Group Indexes Index Parameters Properties QueryDefs Recordsets Relations Parameter Property QueryDef Recordset Relation TableDefs TableDef Users User Workspaces Workspace Ms-Access modul - 1. fejezet Leírás ODBC adatforrás-kapcsolatra vonatkozó információ. Csak ODBCDirect munkaterületen érvényes. Egy előre megadott objektumtípusra vonatkozó információt tárol. Csak Microsoft Jet munkaterületen érvényes. Nyitott adatbázis. A Microsoft Jet adatbázis-motor. Egy mentett, előre megadott objektumra vonatkozó információ. Csak Microsoft Jet munkaterületen érvényes. Ezzel az objektummal kapcsolatos bármely hibára vonatkozó információ. Egy oszlop, amely egy tábla, lekérdezés, index, kapcsolat vagy rekordhalmaz része. Felhasználói fiókok egy csoportja. Csak Microsoft Jet munkaterületen érvényes. Értékek táblában előre definiált sorrendjét és egyediségét adja meg. Csak Microsoft Jet munkaterületen

érvényes. Paraméter egy paraméteres lekérdezéshez. Beépített vagy felhasználó által definiált tulajdonság. Mentett lekérdezésdefiníció. Alaptábla vagy lekérdezés rekordja. Táblák és lekérdezések mezői közötti kapcsolat. Csak Microsoft Jet munkaterületen érvényes. Mentett tábladefiníció. Csak Microsoft Jet munkaterületen érvényes. Felhasználói fiók. Csak Microsoft Jet munkaterületen érvényes. A Microsoft Jet adatbázis-motor munkaszakasza. A munkaszakasz a Microsoft Jet adatbázis-motor által végrehajtott műveletek egymás után következő sorozatát fogja össze. 7. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Microsoft Access objektumok A Microsoft Access objektumtárának néhány objektumát már jól ismerjük. A Microsoft Access Form, Report ill. Control objektumai rendre megfelelnek az űrlap, jelentés ill vezérlőelem objektumoknak, melyekkel már találkoztunk az adatbázis-kezelés tanulmányozása során.

Ezekkel az objektumokkal az adatbázisban tárolt adatok megjelenítését, míg más objektumokkal a Visual Basic programozási nyelv lehetőségeinek kiterjesztését érhetjük el. Microsoft Access objektumhierarchia Application References Forms Controls Objektum Application References Forms Modules Reports DoCmd Screen Controls Module Modules Reports Controls DoCmd Screen Module Leírás Az Application objektum az aktív Microsoft Access alkalmazásra utal. A References gyűjtemény olyan objektumokat tartalmaz, amelyek az aktuálisan beállított hivatkozásokat jelölik. A Forms gyűjtemény tartalmazza egy Microsoft Access adatbázisban éppen megnyitott összes űrlapot. A Modules gyűjtemény tartalmazza az összes olyan megnyitott normál modult és osztálymodult, amelyek egy Microsoft Access adatbázisban vannak. A Reports gyűjtemény tartalmazza egy Microsoft Access adatbázisban éppen megnyitott összes jelentést. A DoCmd objektum metódusaival Microsoft

Access műveleteket futtathatunk Visual Basicből. Ezek a műveletek fontos feladatokat látnak el, mint amilyen az ablakok bezárása, űrlapok megnyitása és értékek beállítása a vezérlőelemek számára. A Screen objektum a fókuszban lévő űrlapra, jelentésre vagy vezérlőelemre hivatkozik. A Controls gyűjtemény a lekérdezésben, űrlapon vagy szakaszban lévő, illetve a másik vezérlőelemen belüli vagy másik vezérlőelemhez csatolt vezérlőelemeket tartalmazza. 8. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Microsoft Office Developer Edition (ODE) Microsoft Office alkalmazások létrehozásánál a legnagyobb probléma, hogy a fejlesztéshez nem rendelkezünk elegendő támogatással. Erre nyújt megoldást az ODE, a Microsoft Office fejlesztői változata. A Microsoft Office Developer Edition (ODE - Microsoft Office fejlesztői változat) olyan eszközöket tartalmaz, amelyek segítségével a fejlesztők egyéni, új alkalmazásokat

hozhatnak létre, és terjeszthetik azokat. Az ODE a következőket tartalmazza: - Microsoft Office Professional Edition CD - Microsoft Office Developer Edition Tools CD Az ODE tartalma: - Egy szerzői díj mentes terjesztési engedély, valamint olyan eszközök (beleértve a Microsoft Graph alkalmazást), amelyek az egyéni Microsoft Office alkalmazások másolatainak a felhasználók közötti terjesztését teszik lehetővé. - Egy továbbfejlesztett Telepítő Varázsló, melynek segítségével automatikusan hozhatunk létre lemezeket, illetve tömöríthetünk fájlokat az alkalmazás terjesztése érdekében. Készíthetünk például olyan Microsoft Access alkalmazást, melynek használatához a felhasználói gépen nem szükséges a Microsoft Access jelenléte. Ebben az esetben a Telepítő Varázsló az alkalmazásba elhelyezi a Microsoft Access ún. "runtime" változatát, mely tartalmazza a Microsoft Jet adatbázismotort és az alkalmazás használatához

szükséges futtatókörnyezetet. Így - bár a Microsoft Access adatbázis alkalmazásunkból nem készíthetünk önállón futó (.exe kiterjesztésű) állományt - a kifejlesztett alkalmazást azok is felhasználhatják, akik nem használják a Microsoft Access-t mert pl. a Microsoft Office standard változatával rendelkeznek. - A Kópiakezelő program egy új verziója, melynek segítségével meghatározható, hogy az adatbázis mely objektumairól készült kópia. Megtekinthető egy készlet összes kópiája, és lehetővé teszi egyszerre több kópiakészlet kezelését. - A Microsoft Access Source Code Control összetevő többfejlesztős környezetre. - ActiveX vezérlőelemek, amelyek segítségével sokoldalúbbá tehetjük alkalmazásainkat, és megsokszorozhatjuk a Microsoft Windows lehetőségeit, beleértve az Internet alkalmazásokhoz kapcsolódó vezérlőelemeket is. - Windows API Viewer, amely a Windows API (alkalmazásprogramozási felület) által használt

meghatározásokat és állandókat tartalmaz. Lemásolhatjuk, majd azután beilleszthetjük ezeket a meghatározásokat és állandókat a Visual Basic modulokba. - Windows Help Workshop, melynek segítségével Súgót készíthetünk az alkalmazásokhoz. - Microsoft Office Developer Sampler, a Microsoft Developers Network Office-hoz kapcsolódó tartalma. - Nyomtatott dokumentáció: - Microsoft Office/Visual Basic Programmers Guide - Building Applications with Microsoft Access 9. Barhács OktatóKözpont Ms-Access modul - 1. fejezet A Számítógépbolt adatbázis Alkalmazásfejlesztési példánkban egy számítástechnikai alkatrészeket forgalmazó kiskereskedés raktárkészlet nyilvántartó és számlázó programját fogjuk elkészíteni a Microsoft Access segítségével. Olyan felhasználóbarát, könnyen kezelhető és hatékony alkalmazás elkészítése a cél, amely alkalmas mindazon feladatok ellátására, melyek egy ilyen helyen előfordulhatnak. Fontos,

hogy már a tervezés és kivitelezés fázisai során, felfedjük a valós felhasználói információs igényeket és a lehető legjobb válaszokat találjuk meg ezekre. Nézzük meg tehát, hogy milyen követelményeknek kell eleget tenni egy ilyen típusú adatbázis alkalmazásnak: - Tartsa nyilván az: - ügyfeleket - szállítókat - eladókat - gyártókat - Nyomon lehessen követni az alkatrész raktárkészlet csökkenést. - Tartsa nyilván a számlákat. - Biztosítsa a számla sztornózásának lehetőségét. - Számla visszakereshetőségének biztosítása (későbbi reklamációkhoz, vagy sztornóhoz) - számlaszámhoz kapcsolódóan. - A raktárkészlet változtatása - eladás esetén az eladott darabszám automatikus levonása a raktárkészletből, - sztornó esetén, a visszahozott áru, a megfelelő darabszámmal jóváíródjon a raktárkészletben. - Akciók: - egy számlához több áru is tartozhat, - számla esetén csak a vásárló számlájának

nyomtatása, - automatikus rendelés a kifogyóban lévő áruféleségekből. Fontos az ilyen típusú alkalmazásoknál, hogy betartsuk a Windows által meghatározott szabályokat, ismerős (szabványos) felületet készítsünk. Az adatbázis alkalmazás kialakításánál arra törekszünk, hogy a felhasználói interakciókat megkönnyítsük, listákkal, automatikus értékmegadásokkal gyorsíthatjuk (és ellenőrzésünk alatt tarthatjuk) az adatbevitelt. A szabványos felület kialakítása azzal az előnnyel kecsegtet, hogy a felhasználónak az alkalmazás kezelését nem, csak a belső logikáját kell megtanulni. Így kevesebb erőfeszítéssel sajátíthatja el az adatbázis alkalmazás használatát, kevesebb ismeretlen problémával találkozik. A "felhasználóbarát" program kialakítása azt is jelenti, hogy a program könnyen birtokba vehető. 10. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Táblák - - - - Raktárkészlet: Az

alkatrész nyilvántartás alapját képező tábla. Itt tároljuk az alkatrészek adatait, ill. ehhez a táblához kapcsolódnak azok az egyedtípusok, melyeknek adatai az alkatrészekre vonatkoznak. Számlák: A számlák nyilvántartására szolgál. Háromféle számlát különböztetünk meg a raktárkészlet nyilvántartó programunkban: - Áru számla: az eladás rögzítésére szolgál. - Sztornózott számla: olyan áru számla, melyet visszavontak (sztornóztak). - Sztornó (ún. "ellen") számla: célja, hogy a lesztornózott számlák értéke ne maradjon az adatbázisban, mint bevétel, éppen ezért a sztornózott áru számla értékét tartalmazza negatív előjellel. Számlák részletei: Kapcsolótábla a Raktárkészlet és a Számla táblák között. Ebben az egyedtípusban tudjuk tárolni, hogy az egyes számlákhoz milyen és hány darab alkatrész tartozik. Gyártók, Szállítók, Alkatrész típusa: Segédadatokat tartalmaz az alkatrész

nyilvántartáshoz. Eladók, Vevők: A számlához kapcsolódóan tartalmazza az eladók ill. a vevők adatait. A példaadatbázis viszonylag kevés táblát tartalmaz, ám ne tévesszen meg senkit. A jó adatbázis mindig megfelelő számú egyedtípust tartalmaz, se többet, se kevesebbet. Az alkalmazásunk igazi értékét az a felhasználói felület adja majd, mely megkönnyíti az adatok visszakeresését és manipulálását. 11. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Kapcsolatok Alkatrész típusok Alkatrész típusok Eladók Gyártók Raktár készlet Szállítók Számlák Vevők részletei 1:N 1:N Eladók Gyártók Számlák 1:N Raktár készlet N:1 1:N Szállítók 1:N Számlák N:1 Számlák részlete Vevők - - - - Alkatrész típusok - Raktár készlet: Egy-sok kapcsolat, mivel egy alkatrésztípusba több alkatrész is tartozhat, de egy alkatrész csak egy típusba sorolható. Gyártók - Raktár készlet: Egy-sok kapcsolat,

mivel egy gyártó több alkatrészt is gyárthat, de egy alkatrész csak egy gyártó gyárt (konkrét alkatrészekről van szó!). Szállítók - Raktár készlet: Egy-sok kapcsolat, mivel egy szállító több alkatrészt is szállíthat, de egy alkatrészt csak egy szállító szállít. Ez természetesen szűkíti a lehetőségeinket. Eladók - Számlák: Egy-sok kapcsolat, mivel egy eladó több számlát is kiállíthat, de egy számlához csak egy eladó neve kerülhet, mint kiállítóé. Vevők - Számlák: Egy-sok kapcsolat, mivel egy vevő többször is vásárolhat a kiskereskedésben, ezáltal több számla is kapcsolódhat hozzá, de egy adott számlát csak egy vevőnek lehet kiállítani. Számlák - Raktár készlet: Sok-sok kapcsolat, hiszen egy számlán több áruféleség is szerepelhet, és ugyanaz az árufajta több számlán is megjelenhet. A feloldása a Számlák részletei táblán keresztül történik. Számlák - Számlák részletei: Egy-sok kapcsolat,

egy számla rekordhoz több számlarészletező rekord is tartozhat. Raktár készlet - Számlák részletei: Egy-sok kapcsolat, egy raktárkészlet rekordhoz több számlarészletező rekord is tartozhat. A fent látható jelölésrendszer az ún. "Egyed-kapcsolati mátrix" A jelölések ismerősek lehetnek az adatbázis elméleti tananyagból, az ilyen típusú ábrázolása pedig áttekinthetően képes bemutatni akár több tíz tábla mégoly bonyolult kapcsolatait is. 12. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Mezők Alkatrész típusok Mezők Név At az Tulajdonság Null hosszúság engedélyezése: Kötelező: Megnevezés Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Típus Számláló Érték Hamis Hamis Szöveg Érték Hamis Beviteli mező Hamis Méret 4 30 Táblaindexek Név PrimaryKey Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Érték Igaz Igaz PrimaryKey Hamis Igaz Gyártók Mezők Név

Gy az Tulajdonság Null hosszúság engedélyezése: Kötelező: Gyártó neve Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Típus Számláló Érték Hamis Hamis Szöveg Érték Hamis Beviteli mező Hamis 13. Méret 4 20 Barhács OktatóKözpont Ms-Access modul - 1. fejezet Táblaindexek Név PrimaryKey Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Érték Igaz Igaz PrimaryKey Hamis Igaz Szállítók Mezők Név Sz az Tulajdonság Null hosszúság engedélyezése: Kötelező: Név Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Város Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Cím Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Irányító szám Tulajdonság Null hosszúság engedélyezése: Beviteli maszk: Vezérlőelem: Kötelező: Telefon Tulajdonság Null hosszúság engedélyezése: Beviteli maszk: Vezérlőelem: Kötelező: Típus

Számláló Méret 4 Érték Hamis Hamis Szöveg 40 Érték Hamis Beviteli mező Hamis Szöveg Érték Hamis Beviteli mező Hamis Szöveg Érték Hamis Beviteli mező Hamis Szöveg Érték Hamis 9999 Beviteli mező Hamis Szöveg Érték Hamis "(0"0") "00-000-0009;; Beviteli mező Hamis 14. 25 50 5 10 Barhács OktatóKözpont Ms-Access modul - 1. fejezet Táblaindexek Név PrimaryKey Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Érték Igaz Igaz PrimaryKey Hamis Igaz Számlák részletei Mezők Név Szr az Tulajdonság Null hosszúság engedélyezése: Kötelező: Számla az Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Formátum: Kötelező: Tizedeshelyek: Rk az Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Tizedeshelyek: Gyártási szám Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Darab Tulajdonság

Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Tizedeshelyek: Típus Számláló Érték Hamis Hamis Szám (hosszú) Érték 0 Hamis Beviteli mező "SZ-99-"0000000 Hamis Automatikus Szám (hosszú) Érték 0 Hamis Beviteli mező Hamis Automatikus Szöveg Érték Hamis Beviteli mező Hamis Szám (hosszú) Érték 0 Hamis Beviteli mező Igaz Automatikus 15. Méret 4 4 4 20 4 Barhács OktatóKözpont Ms-Access modul - 1. fejezet Táblaindexek Név Gyártási szám Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: PrimaryKey Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Számla az Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: SzámlákSzámlák részletei Egyedi: Elsődleges: Mezők száma Hamis Hamis Gyártási szám Hamis Hamis Igaz Igaz PrimaryKey Hamis Igaz Hamis Hamis Számla az Hamis Hamis Hamis Hamis Számlák Mezők Név Számla az Tulajdonság Null hosszúság

engedélyezése: Formátum: Kötelező: Vevő az Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Tizedeshelyek: Eladó az Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Tizedeshelyek: Típus Számláló Érték Hamis "SZ-99-"0000000 Hamis Szám (hosszú) Érték 0 Hamis Beviteli mező Hamis Automatikus Szám (hosszú) Érték 0 Hamis Beviteli mező Hamis Automatikus 16. Méret 4 4 4 Barhács OktatóKözpont Ms-Access modul - 1. fejezet Név Sztornózott Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Formátum: Kötelező: Tizedeshelyek: Dátum Tulajdonság Null hosszúság engedélyezése: Kötelező: Átutalás Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Formátum: Kötelező: Típus Szám (hosszú) Érték 0 Hamis Beviteli mező "SZ-99-"0000000 Hamis Automatikus Dátum/Idő Érték Hamis

Hamis Igen/Nem Érték Hamis Igen/Nem Igen/Nem Hamis Méret 4 8 1 Táblaindexek Név EladókSzámlák Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: PrimaryKey Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Számla az1 Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: VevőkSzámlák Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Mezők száma Hamis Hamis EladókSzámlák Hamis Hamis Igaz Igaz PrimaryKey Hamis Igaz Igaz Hamis Számla az1 Hamis Hamis Hamis Hamis VevőkSzámlák Hamis Hamis 17. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Raktár készlet Mezők Név Típus Rk az Számláló Tulajdonság Null hosszúság engedélyezése: Kötelező: At az Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Tizedeshelyek: Gy az Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Tizedeshelyek: Sz az

Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Tizedeshelyek: Darab Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Tizedeshelyek: Ár Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem: Érvényesítési szöveg: Érvényességi szabály: Kötelező: Tizedeshelyek: Érték Hamis Hamis Szám (hosszú) Érték 0 Hamis Beviteli mező Hamis Automatikus Szám (hosszú) Érték 0 Hamis Beviteli mező Hamis Automatikus Szám (hosszú) Érték 0 Hamis Beviteli mező Hamis Automatikus Szám (hosszú) Érték 0 Hamis Beviteli mező Hamis Automatikus Szám (hosszú) Érték 0 Hamis Beviteli mező Az ár nem lehet kisebb mint 1 Ft! >0 Igaz Automatikus 18. Méret 4 4 4 4 4 4 Barhács OktatóKözpont Ms-Access modul - 1. fejezet Név Minimumkészlet Tulajdonság Alapértelmezett érték: Null hosszúság engedélyezése: Vezérlőelem:

Érvényesítési szöveg: Érvényességi szabály: Kötelező: Tizedeshelyek: Kifutott Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Leírás Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Típus Szám (hosszú) Érték 0 Hamis Beviteli mező A minimumkészlet negatív érték! >=0 Hamis Automatikus Igen/Nem Érték Hamis Igen/Nem Hamis Szöveg Érték Hamis Beviteli mező Hamis Méret 4 nem Táblaindexek Név Gyártók Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Alkatrész típus Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Szállítók Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: PrimaryKey Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Mezők száma Hamis Hamis Gyártók Hamis Hamis Hamis Hamis Alkatrész típus Hamis Hamis Hamis Hamis Szállítók Hamis Hamis Igaz Igaz PrimaryKey Hamis Igaz 19. lehet 1 50 Barhács OktatóKözpont

Ms-Access modul - 1. fejezet Eladók Mezők Név Eladó az Tulajdonság Null hosszúság engedélyezése: Kötelező: Eladó neve Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Város Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Cím Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Irányító szám Tulajdonság Null hosszúság engedélyezése: Beviteli maszk: Vezérlőelem: Kötelező: Telefon Tulajdonság Null hosszúság engedélyezése: Beviteli maszk: Vezérlőelem: Kötelező: TB szám Tulajdonság Null hosszúság engedélyezése: Beviteli maszk: Vezérlőelem: Kötelező: Kilépett Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Formátum: Kötelező: Típus Számláló Méret 4 Érték Hamis Hamis Szöveg 40 Érték Hamis Beviteli mező Hamis Szöveg Érték Hamis Beviteli mező Hamis Szöveg Érték Hamis Beviteli mező Hamis Szöveg Érték Hamis 9999 Beviteli mező Hamis

Szöveg Érték Hamis "(0"0") "09-000-0009;; Beviteli mező Hamis Szöveg Érték Hamis 999-999-999;; Beviteli mező Hamis Igen/Nem Érték Hamis 106 Igen/Nem Hamis 20. 25 50 5 10 15 1 Barhács OktatóKözpont Ms-Access modul - 1. fejezet Táblaindexek Név Irányító szám Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: PrimaryKey Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: TB szám Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Mezők száma Hamis Hamis Irányító szám Hamis Hamis Igaz Igaz PrimaryKey Hamis Igaz Hamis Hamis TB szám Hamis Hamis Vevők Mezők Név Vevő az Tulajdonság Null hosszúság engedélyezése: Kötelező: Vevő neve Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Város Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Cím Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Típus Számláló

Érték Hamis Hamis Szöveg Érték Hamis Beviteli mező Hamis Szöveg Érték Hamis Beviteli mező Hamis Szöveg Érték Hamis Beviteli mező Hamis 21. Méret 4 40 25 50 Barhács OktatóKözpont Ms-Access modul - 1. fejezet Név Irányító szám Tulajdonság Null hosszúság engedélyezése: Beviteli maszk: Vezérlőelem: Kötelező: Telefon Tulajdonság Null hosszúság engedélyezése: Beviteli maszk: Vezérlőelem: Kötelező: Adó szám Tulajdonság Null hosszúság engedélyezése: Vezérlőelem: Kötelező: Típus Szöveg Méret 5 Érték Hamis 9999 Beviteli mező Hamis Szöveg Érték Hamis "(0"0") "00-000-0009;; Beviteli mező Hamis Szöveg Érték Hamis Beviteli mező Hamis 17 20 Táblaindexek Név Adó szám Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Irányító szám Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: PrimaryKey Egyedi: Elsődleges: Név: Null érték kihagyása: Kötelező: Mezők

száma Hamis Hamis Adó szám Hamis Hamis Hamis Hamis Irányító szám Hamis Hamis Igaz Igaz PrimaryKey Hamis Igaz 22. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Figyeljünk meg a táblák mezőivel kapcsolatban néhány érdekességet: - A Számlák tábla Számla az mezőjének formátuma "SZ-99-"0000000. Ezzel a formátummal elérhetjük, hogy a Számláló típus növekvő számai a formátum számjelölő karaktereinek helyére kerüljön: SZ-99-0000001, SZ-99-0000002 stb. - A Számlák tábla Sztornózott mezőjének két funkciója is van: - Ha értéke 0, akkor a rekord egy áru számla adatait tartalmazza. - Ha értéke -1, akkor a számla sztornózott. - Ha értéke nagyobb, mint 0, akkor a számla egy sztornó (ellen) számla, mely a Sztornózott mezőben olvasható számú számla ellenszámlája. - A Számlák tábla Átutalás mezője egy logikai érték, mely azt tartalmazza, hogy a számla ellenértékét átutalással fizették-e vagy sem.

- A Raktár készlet tábla Minimumkészlet mezője mutatja meg számunkra, hogy az adott alkatrészből van-e elég raktáron. - A Raktár készlet tábla Kifutott mezője egy logikai érték, mely ha igazra van állítva, az alkatrészből akkor sem kell rendelni, ha kevesebb van belőle raktáron mint a minimumkészlet. - A Raktár készlet tábla Ár mezőjének Érvényességi szabályával megakadályozhatjuk a hibás adatfelvitelt. - Az Irányítószám, Telefonszám és TB szám mezők beviteli maszkja mindig a megfelelő típushoz van igazítva, ugyancsak a hibás adatbevitel kiküszöbölése érdekében. Vegyük észre az elsődleges-idegen kulcsok már ismert típusegyezését: a Számláló elsődleges kulcsok (melyek valójában hosszú egész numerikus értékek), egy másik táblában szerepelve Hosszú egész típust vesznek fel. Az indexek esetében megfigyelhető, hogy azon mezőket indexeljük, melyek az adatbázis működéséhez elengedhetetlenek (elsődleges és

idegen kulcsok), valamint azokat, melyek szerint valószínűleg gyakran fogunk az adatbázisban keresni. 23. Barhács OktatóKözpont Ms-Access modul - 1. fejezet A felhasználó felület Egy alkalmazás fejlesztésének elkezdéséhez elengedhetetlenül szükséges, hogy előzetes elképzeléssel rendelkezzünk arról a felületről, melyen keresztül a felhasználó hozzáférhet az adatbázisban tárolt adatokhoz. Ennek első lépése az, hogy megtervezzük az adatbázis alkalmazásunk "Űrlap hierarchiá"-ját, mely az űrlapok kapcsolatait, alá-fölé rendeltségi viszonyait mutatja meg. Nézzük a Számítógépbolt alkalmazásunk felhasználói felület tervét: Kezelő Raktár törzs Raktár készlet Gyártók Szállítók Alkatrész típusok Vevő törzs Vevők Szám la törzs Szám la Sztornó számlák Sztornózott számlák Eladók K eresés Vevő törzs K ategóriák Szállítók termékei Eladók Raktár törzs Szám la törzs Gyártók termékei

Mint látható a felhasználói felületben van néhány hurok: a törzsűrlapokat elérhetjük a Kezelő panelről és a Keresés űrlapról is. Ez a nyitási-bezárási sorrend kialakítását megnehezítő probléma nagyon gyakori az adatbázis alkalmazások felületének kialakításakor. 24. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Nézzünk néhány jellemző, tervezett képernyőképet: Kezelő űrlap terv A felület használatát elősegítő, adatforrással nem rendelkező ablak prototípusa. Törzs űrlap terv Információs űrlap prototípus, olyan űrlap, melyen az adatbázisban adott rekordhoz tartozó összes fontos adatot megtaláljuk. Az ilyen űrlapokat adatok megtekintésére használjuk, a módosításokat ill. új adatok felvételét az ún "módosító" űrlapokon tesszük meg. 25. Barhács OktatóKözpont Ms-Access modul - 1. fejezet Módosító űrlap terv Az előző űrlappal ellentétben, épp az új adatok felvitelére

és módosítására használható űrlap. Mint látható az adatok megtekintéséhez inkább táblázatos (vízszintes kialakítású), míg az adatok felviteléhez-módosításához oszlopos (függőleges kialakítású) űrlapokat tervezünk. Az űrlapok típusa szabványos, semmi felesleges nincs rajtuk, kialakításuk funkcionális. Jelentés prototípus terv Ugyanilyen megfontolásból a jelentések is azonos stílusban és elrendezésben készülnek. Célunk a könnyű áttekinthetőség, az információk megszerzésének és kezelésének leegyszerűsítése. Megterveztük tehát az alkalmazásunk adatbázis hátterét és felületét. Kezdődhet a kivitelezés! 26. Barhács OktatóKözpont Ms-Access modul - 2. fejezet A Számítógépbolt adatbázis lekérdezései Előkészületek A tervezési fázis után nekikezdhetünk az alkalmazás elkészítésének. Hozzuk létre a táblákat a megfelelő mezőkkel. A mezők adattípusait ill tulajdonságait állítsuk be a

megtervezettek szerint. Ellenőrizzük az indexeket, és ahol kell állítsuk be azokat! Ha a táblák elkészültek hozzuk létre közöttük a kapcsolatokat az előző kapcsolati ábrának megfelelően. Válasszuk az Eszközök menü Kapcsolatok menüpontját, majd a felbukkanó "Tábla hozzáadása" ablakban jelöljük ki az összes táblát. Kattintsunk a hozzáadás, majd a bezárás gombra! Ezután a kapcsolat ablakban felvehetjük a táblák közötti kapcsolatokat, oly módon, hogy az elsődleges kulcsot ráhúzzuk az idegen kulcsra. Ha készen vagyunk a a kapcsolatok kialakításával, hozzunk létre minden táblából egy AutoŰrlapot, oly módon, hogy kijelöljük a táblát, majd a Beszúrás menü AutoŰrlap parancsát választjuk. A létrejövő űrlapoknak a Táblanév(Auto) szabály szerint adjunk nevet (pl. Vevők(Auto), Gyártók(Auto) stb) Lekérdezések Lekérdezéseket két ok miatt hozunk létre egy adatbázis alkalmazásban: egyrészt, hogy bizonyos

vélt vagy valós felhasználói információigényt kielégítsünk, másrészt hogy a felhasználói felület alapját képező űrlapok és/vagy jelentések adatforrásaként, vagy kimeneteként funkcionáljanak. Gyakorlásként hozzunk létre néhány olyan lekérdezést, mely elméletileg valós felhasználói visszakeresésekhez nyújthat segítséget. A tíz legdrágább termék Az első lekérdezésünk az ismert "A tíz legdrágább termék" nevű, igen egyszerű lekérdezés. Feladata, hogy megmutassa a raktárkészlet melyik 10 rekordja az melyben az Ár mező értéke a többihez képest a legmagasabb. Kattintsunk az Adatbázis ablakban az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Raktár készlet, a Gyártók, valamint az Alkatrész típusok táblákra, majd kattintsunk a Bezárás gombra. 27.

Barhács OktatóKözpont Ms-Access modul - 2. fejezet Válasszuk ki a következő mezőket: - Rk az - Megnevezés - Gyártó neve - Leírás - Darab - Ár - Összeg - Minimumkészlet - Kifutott Adjuk a mezőket a lekérdezéshez – húzzuk a mezőlistából a mezők nevét a tervezőrácsra. Állítsuk be az eszköztáron a Csúcsérték mezőt 10 rekord megjelenítésére. Menjünk át Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! SQL SELECT TOP 10 [Raktár készlet].Rk az, [Alkatrész típusok]Megnevezés, Gyártók.[Gyártó neve], [Raktár készlet]Leírás, [Raktár készlet]Darab, [Raktár készlet].Ár, [Raktár készlet].Minimumkészlet, [Raktár készlet].Kifutott FROM Gyártók INNER JOIN ([Alkatrész típusok] INNER JOIN [Raktár készlet] ON [Alkatrész típusok].At az = [Raktár készlet]At az) ON Gyártók.Gy az = [Raktár készlet]Gy az ORDER BY [Raktár

készlet].Ár DESC; Kifutott termékek Következő lekérdezésünk már feltételes lekérdezés, azokat a termékeket szeretnénk látni, melyek kifutottak, melyeket nem kell többet rendelni. Ehhez azt az egyszerű lehetőséget vesszük igénybe, hogy az Igen/Nem mezők értéke vagy -1 (igaz) vagy 0 (hamis). Kattintsunk az Adatbázis ablakban az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Raktár készlet, a Gyártók, valamint az Alkatrész típusok táblákra, majd kattintsunk a Bezárás gombra. 28. Barhács OktatóKözpont Ms-Access modul - 2. fejezet Válasszuk ki a következő mezőket: - Rk az - Megnevezés - Gyártó neve - Leírás - Darab - Ár - Összeg - Minimumkészlet - Kifutott Adjuk a mezőket a lekérdezéshez – húzzuk a mezőlistából a mezők nevét a tervezőrácsra. Írjuk be a Kifutott

feltétel mezőjébe: -1 (igaz)! Menjünk át Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! SQL SELECT [Raktár készlet].Rk az, [Alkatrész típusok].Megnevezés, Gyártók.[Gyártó neve], [Raktár készlet]Leírás, [Raktár készlet]Darab, [Raktár készlet].Ár, [Raktár készlet]Minimumkészlet FROM Gyártók INNER JOIN ([Alkatrész típusok] INNER JOIN [Raktár készlet] ON [Alkatrész típusok].At az = [Raktár készlet]At az) ON Gyártók.Gy az = [Raktár készlet]Gy az WHERE ((([Raktár készlet].Kifutott)=-1)); Megrendelés A megrendelés lekérdezés szerepe, hogy kilistázza azon alkatrészeket, melyekből kevesebb van raktáron, mint a minimumkészlet, tehát rendelni kell belőle és meghatározza a megrendelni kívánt mennyiséget is. Kattintsunk az Adatbázis ablakban az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet

lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Raktár készlet, a Gyártók, a Szállítók, valamint az Alkatrész típusok táblákra, majd kattintsunk a Bezárás gombra. Válasszuk ki a következő mezőket: Név Város Cím Irányító szám Telefon Megnevezés Rk az Leírás Gyártó neve Mennyiség 29. Barhács OktatóKözpont Ms-Access modul - 2. fejezet Adjuk a mezőket a lekérdezéshez – húzzuk a mezőlistából a mezők nevét a tervezőrácsra. Írjuk be a Darab feltétel mezőjébe: <[Raktár készlet]![Minimumkészlet])! Írjuk be a Kifutott feltétel mezőjébe: 0 (hamis)! Vegyünk fel egy új mezőt, és a Kifejezésszerkesztővel állítsuk be a mező tartalmát: [Raktár készlet]![Minimumkészlet]*2 a neve legyen Mennyiség! Ez a mező tartalmazza az adott alkatrészből megrendelni kívánt mennyiséget, mint látható ez a minimumkészlet duplája lesz. Menjünk át

Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! SQL SELECT Szállítók.Név, SzállítókVáros, SzállítókCím, Szállítók[Irányító szám], Szállítók.Telefon, [Alkatrész típusok].Megnevezés, [Raktár készlet].Rk az, [Raktár készlet]Leírás, Gyártók[Gyártó neve], [Raktár készlet]![Minimumkészlet]*2 AS Mennyiség FROM Szállítók INNER JOIN (Gyártók INNER JOIN ([Alkatrész típusok] INNER JOIN [Raktár készlet] ON [Alkatrész típusok].At az = [Raktár készlet]At az) ON Gyártók.Gy az = [Raktár készlet]Gy az) ON Szállítók.Sz az = [Raktár készlet]Sz az WHERE ((([Raktár készlet].Darab)<[Raktár készlet]![Minimumkészlet]) AND (([Raktár készlet].Kifutott)=0)); Raktár készlet lekérdezés teljes A következő egy számított mezőt tartalmazó lekérdezés. Feladata, hogy kilistázza a raktárkészletet és az egyes termékek

raktárértékét is megjelenítse, természetesen csak azokét, melyekből legalább egy van. Kattintsunk az Adatbázis ablakban az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Raktár készlet, a Gyártók, a Szállítók, valamint az Alkatrész típusok táblákra, majd kattintsunk a Bezárás gombra. 30. Barhács OktatóKözpont Ms-Access modul - 2. fejezet Válasszuk ki a következő mezőket: - Rk az - Megnevezés - Gyártó neve - Szállítónév - Leírás - Darab - Ár - Minimumkészlet - Kifutott Készítsünk egy új mezőt melynek tartalma: Összeg: [Darab]*[Ár]. Ezáltal a mező neve Összeg lesz és a lekérdezésben szereplő Darab és Ár mezők szorzatát adja vissza. Írjuk be a Darab feltétel mezőjébe: >0. Menjünk át Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek

találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! SQL SELECT [Raktár készlet].Rk az, [Alkatrész típusok].Megnevezés, Gyártók.[Gyártó neve], Szállítók.Név AS Szállítónév, [Raktár készlet].Leírás, [Raktár készlet]Darab, [Raktár készlet]Ár, [Darab]*[Ár] AS Összeg, [Raktár készlet].Minimumkészlet, [Raktár készlet]Kifutott FROM Szállítók INNER JOIN ([Alkatrész típusok] INNER JOIN (Gyártók INNER JOIN [Raktár készlet] ON Gyártók.Gy az = [Raktár készlet]Gy az) ON [Alkatrész típusok].At az = [Raktár készlet]At az) ON Szállítók.Sz az = [Raktár készlet]Sz az WHERE ((([Raktár készlet].Darab)>0)); Raktár készlet lekérdezés paraméterezett Következő lekérdezésünk megegyezik az előzővel, annyi különbséggel, hogy paraméterként megadhatjuk, hogy mely alkatrész(eke)t szeretnénk látni. Természetesen a tanultak szerint eljárva, elég csak az első néhány karaktert megadni a

névből. Válasszuk ki a "Raktár készlet lekérdezés teljes" lekérdezésünket, majd kérjük a Fájl menü Mentés másként lehetőségét. Adjuk az új lekérdezésnek a "Raktár készlet lekérdezés paraméterezett" nevet! Az újonnan létrehozott lekérdezésünket nyissuk meg Tervező nézetben! Írjuk a Megnevezés feltétel mezőjébe: Like [Adja meg az alkatrész típusát:] & "*")! Figyeljünk arra, hogy a feltétel egy sorba kerüljön a Darab feltételével. Menjünk át Adatlap nézetbe, Adjuk be a kiválasztott alkatrész első betűjét, majd ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! 31. Barhács OktatóKözpont Ms-Access modul - 2. fejezet SQL SELECT [Raktár készlet].Rk az, [Alkatrész típusok].Megnevezés, Gyártók.[Gyártó neve], Szállítók.Név AS Szállítónév, [Raktár készlet].Leírás, [Raktár készlet]Darab,

[Raktár készlet]Ár, [Darab]*[Ár] AS Összeg, [Raktár készlet].Minimumkészlet, [Raktár készlet]Kifutott FROM Szállítók INNER JOIN ([Alkatrész típusok] INNER JOIN (Gyártók INNER JOIN [Raktár készlet] ON Gyártók.Gy az = [Raktár készlet]Gy az) ON [Alkatrész típusok].At az = [Raktár készlet]At az) ON Szállítók.Sz az = [Raktár készlet]Sz az WHERE ((([Alkatrész típusok].Megnevezés) Like [Adja meg az alkatrész típusát:] & "*") AND (([Raktár készlet].Darab)>0)); Sztornózott számlák Ez a lekérdezés, a visszavont (sztornózott) számlákat listázza ki. A sztornózott számlák visszakeresése egyszerű, hiszen ha egy számlát visszavonunk a Sztornózott mezőjébe -1 kerül. Kattintsunk az Adatbázis ablakban az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán az Eladók, a

Számlák, valamint a Vevők táblákra, majd kattintsunk a Bezárás gombra. Válasszuk ki a következő mezőket: - Számla az - Eladó neve - Vevő neve - Sztornózott - Átutalás Írjuk be a Sztornózott feltétel mezőjébe: -1. Menjünk át Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! SQL SELECT Számlák.Számla az, Eladók.[Eladó neve], Vevők.[Vevő Számlák.Sztornózott, SzámlákÁtutalás FROM Eladók INNER JOIN (Vevők INNER JOIN Számlák ON Vevők.Vevő az = SzámlákVevő az) ON Eladók.Eladó az = SzámlákEladó az WHERE (((Számlák.Sztornózott)=-1)); 32. neve], Barhács OktatóKözpont Ms-Access modul - 2. fejezet Sztornó számlák Ez a lekérdezés, az ellen (sztornó) számlákat listázza ki. A sztornó számlák visszakeresése egyszerű, hiszen ha egy számlát visszavonunk, egy ellenszámlát bocsátunk ki a visszavont számla

értékének negatív megfelelőjével, az ellenszámla Sztornózott mezőjébe pedig a lesztornózott áruszámla száma (ami biztos hogy nagyobb mint 0) kerül. Válasszuk ki a "Sztornózott számlák" lekérdezésünket, majd kérjük a Fájl menü Mentés másként lehetőségét. Adjuk az új lekérdezésnek a "Sztornó számlák" nevet! Az újonnan létrehozott lekérdezésünket nyissuk meg Tervező nézetben! Írjuk be a Sztornózott feltétel mezőjébe: >0. Menjünk át Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! SQL SELECT Számlák.Számla az, Eladók.[Eladó neve], Vevők.[Vevő Számlák.Sztornózott AS [Sztornózott számla], SzámlákÁtutalás FROM Eladók INNER JOIN (Vevők INNER JOIN Számlák ON Vevők.Vevő az = SzámlákVevő az) ON Eladók.Eladó az = SzámlákEladó az WHERE (((Számlák.Sztornózott)>0)); neve],

Eladókhoz tartozó vevők A következő lekérdezés megmutatja, melyik eladó melyik vevőt szolgálta ki eddig. Természetesen egy vevőt csak egyszer kell kiírni egy eladóhoz. Kattintsunk az Adatbázis ablakban az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán az Eladók, a Számlák, valamint a Vevők táblákra, majd kattintsunk a Bezárás gombra. Válasszuk ki a következő mezőket: - Eladó neve - Vevő neve Kattintsunk duplán a táblamezőre! A megjelenő Tulajdonságlapon az Egyedi értékek lehetőséget állítsuk "Igen"-re! Menjünk át Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! 33. Barhács OktatóKözpont Ms-Access modul - 2. fejezet SQL SELECT DISTINCT Eladók.[Eladó neve],

Vevők[Vevő neve] FROM Vevők INNER JOIN (Eladók INNER JOIN Számlák ON Eladók.Eladó az = SzámlákEladó az) ON VevőkVevő az = SzámlákVevő az; Eladókhoz tartozó vevők száma A következő lekérdezés kilistázza, hogy egy eladó a vevők közül mennyivel állt kapcsolatban eddig. A fő probléma ebben a lekérdezésben, hogy a Vevők és az Eladók tábla nem közvetlenül, hanem a Számlák táblán keresztül kapcsolódik egymáshoz. Így, ha egy eladó ugyanazt a vevőt többször is kiszolgálta, az adatbázis többször számolná meg ezt a kapcsolatot, hiszen nem a vevőket, hanem az Eladók rekordhoz kapcsolódó Számlák rekordot veszi figyelembe. Ezt a lekérdezést csak két lépcsőben lehet létrehozni. Először kell egy olyan lekérdezés, ami az eladókat és a hozzájuk tartozó vevőket listázza oly módon, hogy minden eladóhoz csak egyszer rendeli hozzá a vevőt (Eladókhoz tartozó vevők). Erre a lekérdezésre építve már meg lehet számolni,

hogy egy Eladók rekordhoz, hány különböző Vevők rekord tartozik. Kattintsunk az Adatbázis ablakban az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a lekérdezések fülre. Kattintsunk duplán az Eladókhoz tartozó vevők lekérdezésre, majd kattintsunk a Bezárás gombra. Válasszuk ki a következő mezőket: - Eladó neve - Vevő neve Az eszköztáron kapcsoljuk be a Összesítés (Σ) gombot! Az Eladó neve Összesítés mezőjében maradjon Group By. A Vevő neve Összesítés mezőjére állítsuk be a Count függvényt. Menjünk át Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! SQL SELECT [Eladókhoz tartozó vevők ].[Eladó neve], Count([Eladókhoz tartozó vevők ].[Vevő neve]) AS [Count:Vevő neve] FROM [Eladókhoz tartozó vevők ]

GROUP BY [Eladókhoz tartozó vevők].[Eladó neve]; 34. Barhács OktatóKözpont Ms-Access modul - 2. fejezet Vevők vásárlásai Ezen lekérdezés feladata, hogy kilistázza a vevők eddigi vásárlásait. Csak annyit akarunk tudni, hogy bizonyos vevők milyen típusú és fajtájú alkatrészeket vásároltak nálunk. Ha egy vevő több ugyanolyan árut vásárolt, csak egyszer listázza ki! Kattintsunk az Adatbázis ablakban az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Vevők, a Számlák, a Számlák részletei, a Raktár készlet valamint az Alkatrész típusok táblákra, majd kattintsunk a Bezárás gombra. Válasszuk ki a következő mezőket: - Vevő neve - Megnevezés - Leírás Kattintsunk duplán a táblamezőre! A megjelenő Tulajdonságlapon az Egyedi értékek lehetőséget állítsuk

"Igen"-re! Menjünk át Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! SQL SELECT DISTINCT Vevők.[Vevő neve], [Alkatrész típusok].Megnevezés, [Raktár készlet].Leírás FROM ([Alkatrész típusok] INNER JOIN [Raktár készlet] ON [Alkatrész típusok].At az = [Raktár készlet]At az) INNER JOIN (Vevők INNER JOIN (Számlák INNER JOIN [Számlák részletei] ON Számlák.Számla az = [Számlák részletei]Számla az) ON Vevők.Vevő az = SzámlákVevő az) ON [Raktár készlet].Rk az = [Számlák részletei]Rk az; Vevők akik még nem vásároltak semmit Ez a lekérdezés azokat a vevő rekordokat válogatja le a Vevők táblából, amelyekhez nem tartozik kapcsolódó rekord a Számlák táblában, vagyis még nem vásároltak semmit. Ezt az ún "laza illesztéssel" (LEFT ill RIGHT JOIN) tudjuk megoldani, amikor az egyik táblából az összes, a

másikból pedig csak a kapcsolódó rekordokat válogatjuk ki. Ilyen esetekben, ha az egyik tábla vizsgált rekordjához nem tartozik kapcsolódó rekord a másik táblában, úgy a kapcsolódó rekordból leválogatott mezők üresen maradnak. Egy mező ürességét (a cella nem tartalmaz adatot - üres karakterláncot sem!) az Is Null kifejezéssel tudjuk tesztelni. Kattintsunk az Adatbázis ablakban az Új gombra. 35. Barhács OktatóKözpont Ms-Access modul - 2. fejezet Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Vevők, valamint a Számlák táblákra, majd kattintsunk a Bezárás gombra. Válasszuk ki a következő mezőket: - Vevő neve - Számla az Kattintsunk a két tábla közötti kapcsolatra! Megjelenik az "Illesztési tulajdonságok" párbeszédpanel. Itt válasszuk a "Vevők MINDEN rekordja és

számlák csak azon rekordjai, ahol az illesztett mezők azonosak" lehetőséget! A Számla az feltétel mezőjébe írjuk be: Is Null, majd kapcsoljuk ki a megjelenítést! Menjünk át Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! SQL SELECT Vevők.[Vevő neve] FROM Vevők LEFT JOIN Számlák ON Vevők.Vevő az = SzámlákVevő az WHERE (((Számlák.Számla az) Is Null)); Vevők - két áruval A következő lekérdezés egy igen gyakori problémát vet fel: nem egy hanem két feltétel szerint kell listázni egy mezőértékre, ám a feltételek közötti kapcsolat nem VAGY, hanem ÉS. Érthetőbben, ki kell listázni azokat a Vevőket, akik monitort ÉS egeret is vásároltak már nálunk (természetesen elég egyszer, így ha többször is vásárolt egeret ÉS monitort, elég egy előfordulást kiírni). A probléma először nagyon egyszerűnek tűnik, pl. legyen

a feltétel LIKE "monitor” AND LIKE "egér" Természetesen nincs olyan rekord az adatbázisban, mely esetében a Megnevezés mezőben nem egy, hanem két érték szerepel (egér ÉS monitor), hiszen azzal az első normál forma kialakítását tennénk lehetetlenné. Ezt a feladatot több úton is meg lehet oldani. Mi most egy alapvető fontosságú lekérdezés elemet ismerünk meg az "allekérdezés"-t (SUBSELECT). Allekérdezést használhatunk a feltételben, vagy használhatunk a FROM utasítás után, a rendszer mindig előbb a beágyazott allekérdezést hajtja végre, és csak azután, az őt hívó lekérdezést. Így a lekérdezés fel tudja dolgozni az allekérdezés által nyújtott adatokat, használhatja akár adatforrásként, akár a leválogatást szűkítő listaként. Mi ez utóbbira látunk példát. Az allekérdezés, az IN SQL operátor által feldolgozandó lista elemeit hozza létre. Ilyen esetekben fontos, hogy az allekérdezés csak

egy kimeneti mezőt tartalmazzon. Az allekérdezés előállít egy listát, mely azon vevők neveit tartalmazza, akik monitort vásároltak. Megvizsgáljuk, hogy a vevők közül ki az, aki egeret vásárolt és benne van az előbbi listában. 36. Barhács OktatóKözpont Ms-Access modul - 2. fejezet Kattintsunk az Adatbázis ablakban az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Vevők, a Számlák, a Számlák részletei, a Raktár készlet valamint az Alkatrész típusok táblákra, majd kattintsunk a Bezárás gombra. Válasszuk ki a következő mezőket: - Vevő neve - Megnevezés Írjuk a Megnevezés feltétel mezőjébe: Like "egér"! Írjuk a Vevő neve feltétel mezőjébe: In (SELECT Vevők.[Vevő neve] FROM [Alkatrész típusok] INNER JOIN ([Raktár készlet] INNER JOIN ((Vevők INNER JOIN

Számlák ON Vevők.Vevő az = Számlák.Vevő az) INNER JOIN [Számlák részletei] ON SzámlákSzámla az = [Számlák részletei].Számla az) ON [Raktár készlet]Rk az = [Számlák részletei].Rk az) ON [Alkatrész típusok]At az = [Raktár készlet]At az WHERE ((([Alkatrész típusok].Megnevezés) Like "monitor")))! Figyeljünk arra, hogy a két feltétel egy sorba kerüljön! Menjünk át Adatlap nézetbe és ellenőrizzük az eredményt! Ha megfelelőnek találjuk, válasszuk az SQL nézetet és vizsgáljuk meg a lekérdezésünk SQL kódját! SQL SELECT DISTINCT Vevők.[Vevő neve] FROM ([Alkatrész típusok] INNER JOIN [Raktár készlet] ON [Alkatrész típusok].At az = [Raktár készlet].At az) INNER JOIN (Vevők INNER JOIN (Számlák INNER JOIN [Számlák részletei] ON Számlák.Számla az = [Számlák részletei]Számla az) ON Vevők.Vevő az = SzámlákVevő az) ON [Raktár készlet].Rk az = [Számlák részletei]Rk az WHERE (((Vevők.[Vevő neve]) IN ( SELECT

Vevők.[Vevő neve] FROM [Alkatrész típusok] INNER JOIN ([Raktár készlet] INNER JOIN ((Vevők INNER JOIN Számlák ON Vevők.Vevő az = SzámlákVevő az) INNER JOIN [Számlák részletei] ON Számlák.Számla az = [Számlák részletei]Számla az) ON [Raktár készlet].Rk az = [Számlák részletei]Rk az) ON [Alkatrész típusok].At az = [Raktár készlet]At az WHERE ((([Alkatrész típusok].Megnevezés) Like "monitor")))) AND (([Alkatrész típusok].Megnevezés) Like "egér")); 37. Barhács OktatóKözpont Ms-Access modul - 3. fejezet A Számítógépbolt adatbázis törzsűrlapjai 1. Mint a tervezés során már meghatároztuk, az adatbázisunkban három különböző űrlaptípust használunk: - Törzs űrlapokat: ezek olyan űrlapok, melyeken az adatbázisban az adott rekordhoz tartozó összes fontos adatot megtaláljuk. Az ilyen űrlapokat adatok megtekintésére, keresésére, szűrésére használjuk, a módosítás, új felvitel általában nem

engedélyezett. - Módosító űrlapokat: melyeket új adatok felvitelére és módosítására használunk. Az űrlapon nem jelenik meg a rekordhoz tartozó összes kapcsolódó információ, csak azon adatok, amelyek az új felvitel ill. módosítás szempontjából nélkülözhetetlenek. A módosító űrlapokon elhelyezett vezérlőelemekkel: - segítjük a felhasználót az adatok hatékony kezelésében, - kényelmesebbé tesszük az adatok bevitelét, módosítását, - kizárjuk a hibás adatbevitel lehetőségét. - Kezelő űrlapokat: használunk ún. "hoszt" űrlapként, ezek szerepe bizonyos típusú vezérlőelemek (leggyakrabban parancsgombok) elérhetővé tétele. Általában nem tartozik hozzájuk adatforrás, az adatbázis adataitól független VBA objektumokként léteznek az adatbázis-alkalmazásban. Az AutoŰrlapok használata A kivitelezési fázis első lépéseinek egyikén minden táblához létrehoztunk egy AutoŰrlapot. Ezek az űrlapok egyszerű

oszlopos kialakítással rendelkeznek, az adatforrásuk minden mezőjét a "Vezérlőelem megjelenítése" tulajdonságban beállított vezérlőelemként tartalmazzák. Az ilyen automatikusan létrejött űrlapokat használjuk alapként a felhasználói felületet alkotó űrlapjaink kialakításánál. Nyissuk meg az Alkatrész típusok(Auto) űrlapot! Mint látható a Microsoft Access által alapértelmezetten létrehozott űrlap tartalmaz olyan összetevőket, beállításokat, melyeket nem használunk széleskörűen. Ilyen az űrlap bal szélén látható "Rekordkijelölő", melynek használata táblázatos űrlapelrendezés esetén hasznos, vagy az "Elválasztóvonal", mely a nyomtatási képen, az űrlaprészeket választja el egymástól. 38. Barhács OktatóKözpont Ms-Access modul - 3. fejezet Menjünk át "Tervező nézet"-be és jelenítsük meg az űrlap tulajdonságlapját! Állítsuk át a következő opciókat:

Beállítás Görgetősáv Rekordkijelölők Elválasztóvonal Automatikus középre igazítás Érték Egyik sem Igen Nem Igen A beállítások megváltoztatása után, ha átmegyünk "Űrlap nézet"-be a következő kép tárul szemünk elé: Ez egy letisztultabb, áttekinthetőbb, zavaró űrlapelemek nélkül megjelenő űrlap. Ez adja az alapját a további űrlapjainknak. Állítsuk be a fenti opciókat az összes AutoŰrlapunkra! Tipp: Ha a "Tervező nézet"-ben, megnyitott Tulajdonságlap mellett zárjuk be az éppen szerkesztett űrlapot, a következő űrlap, tervezésre való megnyitáskor, automatikusan megnyitja a Tulajdonságlapot is. Így gyorsíthatjuk a beállítások megtételét, hiszen nem kell külön a Tulajdonságlapot megjeleníteni, és annak a megfelelő tulajdonságcsoportját (fülét) kiválasztani. 39. Barhács OktatóKözpont Ms-Access modul - 3. fejezet Kombinált listák kialakítása Sok esetben gyorsabb és egyszerűbb,

ha egy értéket listából jelölünk ki, mintha fejből kellene visszaidézni a konkrét értéket. A kombinált lista használata azért is hasznos, mert az űrlapon nem foglal sok helyet. A kombinált lista a beviteli mező és a lista kombinációja. Amikor a kombinált listában kiválasztunk vagy beírunk egy értéket - amennyiben a kombinált lista kötött - a beírt vagy kijelölt érték abba a mezőbe kerül, amelyhez a kombinált lista kötve van. Űrlapjainkon vannak olyan beviteli mezők, melyek valamilyen azonosító értéket (pl. idegen kulcsot) tartalmaznak. Világos, hogy számunkra az azonosító szám helyett többet mondana az adott kapcsolódó rekord egy másik mezője (pl. név) Hogy a lehető legkényelmesebben lehessen kiválasztani egy értéket, érdemes ezen beviteli mezőket olyan kombinált listákra cserélni, melyek azon értékeket mutatják, amivel a felhasználó könnyebben azonosítja a rekordot, a kiválasztott mezőbe pedig a kiválasztott

rekordot azonosító érték (szám) kerül. Nézzünk egy példát! Nyissuk meg a Raktár készlet(Auto) űrlapot. Észrevehető, hogy olyan mezők (és elnevezések) találhatóak az űrlapon, melyek egy felhasználó számára idegenek. Sokkal egyszerűbbé válna a bevitel, ha az alkatrész azonosító (At az) helyett az alkatrész, a gyártó azonosító (Gy az) helyett a gyártó, a szállító azonosító (Sz az) helyett a szállító nevével dolgozhatna a felhasználó, persze oly módon hogy az adatforrást jelentő Raktár készlet táblába a megfelelő azonosítók kerülnének idegen kulcsként. Erre ad megoldást a kombinált lista (kombi panel) használata. Cseréljük ki az alkatrész azonosító (At az) mezőt kombinált listára! 40. Barhács OktatóKözpont Ms-Access modul - 3. fejezet Menjünk át tehát "Tervező nézet"-be, majd kattintsunk a Vezérlőelem eszköztár ) gombjára! Hozzunk létre egy Kombinált listát az űrlapon, oly Kombi

panel ( módon, hogy a bal egérgombbal rákattintunk a beviteli mezők alatt lévő űrlapterületre! A kombinált listához (és a listához is) varázsló tartozik, mely végigvezet minket e vezérlőelem elkészítésének fázisain. A megjelenő ablak rögtön választás elé állít minket. Milyen kombinált listát akarunk létrehozni? - Automatikusan frissülő, az adatait táblából vagy lekérdezésből nyerő listát ("Szeretném, ha" opció). - Statikus listát, amelybe mi visszük fel az adatokat ("Begépelem a" opció). - Szűrőlistát, mely egy megadott rekord megkeresésére használható az űrlap rekordforrásában ("A program keresse meg" opció). El kell döntenünk, hogy mit akarunk. Ebben az esetben, egy olyan kombi panel létrehozása a célunk, mely az alkatrészek nevét mutatja, de az azonosítóját adja vissza. Válasszuk tehát az első lehetőséget, majd kattintsunk a Tovább gombra! 41. Barhács OktatóKözpont

Ms-Access modul - 3. fejezet A megjelenő párbeszédpanelen választhatjuk ki a kombi panel Sorforrását! Jelöljük meg az Alkatrésztípusok táblát, majd menjünk Tovább! A következő párbeszédablakban választhatjuk ki a megjelölt tábla vagy lekérdezés azon mezőit, melyet a kombinált listában szerepeltetni akarunk. Válasszuk ki mindkét mezőt! Ha felvettük a mezőket kattintsunk a Tovább gombra! Beállíthatjuk, hogy a varázsló automatikusan elrejtse a kulcs oszlopot. Ebben az esetben a kombinált lista a kulcs oszlop értékét adja vissza, de a lenyíló lista elemeit a másik (nem kulcs) oszlop értékei adják. Hagyjuk bekapcsolva "A kulcs oszlop elrejtése (javasolt)" jelölőnégyzetet, majd folytassuk a kombinált lista létrehozását! 42. Barhács OktatóKözpont Ms-Access modul - 3. fejezet A következő ablakban jelölhetjük ki, hogy a kombinált lista melyik mezőhöz kapcsolódjon, vagyis melyik mezőből vegye a

megjelenítendő értéket ill. változtatás esetén hova mentse azt. Mivel a kombinált listánk kulcsoszlopa az At az (mely azt jelenti, hogy a lista egy elemének kiválasztása esetén a hozzátartozó alkatrész azonosítót adja vissza), így ezt az értéket a tábla At az mezőjéhez érdemes hozzárendelni, majd folytassuk a kombinált lista létrehozását! Az utolsó ablakban a varázsló a kombinált lista címkéjének felirata után érdeklődik. Adjuk meg az "Alkatrész típus" szöveget, utána pedig kattintsunk a Befejezés gombra! 43. Barhács OktatóKözpont Ms-Access modul - 3. fejezet Helyezzük el a fenti ábrának megfelelően a kombinált listánkat, majd kapcsoljunk Űrlap nézetre! Ellenőrizzük a kombinált lista működését! Lépkedjünk a rekordokon és vizsgáljuk meg, hogy a kombinált listában lévő értékek is változnak-e! Ha elégedettek vagyunk az eredménnyel, váltsunk vissza Tervező nézetre! Töröljük le az At az

mezőt, majd az üresen maradt űrlaprészre helyezzük el az újonnan létrehozott kombinált listánkat! 44. Barhács OktatóKözpont Ms-Access modul - 3. fejezet Hajtsuk végre ugyanezt a műveletsorozatot a gyártó azonosító (Gy az) és a szállító azonosító (Sz az) mezőkre! A kombinált lista minden esetben az azonosító és a megnevezés mezőt tartalmazza, vagyis: - Gyártó azonosító: - Gy az - Gyártó neve - Szállító azonosító: - Sz az - Név Ha mindennel készen vagyunk az Rk az mező címkéjét írjuk át "Raktárkészlet azonosító"-ra, majd menjünk át "Tervező nézet"-be! Nézzük végig, hogy mely űrlapok tartalmaznak olyan mezőket, melyeket a könnyebb kezelhetőség érdekében érdemes kombinált listára cserélni. - Alkatrész típusok: nem, hiszen a sorforrásként szolgáló táblában nincs idegen kulcs. Eladók: nem, hiszen a sorforrásként szolgáló táblában nincs idegen kulcs. Gyártók: nem, hiszen a

sorforrásként szolgáló táblában nincs idegen kulcs. Szállítók: nem, hiszen a sorforrásként szolgáló táblában nincs idegen kulcs. Vevők: nem, hiszen a sorforrásként szolgáló táblában nincs idegen kulcs. Számlák: igen a Vevő az és az Eladó az mezőket. Számlák részletei: igen, a Számla az és a At az (alkatrész azonosító) mezőket. Itt álljunk meg egy pillanatra! Felmerülhet a kérdés, hogy a Számla az esetében, mi az a mező, melyet a könnyebb feldolgozás érdekében megjelenítünk. A válasz elég furcsa lehet első hallásra: ez nem más ugyanis mint maga a Számla az. Ebben az esetben ugyanis a Számla táblában nincs olyan mező, mellyel kiválthatnánk a számla rekord azonosítását. Mire jó akkor a kombinált lista létrehozása (mely ebben az esetben csak egy mezőt fog tartalmazni, magát Számla az-t)? A válasz erre nagyon prózai: a kombinált lista feladata ebben az esetben, hogy megakadályozza a hibás adatbevitelt (nem

létező számlaszám felvitelét), és ebből kifolyólag a hibaüzenetek kiírását. 45. Barhács OktatóKözpont Ms-Access modul - 3. fejezet A Számlák(Auto) űrlapon tehát a vevő azonosító (Vevő az) és az eladó azonosító (Eladó az) mezőket cseréljük kombinált listákra! A kombinált lista minden esetben az azonosító és a megnevezés mezőt tartalmazza, vagyis: - Vevő azonosító: - Vevő az - Vevő neve - Eladó azonosító: - Eladó az - Eladó neve A Számlák részletei(Auto) űrlapon tehát a számla azonosító (Számla az) és az alkatrész azonosító (At az) mezőket cseréljük kombinált listákra! A kombinált lista általában az azonosító és a megnevezés mezőt tartalmazza, kivéve a számla azonosító mezőt, ahol csak az azonosítót tartalmazza vagyis: - Számla azonosító: - Számla az - Alkatrész azonosító: - At az - Megnevezés 46. Barhács OktatóKözpont Ms-Access modul - 3. fejezet A Raktár törzs létrehozása A

következő feladatunk az alkatrészek adatait tartalmazó információs űrlap a Raktár törzs létrehozása. Ennek érdekében a Raktár készlet(Auto) űrlapra kérjük a "Mentés másként" opciót és mentsük "Raktár törzs" néven! Állítsuk be az elrendezést az alább látható módon! A törzsűrlapokról azt állapítottuk meg, hogy olyan űrlapok, melyeken az adatbázisban az adott rekordhoz tartozó összes fontos adatot megtaláljuk. Erről az űrlapról azonban néhány, az adott alkatrészrekordhoz kapcsolódó adat hiányzik: - Raktárérték: az adott alkatrészből a raktárban található mennyiség összértéke, a darab és az ár szorzata. Egy alkatrész rekordhoz csak egy raktárérték tartozik - Az alkatrészhez kapcsolódó számlák: azon számlák listája, melyeken az adott alkatrész szerepel. Egy alkatrész rekordhoz több számlarekord is kapcsolódhat, hiszen egy alkatrész több számlán is szerepelhet. A Raktárértéket,

mivel egy rekordhoz csak egy ilyen adat tartozik, számított beviteli mezőben érdemes tárolni. Hozzunk létre tehát egy üres beviteli mezőt az alábbi ábrának megfelelően: Kérjük ki a beviteli mező Tulajdonságlapját, majd az Adat fül "Mező vagy kifejezés" mezőjére hívjuk meg a Kifejezésszerkesztőt! 47. Barhács OktatóKözpont Ms-Access modul - 3. fejezet Vegyük fel a következő kifejezést: [Ár]*[Darab] Kattintsunk az OK gombra, zárjuk be a Tulajdonságlapot, majd menjünk át "Űrlap nézet"-be és ellenőrizzük, hogy helyes-e az eredmény! Ha mindent rendben találtunk kérjünk mentést! Hozzákezdhetünk az alkatrészhez tartozó számlák megjelenítéséért felelős vezérlőelem elkészítésének. Mivel ebben az esetben egy - sok kapcsolat van az adatok között (egy alkatrész több számlán is szerepelhet) eddigi ismereteink alapján a segédűrlapos rendszer látszik a legmegfelelőbbnek. Amikor egy-sok kapcsolatban

álló táblákon alapuló űrlapot és segédűrlapot készítünk, a főűrlap jeleníti meg a kapcsolat "egy" oldalát, a segédűrlap pedig a "több" oldalt. A főűrlap úgy van összehangolva a segédűrlappal, hogy a segédűrlap csak a főűrlap aktuális rekordjához kapcsolódó rekordokat jeleníti meg. Ha varázsló segítségével hozzuk létre a segédűrlapot, illetve az Adatbázis ablakból húzunk át egy űrlapot vagy adatlapot egy másik űrlapra, és így hozunk létre segédűrlapot, a Microsoft Access automatikusan összehangolja a főűrlapot a segédűrlappal. Most tekintsünk a vezérlőelem eszköztárra! A vezérlőelemek egy csoportjához varázslók tartoznak, melyek akkor aktivizálódnak, ha belekezdünk az adott vezérlőelem létrehozásába. Mivel ez sok esetben nem megfelelő működés, ezért ez a funkció kikapcsolható. Az eszköztár második gombja mutatja, hogy a Vezérlőelem varázsló be- vagy kikapcsolt állapotban van

éppen. 48. Barhács OktatóKözpont Ms-Access modul - 3. fejezet Ellenőrizzük, hogy be van-e kapcsolva a Vezérlőelem varázsló! Ha igen, akkor keressük meg a Segédűrlap/segédjelentés gombot az eszköztáron! Kapcsoljuk be (kattintsunk rá), majd kattintsunk az űrlapon a beviteli mezők alatti területre! Elindul a Segédűrlap/segédjelentés varázsló. A varázsló első ablakában kiválaszthatjuk, hogy egy már meglévő űrlapot akarunk-e segédűrlapnak használni, vagy újat szeretnénk készíteni, az adatbázis tábláinak és/vagy lekérdezéseinek felhasználásával. Válasszuk a "Meglévő táblák és lekérdezések használata" lehetőséget! A következő párbeszédpanelen határozhatjuk meg a segédűrlap által tartalmazott mezőket. Válasszuk a Táblák/Lekérdezések listából a Számlák részletei táblát, és vegyük fel a segédűrlapba a Rk az, a Számla az, a Gyártási szám és a Darab mezőket! 49. Barhács

OktatóKözpont Ms-Access modul - 3. fejezet A Gyártási szám és az Darab tartalmazza a megjelenítendő értékes adatokat, míg az Rk az és a Számla az mezőt azért vettük fel, mert ezzel kapcsoljuk össze a fő és a segédűrlapon szereplő rekordokat. Válasszuk a Táblák/Lekérdezések listából a Számlák táblát, és vegyük fel a segédűrlapba a Vevő az, az Eladó az, és a Dátum mezőket! A Dátum tartalmazza a megjelenítendő értékes adatokat, míg az Vevő az és az Eladó az mezőt azért vettük fel, mert ezzel kapcsoljuk össze a fő és a segédűrlapon szereplő rekordokat. Válasszuk a Táblák/Lekérdezések listából a Vevők táblát, és vegyük fel a segédűrlapba a Vevő neve mezőt! Válasszuk a Táblák/Lekérdezések listából az Eladók táblát, és vegyük fel a segédűrlapba az Eladó neve mezőt! Kattintsunk a Tovább gombra! A varázsló következő ablakában határozhatjuk meg, a kapcsolatokat a két űrlaprész között. A

Microsoft Access automatikusan felismeri a kapcsolatokat, ha az helyesen van beállítva. Ilyen esetekben a felismert kapcsolato(ka)t megjeleníti egy listában, ahonnan azt egyszerű kattintással kiválaszthatjuk. Jelen esetben a felismert kapcsolat a "Számlák részletei megjelenítése Raktár készlet minden rekordjához Rk az használatával". Válasszuk ezt, majd menjünk Tovább! A következő ablakban adjuk meg a segédűrlapunk nevét, mely legyen most "Raktárkészlet részletei segédűrlap", majd kattintsunk a befejezésre! 50. Barhács OktatóKözpont Ms-Access modul - 3. fejezet Állítsuk át a méreteket az alább látható módon, a címke felirata pedig legyen "Raktárkészlet számlákon"! Menjünk át Űrlap nézet-be és rejtsük el a kapcsoló mezőket a segédűrlapon, oly módon, hogy a mező oszlopának jobb szélét ráhúzzuk a bal szélére. Az elrejtendő mezők: - Rk az - Vevő az - Eladó az A Számla az kapcsoló

mezőként (is) funkcionál mégsem kell elrejteni, hiszen értékes adatot tartalmaz: megmutatja annak a számlának a számát, melyen az adott alkatrész szerepel. Mentsük az űrlapot! Ha mindennel készen vagyunk a következő törzsűrlap képet kapjuk: 51. Barhács OktatóKözpont Ms-Access modul - 4. fejezet A Számítógépbolt adatbázis törzsűrlapjai 2. A Vevők törzs létrehozása A következő feladatunk a vevők adatait tartalmazó információs űrlap a Vevő törzs létrehozása. Ennek érdekében a Vevők(Auto) űrlapra kérjük a "Mentés másként" opciót és mentsük "Vevő törzs" néven! Állítsuk be az elrendezést az alább látható módon! Ha mindent rendben találtunk kérjünk mentést! Hozzákezdhetünk a vevők vásárlásainak megjelenítéséért felelős vezérlőelem elkészítésének. 1 Ellenőrizzük, hogy be van-e kapcsolva a Vezérlőelem varázsló! Ha igen, akkor keressük meg a Segédűrlap/segédjelentés

gombot az eszköztáron! Kapcsoljuk be (kattintsunk rá), majd kattintsunk az űrlapon a beviteli mezők alatti területre! Elindul a Segédűrlap/segédjelentés varázsló. 2 A varázsló első ablakában válasszuk a "Meglévő táblák és lekérdezések használata" lehetőséget! 3 A következő párbeszédpanelen meghatározhatjuk a segédűrlap által tartalmazott mezőket. Válasszuk a Táblák/Lekérdezések listából a Számlák táblát, és vegyük fel a segédűrlapba a Vevő az, a Számla az, az Eladó az, és a Dátum mezőket! 3.1 A Számla az és a Dátum tartalmazza a megjelenítendő értékes adatokat, míg a Vevő az és az Eladó az mezőt azért vettük fel, mert ezzel kapcsoljuk össze a fő és a segédűrlapon szereplő rekordokat. 4 Válasszuk a Táblák/Lekérdezések listából a Számlák részletei táblát, és vegyük fel a segédűrlapba a Rk az, a Gyártási szám és a Darab mezőket! 4.1 A Gyártási szám és a Darab tartalmazza a

megjelenítendő értékes adatokat, míg az Rk az mezőt azért vettük fel, mert ezzel kapcsoljuk össze a fő és a segédűrlapon szereplő rekordokat. 5 Válasszuk a Táblák/Lekérdezések listából a Raktár készlet táblát, és vegyük fel a segédűrlapba az At az, és a Leírás mezőket! 5.1 A Leírás tartalmazza a megjelenítendő értékes adatokat, míg az At az mezőt azért vettük fel, mert ezzel kapcsoljuk össze a fő és a segédűrlapon szereplő rekordokat. 6 Válasszuk a Táblák/Lekérdezések listából az Eladók táblát, és vegyük fel a segédűrlapba az Eladó neve mezőt! 7 Válasszuk a Táblák/Lekérdezések listából az Alkatrész típusok táblát, és vegyük fel a segédűrlapba az Megnevezés mezőt! 52. Barhács OktatóKözpont Ms-Access modul - 4. fejezet 8 Kattintsunk a Tovább gombra! A varázsló következő ablakában határozhatjuk meg, a kapcsolatokat a két űrlaprész között. Jelen esetben a felismert kapcsolat a

"Számlák megjelenítése Vevők minden rekordjához Vevő az használatával". Válasszuk ezt, majd menjünk Tovább! 9 A következő ablakban adjuk meg a segédűrlapunk nevét, mely legyen most "Vevő részletei segédűrlap", majd kattintsunk a befejezésre! 10 Állítsuk át a méreteket az alább látható módon, a címke felirata pedig legyen "Vevő vásárlások részletei"! 11 Menjünk át Űrlap nézet-be és rejtsük el a kapcsoló mezőket a segédűrlapon, oly módon, hogy a mező oszlopának jobb szélét ráhúzzuk a bal szélére. Az elrejtendő mezők: - Rk az - Vevő az - Eladó az - Számla az - At az 12 Mentsük az űrlapot! Ha mindennel készen vagyunk a következő törzsűrlap képet kapjuk: 53. Barhács OktatóKözpont Ms-Access modul - 4. fejezet A Számla törzs létrehozása A következő feladatunk a Számlák adatait tartalmazó információs űrlap a Számla törzs létrehozása. Ennek érdekében a Számlák(Auto)

űrlapra kérjük a "Mentés másként" opciót és mentsük "Számla törzs" néven! Állítsuk be az elrendezést az alább látható módon! Jelenítsük meg az űrlap Tulajdonságlapját! Menjünk az Adat fülre! A Számla törzs űrlapnak csak az élő (tehát nem sztornózott ill. nem sztornó) számlákat kell mutatnia. Ennek a célnak az elérése érdekében, egy kicsit meg kell változtatnunk az űrlap adatforrását. Kattintsunk a Rekordforrás mező mellett megjelenő jelzetű gombra! A kérdés azt jelzi, hogy a rekordforrás szerkesztésébe kezdtük, a Microsoft Access megerősítést vár. 54. Barhács OktatóKözpont Ms-Access modul - 4. fejezet Ismerős ablak jelenik meg: a Lekérdezésszerkesztő. Alapértelmezetten tartalmazza a tábla rekordforrásának alaptábláit. Most pl a Számlák táblát adta alapértelmezetten a lekérdezéshez. Ha korlátozni akarjuk a megjelenített rekordokat, úgy feltételt kell megadnunk, mely az élő

számlák esetén a Sztornózott mezőre vonatkozik. A rendszerünkben egy számla akkor élő, ha a Sztornózott mező az alapértelmezett értéket, vagyis 0-t tartalmaz. Vegyük fel a lekérdezésbe a * jelet a táblából, ezáltal a lekérdezés kimenetébe belekerül a tábla összes mezője. Vegyük fel külön a Sztornózott mezőt, hiszen az "Összes mező"-re feltételt beállítani nem lehet (nincs olyan feltétel, mely minden mezőre igaz lenne). Állítsuk be a feltételt (0), és hogy ne jelenjen meg duplán a kimenetben kapcsoljuk ki a megjelenítést. Ha készen vagyunk, zárjuk be a lekérdezés szerkesztőt. A Microsoft Access megerősítést vár, hogy az eddigi Rekordforrást felcserélje-e a most létrehozott lekérdezés kimenetével. Válaszoljunk Igen-nel! Menjünk át "Űrlap nézet"-be és vizsgáljuk meg az eredményt! Ha mindent rendben találtunk kérjünk mentést! Hozzákezdhetünk a számlák részleteinek megjelenítéséért

felelős vezérlőelem elkészítésének. 1 Ellenőrizzük, hogy be van-e kapcsolva a Vezérlőelem varázsló! Ha igen, akkor keressük meg a Segédűrlap/segédjelentés gombot az eszköztáron! Kapcsoljuk be (kattintsunk rá), majd kattintsunk az űrlapon a beviteli mezők alatti területre! Elindul a Segédűrlap/segédjelentés varázsló. 2 A varázsló első ablakában válasszuk a "Meglévő táblák és lekérdezések használata" lehetőséget! 3 A következő párbeszédpanelen meghatározhatjuk a segédűrlap által tartalmazott mezőket. Válasszuk a Táblák/Lekérdezések listából a Számlák részletei táblát, és vegyük fel a segédűrlapba a Számla az, az Rk az, a Gyártási szám és a Darab mezőket! 3.1 A Gyártási szám és a Darab tartalmazza a megjelenítendő értékes adatokat, míg a Számla az és az Rk az mezőt azért vettük fel, mert ezzel kapcsoljuk össze a fő és a segédűrlapon szereplő rekordokat. 55. Barhács

OktatóKözpont Ms-Access modul - 4. fejezet 4 Válasszuk a Táblák/Lekérdezések listából a Raktár készlet táblát, és vegyük fel a segédűrlapba az At az, és a Leírás mezőket! 4.1 A Leírás tartalmazza a megjelenítendő értékes adatokat, míg az At az mezőt azért vettük fel, mert ezzel kapcsoljuk össze a fő és a segédűrlapon szereplő rekordokat. 5 Válasszuk a Táblák/Lekérdezések listából az Alkatrész típusok táblát, és vegyük fel a segédűrlapba a Megnevezés mezőt! 6 Kattintsunk a Tovább gombra! A varázsló következő ablakában határozhatjuk meg a kapcsolatokat a két űrlaprész között. Jelen esetben a felismert kapcsolat a "Számlák részletei megjelenítése <SQL utasítás> minden rekordjához Számla az használatával". Válasszuk ezt, majd menjünk Tovább! 7 A következő ablakban adjuk meg a segédűrlapunk nevét, mely legyen most "Számlák részletei segédűrlap", majd kattintsunk a

befejezésre! 8 Állítsuk át a méreteket az alább látható módon, a címke felirata pedig legyen "Számlák részletei"! 13 Menjünk át Űrlap nézet-be és rejtsük el a kapcsoló mezőket a segédűrlapon, oly módon, hogy a mező oszlopának jobb szélét ráhúzzuk a bal szélére. Az elrejtendő mezők: - Rk az - Számla az - At az 56. Barhács OktatóKözpont Ms-Access modul - 4. fejezet 14 Mentsük az űrlapot! Ha mindennel készen vagyunk, a következő törzsűrlap képet kapjuk: Ezzel készen is vagyunk a törzsűrlapok vázának elkészítésével. A továbbiakban ezt a szerkezetet finomítjuk, hogy megfeleljen az alapvető felhasználói igényeknek. 57. Barhács OktatóKözpont Ms-Access modul - 5. fejezet A Számítógépbolt adatbázis módosító űrlapjai Segédfüggvények importálása A továbbiakban szükségünk lesz egy olyan függvényre, mellyel képesek vagyunk tesztelni, hogy bizonyos adatbázis objektumok (elsősorban

űrlapok) meg vannak-e nyitva vagy sem. Egy ilyen függvényt találunk a Northwind adatbázis Segédfüggvények moduljában. Importáljuk azt, saját adatbázisunkba! Kérjük a File menü, Külső adatok átvétel almenüjéből az Importálás lehetőséget! A megjelenő Tallózó ablakban válasszuk ki a Northwind.mdb-t Az Objektum importálása ablakban válasszuk a Modulok fület és jelöljük ki a Segédfüggvények modult, majd kattintsunk az OK gombra! Az Importálás lezajlása után menjünk az adatbázisunk Modul fülére és nyissuk meg az importált segédfüggvények modult. Mint látható egyetlen fontos dolgot tartalmaz a modul: a Betöltve függvényt, mely űrlapok esetében visszaadja, hogy az adott űrlap meg van-e nyitva. 58. Barhács OktatóKözpont Ms-Access modul - 5. fejezet Option Compare Database Option Explicit Function Betöltve(ByVal strFormName As String) As Boolean Const conObjStateClosed = 0 Const conDesignView = 0 If

SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then If Forms(strFormName).CurrentView <> conDesignView Then Betöltve = True End If End If End Function Fentebb látható a Modul tartalma. A Betöltve függvény működése igen egyszerű: ha a SysCmd függvény nem nullát ad vissza, ill. a Forms(űrlapok) gyűjtemény űrlapnév nevű objektumának aktuális nézete nem "Tervező nézet", a Betöltve függvény igaz értéked ad vissza, hiszen ez azt jelenti, hogy az űrlap "Űrlap nézet"-ben vagy "Adatlap nézet"-ben meg van nyitva. A SysCmd függvény A SysCmd függvényt a következőkre lehet használni: - Egy folyamatjelző vagy egy tetszőleges adott szöveg megjelenítésére az állapotsorban. - Információ szerzésére a Microsoft Access alkalmazásról és a társított fájlokról. - Egy adatbázis-objektum állapotának kijelzésére, hogy megtudjuk az adott objektumról ha nyitott, új, illetve

megváltozott de még nem került mentésre. Szintaxis: ReturnValue = SysCmd(művelet[, szöveg][, érték]) ObjectState = SysCmd(művelet[, objektum típusa][, objektum neve]) A SysCmd függvény a következő argumentumokat használja: - Művelet: Az alábbi belső állandók egyike, amely megadja a végrehajtandó művelet típusát: - AcSysCmdInitMeter: A folyamatjelző kezdeményezi. Amikor ezt a műveletet használjuk, a szöveg és az érték argumentumokat is meg kell adni. - AcSysCmdUpdateMeter: A folyamatjelzőt a megadott értékkel frissíti. Amikor ezt a műveletet használjuk, a szöveg argumentumot is meg kell adni. - AcSysCmdRemoveMeter: Eltávolítja a folyamatjelzőt. - AcSysCmdSetStatus: Az állapotsor szövegét teszi a szöveg argumentumba. - AcSysCmdClearStatus: Átállítja az állapotsor szövegét. - AcSysCmdRuntime: Igaz (–1) eredményt ad, ha a Microsoft Access egyik futtatható verziója fut. - AcSysCmdAccessVer: A Microsoft Access verziószámát adja

meg. - AcSysCmdIniFile: A Microsoft Access alkalmazáshoz társított .ini fájl nevét adja meg. - AcSysCmdAccessDir: A könyvtár nevét adja, ahol a Msaccess.exe fájl van - AcSysCmdProfile: A /profile beállítást adja meg, amelyet a felhasználó ad meg, amikor a Microsoft Access alkalmazást a parancssorból indítja. 59. Barhács OktatóKözpont Ms-Access modul - 5. fejezet - - - - - AcSysCmdGetWorkgroupFile: A munkacsoport-információs fájl (System.mdw) elérési útját adja. - AcSysCmdGetObjectState: Az adott adatbázis-objektum állapotát adja eredményül. Ha ezt a műveleti értéket használjuk, meg kell adnunk az objektum típusa és az objektum neve részeket is. Szöveg: Egy karakterlánc-kifejezés, amely megadja az állapotsorban balra igazított szöveget. Ez az argumentum akkor szükséges, ha a művelet argumentum acSysCmdInitMeter, acSysCmdUpdateMeter vagy acSysCmdSetStatus értékű; ez az argumentum nem érvényes más művelet argumentum

értékek esetén. Érték: Egy numerikus kifejezés, amely a folyamatjelző megjelenítését szabályozza. Ez az argumentum akkor szükséges, ha a művelet argumentum acSysCmdInitMeter beállítású; ez az argumentum nem érvényes más művelet argumentum esetén. Objektum típusa: Ez az argumentum akkor szükséges, ha a művelet argumentum acSysCmdGetObjectState értékű; ez az argumentum nem érvényes más művelet argumentum esetén. A következő belső állandók egyike: - acTable - acQuery - acForm - acReport - acMacro - acModule Objektum neve: Egy karakterlánc-kifejezés, amely az objektum típusa argumentumban megadott típushoz tartozó adatbázis-objektum érvényes neve. Ez az argumentum akkor szükséges, ha a művelet argumentum acSysCmdGetObjectState beállítású; ez az argumentum nem érvényes más művelet argumentum esetén. Ha egy adatbázis-objektum állapotára vagyunk kíváncsiak, a SysCmd függvényt acSysCmdGetObjectState művelet argumentummal és

objektum típusa, valamint objektum neve argumentummal kell használni. Egy objektumnak négy lehetséges állapota van: nem nyitott vagy nem létező, nyitott, új és megváltozott de még nem mentett. A acSysCmdGetObjectState művelet argumentummal rendelkező SysCmd függvény a következő állandók bármilyen kombinációját eredményül adhatja. Állandó acObjStateOpen acObjStateNew acObjStateDirty Az adatbázis-objektum állapota Nyitott Új Megváltozott de még nem mentett Ha az objektum neve argumentumban megadott objektum nem nyitott vagy nem létezik, a SysCmd függvény nullát ad eredményül. 60. Barhács OktatóKözpont Ms-Access modul - 5. fejezet Végül vigyünk fel néhány változót a modulba, hogy ne kelljen ezeket deklarálni az űrlapokhoz tartozó kódmodulokban. Public Public Public Public Public blNyitas As Boolean stHonnan As String stDocName As String stLinkCriteria As String intId As Integer Mint látható az összes változót

"public"-ként deklaráltuk, így lehetővé válik, hogy az alkalmazás bármely pontjáról elérjük és használjuk ezeket. Módosító űrlapok elkészítése A következő feladatunk, hogy az információs (törzs) űrlapok létrehozása után, kialakítsuk az adatbázis felületének azt a részét, mely új adatok felviteléért és már meglevők módosításáért felel. A módosító űrlapok, melyeknek szerepelni kell az adatbázisban: - Vevők - Alkatrészek - Alkatrész típusok - Gyártók - Szállítók - Számla (új számla felviteléhez) - Eladók Vevők űrlap létrehozása Magát a módosító űrlapot nem kell létrehoznunk, hiszen az Vevők(Auto) néven már szerepel az adatbázisunkban. A Vevők(Auto) űrlapra kérjük a "Mentés másként" opciót és mentsük "Vevők" néven! A következő feladat, hogy összekapcsoljuk a most létrejött módosító űrlapunkat, az űrlap hierarchiában meghatározott szülő űrlappal,

nevezetesen a Vevő törzzsel. Ezt oly módon szeretnénk megtenni, hogy lehetőség legyen új adat felvitelére a módosító űrlapon, ill. már meglévő adatok szerkesztésére is. A könnyű felhasználhatóság miatt ezt oly módon kellene megoldani, hogy ha a felhasználó új rekordot akar hozzáadni, a módosító űrlap rögtön új rekordra ugorva nyíljon meg. Abban az esetben pedig, ha már meglévő rekordot akar szerkeszteni, akkor azt a rekordot mutatva nyíljon meg, amely a Törzsűrlapon szerepelt a megnyitás pillanatában (abból a megfontolásból, hogy valószínűleg a törzsűrlapon épp vizsgált rekord adatait kívánja módosítani a felhasználó). Nyissuk meg a Vevő törzset tervezésre, majd a Vezérlőelem eszköztáron kapcsoljuk ki a varázslót ( )! A varázsló kikapcsolt állapotában hozzunk létre egy gombot a törzs űrlapon. A gomb címe "Vevőadatok módosítása", neve "gbVevő" legyen! 61. Barhács OktatóKözpont

Ms-Access modul - 5. fejezet Kérjük ki a most létrehozott parancsgomb Tulajdonságlapját és az Esemény fülön válasszuk ki a Kattintásra eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk, hogy melyik szerkesztővel szeretnénk az eseményre reagáló műveletet létrehozni. 62. Barhács OktatóKözpont Ms-Access modul - 5. fejezet Válasszuk a kódszerkesztőt, és a megjelenő kódablakban a "Private Sub gbVevő Click()" és az "End Sub" közötti részt töltsük fel az alábbi kóddal: Private Sub gbVevő Click() stDocName = "Vevők" If MsgBox("Új Vevőt kíván felvinni?", vbYesNo, "Vevő űrlap megnyitása") = vbYes Then DoCmd.OpenForm stDocName DoCmd.GoToRecord , , acNewRec Else stLinkCriteria = "[Vevő az]=" & Me![Vevő az] DoCmd.OpenForm stDocName, , , stLinkCriteria End If DoCmd.Close acForm, MeName End Sub Milyen feladatot lát el ez a kód? Az " stDocName

= "Vevők" sor a Segédfüggvények modulban deklarált, string típusú, stDocName nevű változónak ad értéket. A "MsgBox("Új Vevőt kíván felvinni?", vbYesNo, "Vevő űrlap megnyitása") = vbYes" feltétel akkor ad vissza igaz értéket, ha a megjelenítendő üzenetablakon (Msgbox) belül az Igen (vbYes) gombra kattint a felhasználó. Itt jegyeznénk meg, hogy a Microsoft Access-ben a különböző típusú objektumokat az előtagjuk alapján lehet megkülönböztetni: - a vb a Visual Basic objektumok előtagja, - míg az ac az Access objektumokat jelöli. Ha a felhasználó az Igen gombra kattint az üzenetablakban, az elágazás (If.ThenElseEnd If) igaz ágában folytatódik a művelet végrehajtása Ebben az esetben megnyitódik a Vevők űrlap (DoCmd.OpenForm stDocName), majd egy új rekordra lépteti azt a Microsoft Access (DoCmd.GoToRecord , , acNewRec) A DoCmd objektum GotoRecord metódusa a RekordraUgrás műveletet hajtja

végre Visual Basicben. Szintaxis: DoCmd.GoToRecord [objektumtípus, objektumnév][, rekord][, eltolás] A GoToRecord metódus a következő argumentumokkal rendelkezik. Argumentum objektumtípus objektumnév Leírás A következő belső állandók egyike: -acActiveDataObject (alapérték): az aktív objektum -acDataForm: űrlap -acDataQuery: lekérdezés -acDataTable: tábla Egy karakterlánc-kifejezés, amely az objektumtípus argumentum által kijelölt típusú objektum érvényes neve. 63. Barhács OktatóKözpont Argumentum rekord eltolás Ms-Access modul - 5. fejezet Leírás A következő belső állandók egyike: -acFirst: elsőre -acGoTo: megadott rekordra -acLast: utolsóra -acNewRec: újra -acNext (alapérték): következőre -acPrevious: előzőre Ha ezt az argumentumot üresen hagyjuk, akkor az alapértelmezett állandó (acNext) lép érvénybe. Egy numerikus kifejezés, amely az előre vagy hátra mozgatandó rekordok számát jelenti, ha a rekord

argumentumban acNext vagy acPrevious állandót adunk meg, vagy azt a rekordot jelenti, amelyre akkor ugrunk, ha a rekord argumentumban acGoTo állandót adunk meg. A kifejezés eredményének egy érvényes rekordszámnak kell lennie. Lehet látni, hogy az objektumtípus ill. objektumnév paramétereket üresen hagytuk (ezt jeleztük a két vesszővel az utasításban), csak a rekord paramétert állítottuk úgy be, hogy új rekordra adódjon a vezérlés. Ezáltal az utasítás az éppen aktív (a fókuszt tartalmazó) objektumon hajtódik végre. A fókuszt mindig az utolsónak megnyitott objektum tartalmazza, ebben az esetben a "Vevők" űrlap. Mi a helyzet azonban akkor, ha a felhasználó a Nem gombot választja az üzenetablakban. Az "stLinkCriteria="[Vevő az]="&Me![Vevő az]" sor a Segédfüggvények modulban deklarált, string típusú, stLinkCriteria nevű változónak ad értéket, oly módon hogy a "[Vevő az]"

stringliterálhoz hozzáfűzi (&) a Me!Vevő az értékét. A Me kulcsszó azt az objektumot jelöli ahol a kód található, ebben az esetben a Vevők űrlapot. Ezen űrlap Vevő az objektumának (beviteli mező) értékét fogja a feltételbe berakni. Az OpenForm metódus szintaxisa: DoCmd.OpenForm űrlapnév [, nézet][, Szűrő neve][, [, adatmód][, ablakmód][, megnyitási argumentumok] where feltétel] Mint látható itt csak az űrlapnév, ill. a where feltétel paramétereknek adtunk értéket A where feltétel egy karakterlánc-kifejezés, amely egy érvényes SQL WHERE záradék a WHERE szó nélkül, pl. [Vevő az]=1 Ez azt eredményezi, hogy a megnyitandó űrlap a megadott feltétel szerinti rekordra ugorva nyílik meg. Akár az igaz, akár a hamis ágat hajtjuk végre a műveletsorozat végén, mindig végrehajtjuk a DoCmd.Close acForm, MeName utasítást, mely bezárja a kódot tartalmazó objektumot (űrlapot). 64. Barhács OktatóKözpont Ms-Access modul

- 5. fejezet A ! és a . (pont) operátor használata a kifejezésekben Az azonosítóban a ! és a . (pont) operátor arra használható, hogy jelezze az utána következő elem típusát. A ! operátor jelzi, hogy felhasználó által definiált elem (egy gyűjtemény eleme) következik. A ! operátort használjuk például, ha egy nyitott űrlapra, egy nyitott jelentésre, illetve a nyitott űrlap vagy jelentés egy vezérlőelemére hivatkozunk. Azonosító Forms![Számla törzs] Reports![ Számla] Forms![ Számla törzs]![Számla az] Mire vonatkozik A nyitott Számla törzs űrlap A nyitott Számla jelentés A nyitott Számla törzs űrlap Számla az vezérlőeleme A . (pont) operátor általában azt jelzi, hogy a Microsoft Access által definiált elem következik. Ez használandó például, ha egy űrlap, jelentés vagy vezérlőelem tulajdonságára szeretnénk hivatkozni. A . (pont) operátor arra is használható, hogy egy SQL utasításban, egy Visual Basic for

Application metódusban vagy egy gyűjteményben található mezőértékre hivatkozzunk. A Forms![Számla törzs]Controls azonosító például a Számla törzs űrlap Controls gyűjteményére vonatkozik. Mivel azonban az űrlapoknál és a jelentéseknél a Controls gyűjtemény az alapértelmezett gyűjtemény, általában nem szükséges rá hivatkoznunk. Raktár törzshöz kapcsolódó űrlapok létrehozása Magát a módosító űrlapokat nem kell létrehoznunk, hiszen az Űrlapnév(Auto) néven már szerepel az adatbázisunkban. Az alábbi űrlapokra kérjük a "Mentés másként" opciót és mentsük: - Alkatrész típusok(Auto): Alkatrész típusok, - Raktár készlet(Auto): Raktár készlet, - Gyártók(Auto): Gyártók, - Szállítók(Auto): Szállítók néven. Most nyissuk meg a Raktár törzset tervezésre, majd a Vezérlőelem eszköztáron kapcsoljuk ki a varázslót ( )! A varázsló kikapcsolt állapotában hozzunk létre egy gombcsoportot a törzs

űrlapon, oly módon hogy először létrehozunk egy Téglalap vezérlőelemet, melynek a Speciális hatás tulajdonságát domborúra állítjuk. Erre a kiemelkedő űrlapobjektumra helyezzük el aztán a gombjainkat. 65. Barhács OktatóKözpont A gombok címe "Alkatrészadatok módosítása" "Típusadatok módosítása" "Gyártóadatok módosítása" "Szállítóadatok módosítása" Ms-Access modul - 5. fejezet A gombok neve "gbAlkatresz" "gbTipus" "gbGyarto" "gbASzallito" Kérjük ki a most létrehozott parancsgombok Tulajdonságlapját és az Esemény fülön válasszuk ki a Kattintásra eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a kódszerkesztőt, majd a megjelenő kódablakban a "Private Sub gb Click()" és az "End Sub" közötti részt töltsük fel az alábbi kóddal: Private Sub gb. Click() stDocName = "." If

MsgBox("Új . kíván felvinni?", vbYesNo, " űrlap megnyitása") = vbYes Then DoCmd.OpenForm stDocName DoCmd.GoToRecord , , acNewRec Else stLinkCriteria = "[. az]=" & Me![ az] DoCmd.OpenForm stDocName, , , stLinkCriteria End If DoCmd.Close acForm, MeName End Sub Ahol a helyére a megfelelő nevek kerülnek. 66. Barhács OktatóKözpont Ms-Access modul - 6. fejezet Új számla kiállítása a Számítógépbolt adatbázisban A Sztornó és a Sztornózott számlák űrlapok létrehozása Az adatbázis alkalmazásunkban van már olyan űrlap, mely az "élő", aktív számlák adatait mutatja, ez a Számla törzs. Természetesen szükség esetén meg kell tudnunk jeleníteni a lesztornózott (visszavont), ill. a sztornó (ellen) számlákat is A lekérdezések kialakításakor már meghatároztuk azokat a feltételeket, melyek alapján az aktív, a sztornózott, és a sztornó számlák különválogathatóak. Ezeket a feltételeket

kell alkalmaznunk akkor is, mikor ezen számlák adatait tartalmazó űrlapok rekordforrásait meghatározzuk. Magát az űrlapokat nem kell létrehoznunk, hiszen azok a Számla törzs másolatai lesznek. A Számla törzs űrlapra kérjük a "Mentés másként" opciót kétszer és mentsük: Sztornózott számlák ill. Sztornó számlák néven. 1 Sztornózott számlák űrlap kialakítása. 1.1 Nyissuk meg a Sztornózott számlák űrlapot "Tervező nézet"-ben! Jelenítsük meg az űrlap Tulajdonságlapját! Menjünk az Adat fülre! Kattintsunk az Rekordforrás mező mellett megjelenő jelzetű gombra! A megjelenő párbeszédablakban kattintsunk az Igen gombra! 1.2 Ha korlátozni akarjuk a megjelenített rekordokat, úgy feltételt kell megadnunk, mely az Sztornózott számlák esetén a Sztornózott mezőre vonatkozik. A rendszerünkben egy számla akkor sztornózott, ha a Sztornózott mező a visszavonási értéket, vagyis -1-t tartalmaz. 1.3 Vegyük fel a

lekérdezésbe a * jelet a táblából, ezáltal a lekérdezés kimenetébe belekerül a tábla összes mezője. Vegyük fel külön a Sztornózott mezőt, hiszen az "Összes mező"-re feltételt beállítani nem lehet (nincs olyan feltétel, mely minden mezőre igaz lenne). Állítsuk be a feltételt (-1), és hogy ne jelenjen meg duplán a kimenetben kapcsoljuk ki a megjelenítést. Ha készen vagyunk, zárjuk be a lekérdezés szerkesztőt. A megjelenő párbeszédablakban fogadjuk el az SQL kifejezés elmentését! 1.4 Menjünk át "Űrlap nézet"-be és vizsgáljuk meg az eredményt! Ha mindent rendben találtunk a "Számla törzs" címke feliratát írjuk át "Sztornózott számlák"ra, majd kérjünk mentést! Ezzel készen is vagyunk a Sztornózott számlák megjelenítéséért felelős űrlap kialakításával. Lássunk hozzá a Sztornó számlák űrlap kialakításához! 67. Barhács OktatóKözpont Ms-Access modul - 6. fejezet

2 Sztornó számlák űrlap kialakítása. 2.1 Nyissuk meg a Sztornó számlák űrlapot "Tervező nézet"-ben! Jelenítsük meg az űrlap Tulajdonságlapját! Menjünk az Adat fülre! Kattintsunk az Rekordforrás mező mellett megjelenő jelzetű gombra! A megjelenő párbeszédablakban kattintsunk az Igen gombra! 2.2 Ha korlátozni akarjuk a megjelenített rekordokat, úgy feltételt kell megadnunk, mely a Sztornó számlák esetén a Sztornózott mezőre vonatkozik. A rendszerünkben egy számla akkor ellen (sztornó) számla, ha a Sztornózott mező az eredeti számla számát, vagyis >0-t tartalmaz. 2.3 Vegyük fel a lekérdezésbe a * jelet a táblából, ezáltal a lekérdezés kimenetébe belekerül a tábla összes mezője. Vegyük fel külön a Sztornózott mezőt, hiszen az "Összes mező"-re feltételt beállítani nem lehet (nincs olyan feltétel, mely minden mezőre igaz lenne). Állítsuk be a feltételt (>0), és hogy ne jelenjen meg duplán a

kimenetben, kapcsoljuk ki a megjelenítést. Ha készen vagyunk, zárjuk be a lekérdezés szerkesztőt. A megjelenő párbeszédablakban fogadjuk el az SQL kifejezés elmentését! 2.4 Menjünk át "Űrlap nézet"-be és vizsgáljuk meg az eredményt! Ha mindent rendben találtunk a "Számla törzs" címke feliratát írjuk át "Sztornó számlák"-ra, majd kérjünk mentést! Ezzel készen is vagyunk a Sztornózott számlák megjelenítéséért felelős űrlap kialakításával. Kapcsoljuk fel a most létrehozott két számlát az űrlaphierarchiába! Nyissuk meg a Számla törzs űrlapot "Tervező nézet"-ben! A Vezérlőelem eszköztáron kapcsoljuk ki a varázslót ( )! A varázsló kikapcsolt állapotában hozzunk létre egy gombcsoportot a törzs űrlapon, oly módon hogy először létrehozunk egy Téglalap vezérlőelemet, melynek a Speciális hatás tulajdonságát domborúra állítjuk. Erre a kiemelkedő űrlapobjektumra helyezzük

el aztán a gombjainkat. 68. Barhács OktatóKözpont A gombok címe "Sztornózott számlák" "Sztornó számlák" "Új számlák" Ms-Access modul - 6. fejezet A gombok neve "gbSztorno" "gbSztornozott" "gbSzamla" Kérjük ki a most létrehozott parancsgombok Tulajdonságlapját és az Esemény fülön válasszuk ki a Kattintásra eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a kódszerkesztőt, majd a megjelenő kódablakban a "Private Sub gb Click()" és az "End Sub" közötti részt töltsük fel az alábbi kóddal: Private Sub gbSztorno Click() stDocName = "Sztornó számlák" DoCmd.OpenForm stDocName DoCmd.Close acForm, MeName End Sub Private Sub gbSztornozott Click() stDocName = "Sztornózott számlák" DoCmd.OpenForm stDocName DoCmd.Close acForm, MeName End Sub A kód megnyitja az újonnan létrehozott űrlapjainkat, majd bezárja a

szülő űrlapot. Kérjünk az űrlapra mentést, majd menjünk át "Űrlap nézet"-be és próbáljuk ki gombjainkat! Számla űrlap létrehozása A következő feladat, melyet meg kell oldanunk kissé bonyolultabb. Olyan módosító űrlapot kell létrehoznunk, mellyel lehetővé válik új számlák létrehozása (számlák adatainak módosítása nem megengedett). A feladat nem tűnik bonyolultnak, azonban több buktató is van: - A módosító űrlapról több táblába is be kell vinnünk adatokat, hiszen egy vásárlás a Számla és a Számla részletei táblákat is érinti. - Egy számlához több számlarészletező rekord is tartozhat, ezek felvitelének lehetőségét is biztosítani kell. - Az eladott alkatrész darabszámát le kell vonni a raktárkészletből. - Nem szabad engedélyezni, hogy a raktárban lévő mennyiségnél többet vegyenek fel a számlára. Az első két problémára a megoldást egy speciális fő és segédűrlap elkészítése adja, a

harmadik gond megoldása csak frissítő lekérdezéssel lehetséges. Az utolsó probléma megoldását csak olyan módon tudjuk megoldani, ha a raktárkészleti darabszámot is szerepeltetjük a módosító űrlapon, természetesen folyamatosan frissítve. Magát a főűrlapot nem kell létrehozni, hiszen már szerepel az adatbázisban Számlák(Auto) néven. Válasszuk a Fájl menü Mentés másként parancsát és adjuk az új űrlapnak a Számla nevet! Menjünk át "Űrlap nézet"-be és vizsgáljuk meg az eredményt! Ha mindent rendben találtunk kérjünk mentést! 69. Barhács OktatóKözpont Ms-Access modul - 6. fejezet A segédűrlapunk Számlák részletei néven található meg az adatbázisban. Válasszuk a Fájl menü Mentés másként parancsát és adjuk az új űrlapnak a Számla részletei nevet! Menjünk át "Űrlap nézet"-be és vizsgáljuk meg az eredményt! Ha mindent rendben találtunk kérjünk mentést! Hozzákezdhetünk

elkészítéséhez. a számlák részleteinek felviteléért felelős vezérlőelem 1. Ellenőrizzük, hogy be van-e kapcsolva a Vezérlőelem varázsló! Ha igen, akkor keressük meg a Segédűrlap/segédjelentés gombot az eszköztáron! Kapcsoljuk be (kattintsunk rá), majd kattintsunk az űrlapon a beviteli mezők alatti területre! Elindul a Segédűrlap/segédjelentés varázsló. 2. A varázsló első ablakában válasszuk a "Meglévő űrlap használata" lehetőséget! 3. Válasszuk ki a most létrehozott "Számla részletei" űrlapot! 4. A felismert kapcsolat a "Számlák részletei megjelenítése Számlák minden rekordjához Számla az használatával". Válasszuk ezt, majd menjünk Tovább! A következő ablakban bekéri a segédűrlapunk nevét, mely most ne változzon az eredeti "Számla részletei" névről, majd kattintsunk a befejezésre! 5. Állítsuk át a méreteket az alább látható módon, majd kérjünk mentést!!

Menjünk át "Űrlap nézet"-be és próbáljuk ki az új űrlapunkat! Vigyünk fel egy új Számla rekordot a főűrlap léptetőgombsora segítségével, majd rendeljünk a Számla rekordhoz két alkatrészt a segédűrlap léptetőgombjait használva! 70. Barhács OktatóKözpont Ms-Access modul - 6. fejezet Az alkatrészek hozzárendelésénél egy figyelmeztető üzenetet kapunk: mivel a mező formátuma numerikus, nem tud mit kezdeni a betűkből és számokból álló számlaazonosítóval. Nyissuk meg a Számla részletei nevű űrlapunkat "Tervező nézet"-ben és a tulajdonságlapjának Formátum fülén a Formátumot, az Adat fülén pedig a Beviteli maszkot állítsuk "SZ-99-"0000000 értékre. Próbáljuk meg újra az új Számla felvitelét! A rendszer már felvesz új számlát, ám még nem vonja le a számlán szereplő darabszámokat a raktárkészletből. Ha mindent rendben levőnek találtunk, kérjünk mentést! Elkészült

tehát az alapja a Számla módosító űrlapnak, azonban a felhasználók igényeinek minél szélesebb körű kielégítése végett még jópár kényelmi és biztonsági funkciót be kell állítanunk: 1. A segédűrlapon azonnal jelenjen meg az új számlaszám, mihelyst a főűrlapon kitöltődik a Számla az. 2. Az alkatrész lista túlságosan nagy Legyen lehetőség típusok szerint szűkíteni a listát. 3. Ne engedje meg a Számla űrlap, hogy a felhasználó több alkatrészt vegyen fel a számlára, mint amennyi a raktárkészletben szerepel. 4. És végül (de nem utolsósorban) vonja le a számlán szereplő darabszámokat a raktárkészletből. 71. Barhács OktatóKözpont Ms-Access modul - 6. fejezet Az első feladat megoldásához nyissuk meg a Számla nevű űrlapunkat "Tervező nézet"-ben és a Vevő az kombinált lista tulajdonságlapjának Esemény fülén válasszuk a "Frissítés után" lehetőséget. A megjelenő szerkesztőgombra

kattintva és a Kódszerkesztőt kiválasztva írjuk be a következő kódot: Private Sub KombináltLista AfterUpdate() Me![Számla részletei].[Form]![Számla az] = MeSzámla az Me.Számla részleteiRequery End Sub Itt egy új dolgot látunk: az űrlapunk egyik mezőjének eseményéhez kapcsolódó eljárásban, egy segédűrlapon lévő mezőre hivatkozunk. Pontosabban: a kód a Vevő lenyíló listából való választás után (amikor a Számla az már automatikusan kitöltődött - ne felejtsük: számláló adattípus!), automatikusan beírja segédűrlap Számla az mezőjébe a Számla űrlapon lévő Számla az értékét, majd frissíti az űrlapot. Hivatkozás egy segédűrlapra vagy egy segédjelentésre Hivatkozzunk a segédűrlapot vagy segédjelentést tartalmazó űrlap vagy jelentés segédűrlap vagy segédjelentés vezérlőelemére, majd a vezérlőelem Form vagy Report tulajdonsága segítségével hivatkozhatunk a tényleges segédűrlapra vagy segéd

jelentésre. Írjuk be annak az űrlapnak az azonosítóját, amely a segédűrlapot tartalmazza, majd írjuk be a segédűrlap vezérlőelemének a nevét, a . (pont) operátort és a Form tulajdonságot. A következő azonosító például a Megrendelések űrlap Megrendelések segédűrlapjára hivatkozik: Forms![Rendelések]![Rendelések segédűrlap].Form A Requery metódus egy adott űrlap vagy az aktív űrlapon lévő vezérlőelem alapjául szolgáló adatokat frissíti az űrlap vagy a vezérlőelem adatforrásának újralekérdezésével. Akkor használhatjuk a metódust, ha azt szeretnénk, hogy az űrlap vagy a vezérlőelem a legfrissebb adatokat jelenítse meg. A Requery metódus a következők egyikét teszi: - Újrafuttatja az űrlap vagy a vezérlőelem alapjául szolgáló lekérdezést. - Megjeleníti az új vagy megváltozott rekordokat, vagy eltávolítja a törölt rekordokat az űrlap vagy a vezérlőelem alapjául szolgáló táblából. - Frissíti a

megjelenített rekordokat az űrlap Szűrő (Filter) tulajdonságának változásai alapján. Menjünk át "Űrlap nézet"-be és próbáljuk ki a Számla űrlapunkat! Sajnos az alkatrészek felvitelénél a következő üzenetet jeleníti meg a Microsoft Access: 72. Barhács OktatóKözpont Ms-Access modul - 6. fejezet Ennek oka, hogy a frissítésnél a raktárkészlet azonosító (Rk az) még nem volt kitöltve, így a Microsoft Access az integritási szabályok megsértését érzékelte. Ezen probléma megoldása igen egyszerű: nyissuk meg a Számla részletei nevű űrlapunkat "Tervező nézet"-ben és az Rk az kombinált lista tulajdonságlapjának Adat fülén pedig az Alapértelmezett értéket állítsuk 1-re! Próbáljuk ki a Számla űrlapot! Ha mindent jól csináltunk a hibaüzenet eltűnik. A második feladat megoldásához, nyissuk meg a Számla részletei nevű űrlapunkat "Tervező nézet"-ben és hozzunk létre egy kombinált

listát a varázsló segítségével, mely az alkatrésztípusokat tartalmazza. Az Alkatrésztípus táblából mindkét mezőt tartalmazni fogja, de mivel a kulcs oszlopot elrejtjük csak a típus neve jelenik majd meg a listában. Mivel a számlarészletező táblában nincs At az mező, így nem kérhetjük a "Tárolja az értéket" lehetőséget, így válasszuk ki az "Emékezzen az értékre későbbi felhasználás céljából" opciót. A KombináltLista címkéje legyen "Alkatrésztípus"feliratú"! Most nyissuk meg az Rk az lenyíló lista tulajdonságlapját, menjünk az Adat fülre és a Sorforrás mezőre hívjuk meg a Lekérdezésszerkesztőt. A raktárkészlet azonosító sorforrásába vegyük fel az At az mezőt a következő feltétel beállítással: [Űrlapok]![Számla]![Számla részletei].[Form]![KombináltLista14], ahol a kombinált lista neve természetesen az általunk az előzőekben létrehozott új, kötetlen kombi panel

neve. A megjelenítést kapcsoljuk ki, hiszen csak a feltétel megadás miatt vettük fel a mezőt. 73. Barhács OktatóKözpont Ms-Access modul - 6. fejezet Az SQL utasítás frissítésére vonatkozó kérdésre válaszoljunk "Igen"-nel. E lekérdezés megváltoztatásától kezdve az alkatrész lista csak olyan alkatrészeket jelenít meg, melyek abba az alkatrésztípusba tartoznak, amelyik az általunk létrehozott kombinált listában látszik. Ahhoz, hogy meg tudjuk nyitni az űrlapot, és ne kapjunk hibaüzenetet (paraméterablakot), a kitöltetlen (kiválasztatlan) At az miatt (hiszen feltétel a lekérdezésben!), ennek is be kell állítani az alapértelmezett értékét. Nyissuk meg a Számla részletei nevű űrlapunkat "Tervező nézet"-ben és az Alkatrész azonosítót tartalmazó kombinált lista tulajdonságlapjának Adat fülén az Alapértelmezett értéket állítsuk 1-re! Kérjünk mentést és próbáljuk ki az űrlapot. Azt látjuk,

hogy nem történik semmi, hiába választunk ki bármilyen alkatrésztípust, az alkatrészlista nem változik. Az oka ennek az, hogy az űrlap betöltésekor futtatja le a Microsoft Access mindazon lekérdezéseket, melyek a vezérlőelemek sorforrásának feltöltéséhez szükségesek. Hogy a választásunk alapján megváltozzon az alkatrészlista, újralekérdezést kell végrehajtani a raktárkészletet tartalmazó kombinált listára. A feladat megoldásához nyissuk meg a Számla részletei nevű űrlapunkat "Tervező nézet"-ben és az általunk létrehozott kombinált lista tulajdonságlapjának Esemény fülén válasszuk a "Frissítés után" lehetőséget. A megjelenő szerkesztőgombra kattintva és a Kódszerkesztőt kiválasztva írjuk be a következő kódot: Me.KombináltLista12Requery Ez a kód, a kombinált lista egy elemének kiválasztása után újrelekérdezést hajt végre az Rk az mezőhöz kötött kombinált listán. Ellenőrizzük az

eredményt és mentsük az űrlapot! Oldjuk meg, hogy a felhasználók addig ne férjenek hozzá az alkatrész számlára való felviteléhez, amíg nem választottak Alkatrésztípust! Jelöljük ki többszörös kijelöléssel az Rk az, a Gyártási szám, és a Darab mezőket, majd a tulajdonságlap Adat fülén az Engedélyezve tulajdonságot állítsuk "Nem"-re! 74. Barhács OktatóKözpont Ms-Access modul - 6. fejezet Most az alkatrésztípust tartalmazó kombinált lista tulajdonságlapjának Esemény fülén válasszuk újra a "Frissítés után" lehetőséget. Egészítsük ki a kódot: Private Sub KombináltLista14 AfterUpdate() Me.KombináltLista12Enabled = True Me.Gyártási számEnabled = True Me.DarabEnabled = True Me![KombináltLista12].Requery End Sub Mit csinál a kód? Az alkatrésztípusokat tartalmazó kombinált lista egy elemének kiválasztása után "visszakapcsolja" (engedélyezetté teszi) az előbb letiltott

vezérlőelemeket, majd újrelekérdezést hajt végre a az Rk az mezőhöz kötött kombinált listán. A harmadik feladat megoldásához nyissuk meg a Számla részletei nevű űrlapunkat "Tervező nézet"-ben! Hozzákezdhetünk a számlák részleteinek ellenőrzéséért felelős vezérlőelem elkészítésének. 1. Ellenőrizzük, hogy be van-e kapcsolva a Vezérlőelem varázsló! Ha igen, akkor keressük meg a Segédűrlap/segédjelentés gombot az eszköztáron! Kapcsoljuk be (kattintsunk rá), majd kattintsunk az űrlapon a beviteli mezők alatti területre! Elindul a Segédűrlap/segédjelentés varázsló. 2. A varázsló első ablakában válasszuk a "Meglévő űrlap használata" lehetőséget! 3. Válasszuk ki a "Raktár készlet" űrlapot! 4. A felismert kapcsolat a "Raktár készlet megjelenítése Számlák részletei minden rekordjához Rk az használatával". Válasszuk ezt, majd menjünk Tovább! A következő ablakban bekéri

a segédűrlapunk nevét, mely most ne változzon az eredeti "Raktár készlet" névről, majd kattintsunk a befejezésre! 5. Adjuk meg az új segédűrlap méreteit, a tulajdonságlap Formátum fülén a Balra, Fel, Szélesség, Magasság értékeket állítsuk 0-ra, majd kérjünk mentést! A Raktár készlet segédűrlapot azért rejtettük el, mert a benne lévő adatokra az ellenőrzéshez szükség van, ám magát az űrlapot nem akarjuk megjeleníteni, hiszen ebbe közvetlenül nem viszünk be adatokat. Jelenítsük meg az Rk az mezőhöz kötött kombinált lista tulajdonságlapját! Menjünk az Esemény fülre, majd válasszuk a "Frissítés előtt" lehetőséget. A megjelenő szerkesztőgombra kattintva és a Kódszerkesztőt kiválasztva írjuk be a következő kódot: Private Sub KombináltLista12 BeforeUpdate(Cancel As Integer) If IsNull([KombináltLista14]) Then MsgBox "Ki kell választania egy terméket." Cancel = True End If End Sub A kód

mielőtt a listát frissítené, megvizsgálja, hogy van-e kiválasztott alkatrésztípus, ha nincs, a frissítés nem történik meg. Az IsNull függvény ebben az esetben egy logikai értéket ad vissza, mely megmutatja, hogy a kombinált lista tartalmaz-e érvényes értéket. Ha a visszatérési értéke igaz, a kombinált lista Null értéket tartalmaz. Ez ebben az esetben természetesen túlbiztosítás (az alkatrésztípus kombinált listának van alapértelmezett értéke, soha nem lesz Null!). 75. Barhács OktatóKözpont Ms-Access modul - 6. fejezet Most válasszuk a "Frissítés után" lehetőséget. A megjelenő szerkesztőgombra kattintva és a Kódszerkesztőt kiválasztva írjuk be a következő kódot: Private Sub KombináltLista12 AfterUpdate() Me.Raktár készletSetFocus Me.Raktár készletRequery Me.Gyártási számSetFocus End Sub A kód első lépésben átadja a fókuszt a Raktár készlet segédűrlapnak. Erre azért van szükség, mivel csak

akkor tudjuk újralekérdezni a teljes segédűrlapot, ha rajta van a fókusz. Az újralekérdezés után automatikusan visszaadja a fókuszt a következő (Gyártási szám) mezőnek. Miért van erre szükség? A nem látható, raktárkészletet adatokat tartalmazó segédűrlap az Rk az-hoz kötött, vagyis annak az alkatrésznek az adatait tartalmazza (többek között a raktárban meglévő darabszámot), melyet a Számla részletein kiválasztott a felhasználó. Sajnos itt is igaz, hogy a frissítés nem automatikus, vagyis csak az űrlap betöltésekor futtatja le a Microsoft Access mindazon lekérdezéseket, melyek a vezérlőelemek sorforrásának feltöltéséhez szükségesek. Tehát ha azt akarjuk, hogy a kiválasztott alkatrészre vonatkozó adatokat tartalmazza a Raktár készlet segédűrlap, akkor frissítenünk kell annak tartalmát az alkatrész kiválasztása után. Hogyan fogjuk megoldani, hogy a rendszer ellenőrizze, hogy a Darab mezőbe nem került-e több

alkatrész, mint amennyi a Raktár készlet segédűrlap Darab mezőjében megtalálható? Kérjük ki a Darab mező tulajdonságlapját. És az Adat fül Érvényességi szabály mezőjébe írjuk a következőt: <=[Űrlapok]![Számla]![Számla részletei].[Form]![Raktár készlet]![Darab] And >0 Tehát a Darab mezőbe beírt értéknek kisebbnek (vagy egyenlőnek kell lenni), mint a Raktár készlet segédűrlap Darab mezőjében szereplő értéknek, de nagyobbnak mint 0. Vigyünk fel Érvényesítési szöveget is: Többet vett fel, mint a raktárkészlet, vagy negatív értékkel töltötte fel a mezőt! Próbáljuk ki a korlátozást! Próbáljunk meg valamelyik adatból többet felvenni, a Számlára, mint a Raktár készletben szereplő érték! Ha megjelenik a hibaüzenet ablak, a mi általunk meghatározott szöveggel, kérjünk mentést! 76. Barhács OktatóKözpont Ms-Access modul - 6. fejezet Az utolsó feladat a raktárkészletből történő levonás

megvalósítása, a számlára felvitt adatok alapján. Ezt egy frissítő lekérdezéssel tudjuk megoldani, oly módon, hogy: 1. Elkészítünk egy választó lekérdezést, melybe a Raktár készlet táblából az Rk az és a Darab mezőket vesszük fel. 2. Az Rk az mezőhöz beállítunk egy feltételt: [Forms]![Számla]![Számla részletei].[Form]![KombináltLista12], mely olyan módon szűri a Raktár készlet rekordokat, hogy csak azok kerülnek be az eredményhalmazba, melyek megegyeznek a Számla űrlap Számla részletei segédűrlapján található Rk az mezőhöz kötött kombinált lista aktuális értékével. 3. Átállítjuk a lekérdezés típusát "Frissítő lekérdezés"-re 4. A Darab mező Módosítás cellájába beírjuk a következőt: [Raktár készlet].[Darab]-[Forms]![Számla]![Számla részletei][Form]![Darab], vagyis a leszűrt rekord Darab mezőjének értékéből kivonja a Számla űrlap Számla részletei segédűrlapján található Darab

mező aktuális értékét. 5. Mentjük a lekérdezést "Számla" néven! Az elkészült lekérdezés SQL kódja: UPDATE [Raktár készlet] SET [Raktár készlet].Darab = [Raktár készlet].[Darab]-[Forms]![Számla]![Számla részletei][Form]![Darab] WHERE ((([Raktár készlet].Rk az)= [Forms]![Számla]![Számla részletei].[Form]![KombináltLista12])); Finomítsunk egy kicsit a Számla űrlapunkon! Tiltsuk le a Számla részletei űrlap tulajdonságának Formátum fülén a Léptetőgombok engedélyezését, helyette készítsünk mi (varázsló nélkül!) egy "Következő" feliratú, gbUjrekord nevű gombot. Mentsük a változtatásokat, majd a Számla űrlapon is hozzunk létre egy "Bevitel vége" feliratú, gbKilep nevű gombot. 77. Barhács OktatóKözpont Ms-Access modul - 6. fejezet Kössünk kódokat a gombokhoz. A gbUjrekord Kattintásra kódja: Private Sub gbUjrekord Click() DoCmd.SetWarnings (False) DoCmd.OpenQuery "Számla",

acNormal, acEdit DoCmd.GoToRecord , , acNewRec End Sub A SetWarnings metódus a Figyelmeztetés beállítása műveletet hajtja végre Visual Basicben. A FigyelmeztetésBeállítása művelet segítségével be- vagy kikapcsolhatjuk a rendszer üzeneteit. Egyetlen paramétere van, mely egy logikai érték, amely ha igaz, a rendszerüzenetek megjelennek, ha hamis, a rendszerüzenetek nem jelennek meg. Az OpenQuery metódus a LekérdezésMegnyitása műveletet hajtja végre Visual Basicben. A LekérdezésMegnyitása művelet segítségével megnyithatunk egy választó vagy kereszttáblás lekérdezést Adatlap nézetben, Tervező nézetben vagy Nyomtatási kép nézetben. Ez a művelet egy művelet lekérdezést futtat A lekérdezéshez megválaszthatjuk az adatbevitel módját is. Argumentum lekérdezésnév nézet adatmód Leírás Egy karakterlánc-kifejezés, amely az aktuális adatbázisban egy lekérdezés érvényes neve. A következő belső állandók egyike: AcViewDesign:

tervező nézet acViewNormal (alapérték): adatlap nézet acViewPreview : előkép nézet. A következő belső állandók egyike: acAdd: hozzáadás acEdit (alapérték): szerkesztés acReadOnly : csak olvasás A kód tehát kikapcsolja a Microsoft Access rendszerüzeneteit ("Ön egy frissítő lekérdezést fog lefuttatni"), majd lefuttatja a Számla frissítő lekérdezést, végül egy új rekordra lép. Vagyis minden egyes alkatrész felvitelekor azonnal módosítja a raktárkészletet. A gbKilep Kattintásra kódja: Private Sub gbKilep Click() DoCmd.SetWarnings (False) DoCmd.OpenQuery "Számla", acNormal, acEdit DoCmd.Close acForm, MeName End Sub A kód az utolsó rekord mentésekor játszik szerepet, ugyanazt a műveletsort végzi el, mint a gbUjrekord, annyi különbséggel, hogy a raktárkészlet módosítása után bezárja az űrlapot. Ha készen vagyunk, ne felejtsünk el mentést kérni! 78. Barhács OktatóKözpont Ms-Access modul - 6. fejezet

Kényelmi ill. ellenőrző funkciókat többet is ki lehetne találni, de ennek a néhány lehetőségnek a megvalósítása megmutatta, hogy milyen irányban érdemes elkezdeni egy felhasználói felület fejlesztését. A felhasználóbarát környezet kialakítása nem csak azt jelenti, hogy könnyű az adatbevitel, de azt is, hogy nem engedjük a felhasználónak azt, hogy hibázzon, így gyorsítjuk meg az alkalmazással történő munkáját. Nyissuk meg a Számla űrlapot "Tervező nézet"-ben! Jelöljük kia a Dátum mezőt, majd jelenítsük meg a tulajdonságlapját. Válasszuk az Esemény fület , majd a Dupla kattintásra mezőt! A megjelenő szerkesztőgombra kattintva és a Kódszerkesztőt kiválasztva írjuk be a következő kódot: Private Sub Dátum DblClick(Cancel As Integer) Me.Dátum = Date End Sub Így tehát a felhasználó el sem tévesztheti a dátumot, ha duplát kattint a mezőn, abba az aktuális dátum automatikusan beleíródik. Most kérjük

ki a Számla űrlap tulajdonságlapját, menjünk az Esemény fülre, és válasszuk a Bezárásra eseményt! A megjelenő szerkesztőgombra kattintva és a Kódszerkesztőt kiválasztva írjuk be a következő kódot: Private Sub Form Close() DoCmd.SetWarnings (True) End Sub Visszaállítjuk a rendszerüzenetek megjelenítését, hisz azt mégsem szeretnénk, ha ezentúl pl. a törlési jóváhagyások sem jelennének meg Ugyanis ha kikapcsoljuk a rendszerüzenetek megjelenítését a Visual Basicben, akkor később be is kell kapcsolnunk, különben kikapcsolva marad még akkor is, ha felhasználó lenyomja a CTRL+BREAK billentyűkombinációt vagy a Visual Basic egy töréspontot talál. Mentsük a Számla űrlapunkat, majd próbáljuk ki a lehetőségeit! 79. Barhács OktatóKözpont Ms-Access modul - 7. fejezet Számla sztornózása a Számítógépbolt adatbázisban Sztornózási akció akkor fordul elő, ha egy élő, aktív számlát valami miatt vissza akarunk vonni

(visszahozzák az árut, elrontottuk a számlát stb.) Ilyen esetekben persze nem elég megjelölnünk a számlát, mint sztornózottat, hanem a számlaértéket is le kell vonnunk, egy esetleges leltár számára. Ha ugyanis az alkatrészt, amit visszahoztak kiadottnak tekintjük, a raktárkészletben többlet keletkezik, viszont az elszámolás tekintetében épp ellenkezőleg, hiány mutatkozna. Éppen ezért alakítottuk ki oly módon a táblaszerkezetet, hogy a számlákra, a sztornózási folyamat során, ellenszámlát állítunk ki, mely az eladott alkatrész darabszámokat (és ezáltal értékeket) tartalmazza, természetesen negatív előjellel, ami levonás esetén valójában hozzáadást fog eredményezni. A számla sztornózását a Számla törzsről lehet majd kezdeményezni, a lesztornózni kívánt számlára kell állni és elindítani a visszavonási folyamatot. Mi a feladatunk tehát a sztornózási folyamat során? 1. A lesztornózott számla Sztornózott

mezőjét -1-re kell állítani 2. Fel kell venni egy új számlát a Számlák táblába, melynek Sztornózott mezője az eredeti (lesztornózott) számla számát tartalmazza. 3. Fel kell venni annyi rekordot a Számlák részletei táblába, amennyi az eredeti (lesztornózott) számlához tartozott, a Darab mező értékét természetesen az eredeti érték negatív előjelű párjával helyettesítve. 4. Végül le kell vonnunk a raktárkészletből az új számlarészletező rekordokban található darabszámot (mely ebben az esetben a mínusz előjel miatt hozzáadás lesz). 1. "Sszámla elkezd" frissítő lekérdezés elkészítése Kattintsunk az Adatbázis ablakban a Lekérdezésekre, majd az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Számlák táblára! Vegyük fel a táblából a Sztornózott ill. a

Számla az mezőket! Ha készen vagyunk, állítsuk át a lekérdezés típusát "Frissítő lekérdezés"-re! Állítsuk be a Sztornózott mező Módosítás cellájának értékét -1-re! Állítsunk be feltételt a Számla az mezőre, mely legyen "[Űrlapok]![Számla törzs]![Számla az]"! Kérjünk mentést az új lekérdezésünkre, adjuk neki a "Sszámla elkezd" nevet! 80. Barhács OktatóKözpont Ms-Access modul - 7. fejezet A Módosítás mező értékének -1-re történő változtatása biztosítja, hogy az adott élő, aktív számla a rendszerben ezután mint sztornózott vagyis visszavont számla fog szerepelni. A Számla az feltétele biztosítja, hogy azt a Számla rekordot sztornózzuk, amelyik a Sztornózás elkezdésekor a Számla törzsön látszik. Az SQL kódja ennek a frissítő lekérdezésnek: UPDATE Számlák SET Számlák.Sztornózott = -1 WHERE (((Számlák.Számla az)=[Űrlapok]![Számla törzs]![Számla az])); 2.

"Sszámla hozzáfűz" hozzáfűző lekérdezés elkészítése Kattintsunk az Adatbázis ablakban a Lekérdezésekre, majd az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Számlák táblára! Vegyük fel a táblából a Vevő az, az Eladó az, ill. a Számla az mezőket! Menjünk a lekérdezés negyedik üres mezőjére! Írjuk be a Mező cellába: "Kif1: Date()" (a mező neve nem lényeges, hiszen az itt található értéket úgyis a Számlák tábla megfelelő mezőjében -Dátum- fogjuk tárolni a hozzáfűzés után). Ha készen vagyunk, állítsuk át a lekérdezés típusát "Hozzáfűző lekérdezés"-re! A Vevő az és az Eladó az mezők értékét a megfelelő mezőkhöz fűzzük hozzá, a Számla az azonban a Sztornózott mezőbe kerül, hiszen az ellenszámla Sztornózott mezője az

eredeti (lesztornózott) számla számát tartalmazza. Az általunk létrehozott kifejezést tartalmazó mező értéke természetesen a Dátum mezőbe kerül. 81. Barhács OktatóKözpont Ms-Access modul - 7. fejezet Állítsunk be feltételt a Számla az mezőre, mely legyen "[Űrlapok]![Számla törzs]![Számla az]"! A Számla az ezen feltétele biztosítja, hogy az ellenszámla Sztornózott mezőjébe annak a Számla rekordnak az azonosítója kerüljön, amelyik a Sztornózás elkezdésekor a Számla törzsön látszik. Kérjünk mentést az új lekérdezésünkre, adjuk neki a "Sszámla hozzáfűz" nevet! Az SQL kódja ennek a hozzáfűző lekérdezésnek: INSERT INTO Számlák ( Vevő az, Eladó az, Sztornózott, Dátum ) SELECT Számlák.Vevő az, SzámlákEladó az, SzámlákSzámla az, Date() AS Kif1 FROM Számlák WHERE (((Számlák.Számla az)=[Űrlapok]![Számla törzs]![Számla az])); 3. "Sszámla részletei hozzáfűz" hozzáfűző

lekérdezés elkészítése Kattintsunk az Adatbázis ablakban a Lekérdezésekre, majd az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Számlák részletei táblára! Vegyük fel a táblából az Rk az, a Gyártási szám, ill. a Számla az mezőket! Két kifejezést tartalmazó mezőt is fel kell vennünk: - Kif1: [Űrlapok]![Sztornó számlák]![Számla az],ill. - Kif2: [Darab]*-1 tartalommal. Az első tartalmazza a Sztornó számla számlaszámát, melyet a sztornózási folyamat során a Sztornó számlák űrlapról veszünk. A második a megfelelő (negatív előjelű) darabszám értéket fogja tartalmazni. Ha készen vagyunk, állítsuk át a lekérdezés típusát "Hozzáfűző lekérdezés"-re! 82. Barhács OktatóKözpont Ms-Access modul - 7. fejezet Az Rk az és a Gyártási szám mezők

értékét a megfelelő mezőkhöz fűzzük hozzá, a Számla az-t azonban nem fűzzük hozzá egyik mezőhöz sem, hiszen ezt csak azért vettük fel, hogy a megfelelő rekordokat ki tudjuk válogatni. Erre a mezőre állítsunk be feltételt, mely legyen "[Űrlapok]![Sztornó számlák]![Sztornózott]"! A lekérdezések logikájából adódóan a leválogatás minden olyan rekordot tartalmazni fog, ahol a feltétel igaz, így a rendszer annyi rekordot fűz hozzá a Számla részletei táblához, amennyi az eredeti, visszavont számlához tartozott. A Kif1 mező értéke (a sztornó számla száma) a Számla az-ba, míg a Kif2 kifejezés értéke (a mínusz előjeles érték) a Darabszám mezőbe kerül. Kérjünk mentést az új lekérdezésünkre, adjuk neki a "Sszámla részletei hozzáfűz" nevet! Az eredmény, hogy a lekérdezés lefuttatása után létrejön a Számla részletei táblában annyi sztornó rekord, amennyi az eredeti, lesztornózott számlához

tartozott, ugyanazokkal az alkatrész azonosítókkal, a darabszámokban mínusz előjellel (hiszen visszahozták a termékeket). Az SQL kódja ennek a hozzáfűző lekérdezésnek: INSERT INTO [Számlák részletei] (Számla az, Rk az, [Gyártási szám], Darab) SELECT [Űrlapok]![Sztornó számlák]![Számla az] AS Kif1, [Darab]*-1 AS Kif2, [Számlák részletei].Rk az, [Számlák részletei][Gyártási szám] FROM [Számlák részletei] WHERE ((([Számlák részletei].Számla az)= [Űrlapok]![Sztornó számlák]![Sztornózott])); 4. ”Sszámla” frissítő lekérdezés elkészítése Kattintsunk az Adatbázis ablakban a Lekérdezésekre, majd az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Számlák részletei és Raktár készlet táblákra! 83. Barhács OktatóKözpont Ms-Access modul - 7. fejezet Vegyük fel a

táblából a Darab ill. a Számla az mezőket! Ha készen vagyunk, állítsuk át a lekérdezés típusát "Frissítő lekérdezés"-re! Állítsunk be feltételt a Számla az mezőre, mely legyen "[Űrlapok]![Sztornó számlák]![Számla az]"! Állítsuk be a Darab mező Módosítás cellájának értékét "[Raktár készlet].[darab]-[Számlák részletei][darab]"-ra! Kérjünk mentést az új lekérdezésünkre, adjuk neki a "Sszámla" nevet! A Számla az Módosítás cellájának értékét nem állítjuk be egyik mezőhöz sem, hiszen ezt csak azért vettük fel, hogy a megfelelő rekordokat ki tudjuk válogatni. A beállított feltételből adódóan a leválogatás minden olyan rekordot tartalmazni fog, ahol a Számla az megegyezik a Sztornó számlák űrlapon szereplővel, és minden ilyen rekord esetén végrehajtja a módosítást (levonja - a mínuszérték miatt hozzáadja - a darabszámot)- a Raktár készlet táblában! Az SQL

kódja ennek a frissítő lekérdezésnek: UPDATE [Raktár készlet] INNER JOIN [Számlák részletei] ON [Raktár készlet].Rk az = [Számlák részletei]Rk az SET [Raktár készlet].Darab = [Raktár készlet].[darab]-[Számlák részletei][darab] WHERE ((([Számlák részletei].Számla az)= [Űrlapok]![Sztornó számlák]![Számla az])); 84. Barhács OktatóKözpont Ms-Access modul - 7. fejezet A sztornózási folyamat kialakítása Nyissuk meg a Számla törzs űrlapot "Tervező nézet"-ben és hozzunk létre egy új gombot "Számla sztornózása" felirattal, "gbSztornirozas" néven, az alább látható elrendezésben! Kérjük ki a most létrehozott parancsgomb Tulajdonságlapját és az Esemény fülön válasszuk ki a Kattintásra eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a kódszerkesztőt, majd a megjelenő kódablakban a "Private Sub gbSztornirozas Click()" és az "End Sub"

közötti részt töltsük fel az alábbi kóddal: Private Sub gbSztornirozas Click() If MsgBox("Biztos sztornózni akarja ezt a számlát?", vbYesNo, "Számla sztornózása") = vbYes Then DoCmd.SetWarnings (False) blNyitas = True DoCmd.OpenQuery "Sszámla elkezd", acNormal, acEdit DoCmd.OpenQuery "Sszámla hozzáfűz", acNormal, acEdit DoCmd.OpenForm "Sztornó számlák", acNormal, , , , acHidden DoCmd.OpenQuery "Sszámla részletei hozzáfűz", acNormal, acEdit DoCmd.OpenQuery "Sszámla", acNormal, acEdit DoCmd.Close acForm, "Sztornó számlák" DoCmd.OpenForm "Sztornó számlák" blNyitas = False DoCmd.Close acForm, MeName End If End Sub 85. Barhács OktatóKözpont Ms-Access modul - 7. fejezet Ezután nyissuk meg a Sztornó számlák űrlapot "Tervező nézet"-ben és kérjük ki az űrlap Tulajdonságlapját és az Esemény fülön válasszuk ki a Betöltésre eseményt! A

mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a kódszerkesztőt, majd a megjelenő kódablakban a "Private Sub Form Load()" és az "End Sub" közötti részt töltsük fel az alábbi kóddal: Private Sub Form Load() If blNyitas Then DoCmd.GoToRecord , , acLast End If End Sub Mit csinálnak ezek a kódok, vagyis milyen a sztornírozás általunk kialakított folyamata? A "Számla sztornózása" gombot választva a rendszer megjelenít egy üzenetablakot, melyen ha a felhasználó az Igen gombra kattint, elindul a sztornózási folyamat. A DoCmd.Setwarnings (False) beállítással elnyomjuk a Microsoft Access üzeneteit ("Ön egy frissítő lekérdezést fog futtatni"), majd a blNyitas nevű logikai változónak igaz értéket adunk. Ez a változó mutatja meg a rendszernek, hogy a Sztornó számlák űrlapot, milyen módon nyitottuk meg: ha értéke hamis, akkor a Számla törzsön lévő "Sztornó számlák"

feliratú gombhoz tartozó, ha értéke igaz, akkor pedig ez az eseményvezérelt eljárás indította el a betöltési folyamatot. Miután lefuttattuk az első két akció lekérdezést, megnyitjuk a Sztornó számlák nevű űrlapot rejtetten, hiszen ebben az esetben felhasználjuk ugyan az űrlapon található mezők értékét, de nem akarjuk látni az űrlapot magát, hiszen még nincs meg az összes megjelenítendő adat (a segédűrlap adatai még nincsenek az adatbázisban). Ekkor vizsgálja meg a rendszer a blNyitas nevű változót, és ha értéke igaz, az űrlapot az utolsó rekordra lépteti (ha értéke hamis, nem történik semmi). Ezek után lefuttatjuk a következő két lekérdezést, majd a frissítés elérése érdekében bezárjuk, majd újra megnyitjuk a Sztornó számlák űrlapot, most már Normál módban, tehát látható lesz az űrlap. Hogy a blNyitas változó ne okozzon a későbbiekben problémát, (hiszen a globális változó az értékét mindaddig

megtartja, amíg azt meg nem változtatjuk) értékét visszaállítjuk hamisra. 86. Barhács OktatóKözpont Ms-Access modul - 7. fejezet Ezek után bezárjuk a Számla törzset, hiszen az új sztornó számla adatait a megnyílt űrlapban láthatjuk. 87. Barhács OktatóKözpont Ms-Access modul - 8. fejezet Jelentések kialakítása a Számítógépbolt adatbázisban A jelentések a felhasználói felület fontos részei, ezek segítségével lehet rész és végeredmény-számítások, összesítések, bonyolultabb kiválogatások eredményét tartós információhordozó eszközön rögzíteni. A jelentések hasznosak akkor, ha gépi bizonylatokat kell előállítanunk, ill. ha összesítő kimutatásokat akarunk létrehozni Milyen jelentésekre van szükség a Számítógépbolt adatbázisban? Nagyon sokféle lehetőség felmerülhet, azonban három jelentés mindenféleképp szükséges: - Raktárkészlet: a leltározáshoz szükséges, megmutatja az adott

pillanatban, a raktárban lévő alkatrészek mennyiségét és értékét. - Megrendelés: a minimumkészlet alá csökkent alkatrészek automatikus megrendelésére szolgál. - Számla: a vásárlói számla, mint bizonylat kiállítása, ill. az ellenszámla létrehozása során a rögzítjük a vásárlói ill. a vásárlás adatait Hozzunk létre gyakorlásképp egy jelentést, mely a tíz legdrágább termék adatait tartalmazza! Jelentés létrehozható önállóan, illetve a Microsoft Access Jelentés Varázsló segítségével is. A varázsló használata meggyorsítja a jelentés létrehozásának műveletét, mivel a varázsló az alapvető feladatokat elvégzi a felhasználó helyett. Amikor Jelentés Varázslót használunk, a varázsló a feltett kérdésekre adott válaszok alapján hozza létre a jelentést. Még gyakorlott felhasználóknak is tanácsolható, hogy a jelentések gyors létrehozásához vegyék igénybe a Jelentés Varázslót. A varázsló

segítségével egyszerűen és gyorsan létrehozott jelentést azután Tervező nézetben még mindig lehet módosítani. Válasszuk az Új gombot. Az Új jelentés párbeszédpanelen kattintsunk a Jelentés Varázslóra. A párbeszédpanelen a varázsló rövid ismertetése is megjelenik Kattintsunk az OK gombra! Az első párbeszédablakban a lekérdezéseknél és az űrlapoknál megszokott módon beállíthatjuk a jelentés rekordforrását, ill. azon mezőket, melyeket a jelentésben szerepeltetni szeretnénk. Válasszuk a "A tíz legdrágább termék" lekérdezést, és vegyük fel az összes mezőt! A mezők felvétele után kattintsunk a Tovább gombra! 88. Barhács OktatóKözpont Ms-Access modul - 8. fejezet A második ablakban jelölhetjük ki, hogy az adatok milyen módon jelenjenek meg a jelentésben. Válasszuk a Raktárkészlet szerinti megjelenítést! A harmadik párbeszédablakban végezhetjük el az adatok csoportosítását, határozhatjuk meg a

csoportszintek számát. A csoportszint a jelentésekben a csoportok egymásba ágyazottságának mértéke. Két csoport akkor van egymásba ágyazva, ha egy rekordhalmaz több rekord vagy kifejezés alapján van csoportba rendezve. Az első mező, amely alapján sorba rendezünk vagy csoportosítunk, a 0 szint és így tovább maximum 10 csoportszintig. Más adatbázis-kezelő rendszerekben a csoportszintet néha törésszintnek hívják. Jelen példánk esetében csoportszintek létrehozásának nincs különösebb értelme, hiszen nincsenek olyan adatok a jelentésben, melyek egy-sok kapcsolattal kapcsolódnának egymáshoz. Hozzunk létre azonban mégis egy csoportszintet, hogy a jelentés látványa áttekinthetőbbé váljon, ez történjen a Megnevezés mező alapján! 89. Barhács OktatóKözpont Ms-Access modul - 8. fejezet A következő párbeszédablakban állíthatjuk be a rekordok rendezését! Csak a törzsrekordok rendezhetők, ez azt jelenti, hogy azon mezők

szerint, melyeket csoportszintként megjelöltünk, itt nem állíthatunk be rendezést. Ezen mezők alapján a Microsoft Access automatikusan rendezést végez. Mi most nem állítunk be rendezést, mivel nincsenek egy-sok kapcsolatban álló adataink, hiszen raktárkészlet szerinti megjelenítést kértünk így minden adat a beállított Megnevezés csoportszint sorrendje alapján jelenik meg. Az ötödik párbeszédablakban határozhatjuk meg az adatok elrendezését a jelentésen. Válasszuk ki: - az elrendezésből a "Vázlat2", - a tájolásból az álló, - valamint a "Mezőszélesség állítása" lehetőséget. Ha ezeket kiválasztottuk, kattintsunk a Tovább gombra! A következő párbeszédablakban választhatjuk meg a jelentés stílusát, formai jellemzőit. Nézzük végig a lehetőségeket, válasszuk az "Irodai" lehetőséget, végül kattintsunk a Tovább gombra. Az utolsó párbeszédablakon, a szokott módon, a varázslóval

létrehozott objektum (jelentés) nevét és megnyitásának módját kell megadni. Adjuk jelentésünknek a "A tíz legdrágább termék" nevet, és válasszuk megnyitási módnak a "Jelentés nyomtatási képe" lehetőséget! A jelentés létrehozásához kattintsunk a Befejezés gombra! 90. Barhács OktatóKözpont Ms-Access modul - 8. fejezet Hozzunk létre önállóan egy Kifutott termékek nevű jelentést az azonos nevű lekérdezésre alapozva! A kimenet kinézete: A Raktár készlet jelentés Válasszuk az Új gombot. Az Új jelentés párbeszédpanelen kattintsunk a Jelentés Varázslóra. A párbeszédpanelen a varázsló rövid ismertetése is megjelenik Kattintsunk az OK gombra! Az első párbeszédablakban válasszuk a "Raktár készlet lekérdezés teljes" lekérdezést, és vegyük fel az összes mezőt! A mezők felvétele után kattintsunk a Tovább gombra! A második ablakban jelölhetjük ki, hogy az adatok milyen módon

jelenjenek meg a jelentésben. Válasszuk a Raktárkészlet szerinti megjelenítést! Hozzunk létre két csoportszintet a Megnevezés, és a Gyártó neve mező alapján, hogy a jelentés látványa áttekinthetőbbé váljon! 91. Barhács OktatóKözpont Ms-Access modul - 8. fejezet A következő párbeszédablakban állíthatjuk be a rekordok rendezését! Mi most a raktárkészlet azonosító alapján állítunk be rendezést, így minden adat a gyártónév szerinti növekvő ABC sorrendben jelenik meg a Megnevezés csoportszinten belül, a Gyártó neve csoportszinten belül pedig az Rk az alapján növekvő rendezés definiált. Az ötödik párbeszédablakban határozhatjuk meg az adatok elrendezését a jelentésen. Válasszuk ki: - az elrendezésből a "Vázlat2", - a tájolásból a fekvő (nagyon sok mezőnk van), - valamint a "Mezőszélesség állítása" lehetőséget. Ha ezeket kiválasztottuk, kattintsunk a Tovább gombra! A következő

párbeszédablakban választhatjuk meg a jelentés stílusát, formai jellemzőit. Nézzük végig a lehetőségeket, válasszuk az "Irodai" lehetőséget, végül kattintsunk a Tovább gombra. Az utolsó párbeszédablakon, a szokott módon, a varázslóval létrehozott objektum (jelentés) nevét és megnyitásának módját kell megadni. Adjuk jelentésünknek a "Raktár készlet" nevet, és válasszuk megnyitási módnak a "Jelentés nyomtatási képe" lehetőséget! A jelentés létrehozásához kattintsunk a Befejezés gombra! Íme a jelentés: Szükségünk lenne még a raktárkészletben lévő alkatrészek darabszámára és a raktárkészlet végösszegére. Ezt természetesen beállíthattuk volna a varázsló összesítés paneljén, de mivel a csoportokat nem akarjuk összegezni, érdemesebb inkább kézzel létrehozni a mezőket. Váltsunk a jelentés "Tervező nézet"-ére és növeljük meg a jelentéslábat. Vegyünk fel ide

két beviteli mezőt! 92. Barhács OktatóKözpont Ms-Access modul - 8. fejezet Az első beviteli mező címkéje legyen Össz darab, a másiké Végösszeg. Jelenítsük meg az Össz darab címkéjű beviteli mező tulajdonságlapját, majd az Adat fülön válasszuk a "Mező vagy kifejezés" mezőt! Írjuk be a következőt: Sum(Darab), vagyis a számított mező összegezze a Darab mezők értékét. Most jelenítsük meg a Végösszeg címkéjű beviteli mező tulajdonságlapját, majd az Adat fülön válasszuk a "Mező vagy kifejezés" mezőt! Írjuk be a következőt: Sum(Összeg), vagyis a számított mező összegezze az Összeg mezők értékét. Kérjünk mentést, majd menjünk át "Nyomtatási kép" nézetbe és ellenőrizzük az eredményt! A Megrendelés jelentés Válasszuk az Új gombot. Az Új jelentés párbeszédpanelen kattintsunk a Jelentés Varázslóra. A párbeszédpanelen a varázsló rövid ismertetése is megjelenik

Kattintsunk az OK gombra! Az első párbeszédablakban válasszuk a "Megrendelés" lekérdezést, és vegyük fel az összes mezőt! A mezők felvétele után kattintsunk a Tovább gombra! A második ablakban jelölhetjük ki, hogy az adatok milyen módon jelenjenek meg a jelentésben. Válasszuk a Szállítók szerinti megjelenítést! A Microsoft Access automatikusan létrehoz egy csoportszintet a szállítói adatoknak, hiszen a szállítók és az alkatrészek egy-sok kapcsolatban vannak egymással. Hozzunk létre még egy csoportszintet a Megnevezés mező alapján, hogy a jelentés látványa áttekinthetőbbé váljon! 93. Barhács OktatóKözpont Ms-Access modul - 8. fejezet A következő párbeszédablakban állíthatjuk be a rekordok rendezését! Mi most a raktárkészlet azonosító alapján állítunk be rendezést, így minden adat a Megnevezés szerinti növekvő ABC sorrendben jelenik meg a Szállítók csoportszinten belül, a Megnevezés

csoportszinten belül pedig az Rk az alapján növekvő rendezés definiált. Az ötödik párbeszédablakban határozhatjuk meg az adatok elrendezését a jelentésen. Válasszuk ki: - az elrendezésből a "Vázlat2", - a tájolásból az álló - valamint a "Mezőszélesség állítása" lehetőséget. Ha ezeket kiválasztottuk, kattintsunk a Tovább gombra! A következő párbeszédablakban választhatjuk meg a jelentés stílusát, formai jellemzőit. Nézzük végig a lehetőségeket, válasszuk az "Irodai" lehetőséget, végül kattintsunk a Tovább gombra. Az utolsó párbeszédablakon, adjuk jelentésünknek a "Megrendelés" nevet, és válasszuk megnyitási módnak a "Jelentés nyomtatási képe" lehetőséget! A jelentés létrehozásához kattintsunk a Befejezés gombra! Íme a jelentés: 94. Barhács OktatóKözpont Ms-Access modul - 8. fejezet A Számla jelentés A Számla a legfontosabb, és legbonyolultabb

jelentésünk. A Számla nyomtatását a Számla törzsről fogjuk kezdeményezni, így a Számla mindig arra a számlarekordra készül el, amelyik a Számla törzsön épp látszik. Ahhoz azonban hogy a számlán megfelelő adatokat lássunk, létre kell hoznunk egy új lekérdezést, mely a Számla nyomtatáshoz nevet fogja viselni. A Számla nyomtatáshoz lekérdezés Menjünk az Adatbázis ablakban a Lekérdezésekre, majd kattintsunk az Új gombra. Az Új lekérdezés párbeszédpanelen kattintsunk a Tervező nézet lehetőségre, majd az OK gombra. A Tábla hozzáadása párbeszédpanelen kattintsunk a táblák fülre. Kattintsunk duplán a Vevők, az Eladók, a Számlák, a Számlák részletei, a Raktár készlet, valamint a Gyártók táblákra, majd kattintsunk a Bezárás gombra. Válasszuk ki a következő mezőket: - Számla az - Vevő neve - Város - Cím - Irányító szám - Adó szám - Eladó neve - Rk az - Gyártó neve - Gyártási szám - Leírás - Darab - Ár -

Sztornózott - Dátum - Átutalás Adjuk a mezőket a lekérdezéshez – húzzuk a mezőlistából a mezők nevét a tervezőrácsra. Állítsuk be a Számla az feltétel mezőjét: [Űrlapok]![Számla törzs]![Számla az] Vegyünk fel két új mezőt Netto ill. Brutto néven! A Kifejezésszerkesztővel hozzuk létre őket, a következő tartalommal: - Nettó: - - Netto: [Számlák részletei]![Darab]*[Raktár készlet]![Ár] Bruttó: - Brutto: [Számlák részletei]![Darab]*[Raktár készlet]![Ár]1,25 95. Barhács OktatóKözpont Ms-Access modul - 8. fejezet A lekérdezés SQL kódja: SELECT Számlák.Számla az, Vevők.[Vevő neve], Vevők.Város, Vevők.Cím, Vevők.[Irányító szám], Vevők[Adó szám], Eladók[Eladó neve], [Számlák részletei].Rk az, Gyártók[Gyártó neve], [Számlák részletei].[Gyártási szám], [Raktár készlet]Leírás, [Számlák részletei].Darab, [Raktár készlet]Ár, Számlák.Sztornózott, SzámlákDátum, [Számlák

részletei]![Darab]*[Raktár készlet]![Ár] AS Netto, [Számlák részletei]![Darab]*[Raktár készlet]![Ár]*1.25 AS Brutto, Számlák.Átutalás FROM (Eladók INNER JOIN (Vevők INNER JOIN Számlák ON Vevők.Vevő az = SzámlákVevő az) ON Eladók.Eladó az = SzámlákEladó az) INNER JOIN (Gyártók INNER JOIN ([Raktár készlet] INNER JOIN [Számlák részletei] ON [Raktár készlet].Rk az = [Számlák részletei]Rk az) ON Gyártók.Gy az = [Raktár készlet]Gy az) ON Számlák.Számla az = [Számlák részletei]Számla az WHERE (((Számlák.Számla az)=[Űrlapok]![Számla törzs]![Számla az])); Ha most átmegyünk "Űrlap nézet"-be, mivel nem a Számla törzsről nyitjuk meg a lekérdezést, bekéri a feltételként megjelölt Számla az-t. Adjunk be egy valós számlaszámot és ellenőrizzük a lekérdezés működését. Ha megfelelőnek találjuk, kérjünk mentést, és adjuk a lekérdezésnek a "Számla nyomtatáshoz" nevet! 96. Barhács

OktatóKözpont Ms-Access modul - 8. fejezet Menjünk át a Jelentések közé! Kérjünk egy új jelentést, majd válasszuk a "Tervező nézet"-et! Menjünk a Nézet menüre és kapcsoljuk be a Jelentésfej/-láb opciót! Az oldalfej/-láb magasságát egyelőre állítsuk 0 cm-re. Jelenítsük meg a jelentésünk tulajdonságlapját, válasszuk az Adat fület, és állítsuk a Rekordforrás mezőt a "Számla nyomtatáshoz" lekérdezésre. Hozzunk létre a jelentésfejben egy Számla címkét, majd alakítsunk ki egy "Eladó adatai" adatrészt a nyomtatványon, és töltsük fel egy képzeletbeli cég adataival. Kattintsunk az eszköztáron a Mezőlista gombra! Válasszuk ki a mezőlistából a Számla az-t, valamint a vevőadatokat és húzzuk rá a jelentésfejre! Alakítsuk ki a jelentésfej elrendezését az alább látható módon. Hozzunk létre egy címkékből álló vezérlőelem csoportot a következő formában: 97. Barhács

OktatóKözpont Ms-Access modul - 8. fejezet Menjünk a jelentéstörzsre, és a mezőlistából jelöljük ki a: - Leírás, - Gyártási szám, - Gyártó neve, - Darab, - Ár, - Nettó, - Bruttó, mezőket. Fogjuk meg a bal egérgombbal és húzzuk rá a jelentés törzsére A címkéket távolítsuk el, a beviteli mezőket pedig rendezzük a következő módon: Vegyünk fel a Netto és a Brutto beviteli mező közé egy új, kötetlen beviteli mezőt. Ez fogja az adott alkatrész áfatartalmát mutatni. Ellenőrizzük, hogy a Brutto mezőhöz kötött ill. hogy a Netto mezőhöz kötött beviteli mezőnek mi a neve (Bruttó - Netto) és az új beviteli mezőnknek a "Mező vagy kifejezés" tulajdonság értékét állítsuk a következőre =[Brutto]-[Netto], a Formátumát pedig Pénznem típusúra. Vegyünk fel a jelentéslábba három új beviteli mezőt, Nettó végösszeg, Áfa végösszeg, és Mindösszesen feliratú címkékkel. A "Mező vagy kifejezés"

tulajdonság értékét állítsuk a: Nettó végösszeg esetében: =Sum(Netto)-ra, Mindösszesen esetében: =Sum(Brutto)-ra, Az Áfa végösszeg esetében ellenőrizzük, hogy a Nettó végösszeg ill. hogy a Mindösszesen beviteli mezőnek mi a neve, és a kifejezés legyen: =[Minösszesen mező neve]-[Nettó végösszeg mező neve]. 98. Barhács OktatóKözpont Ms-Access modul - 8. fejezet Most vegyük fel az Átutalás mezőt a jelentésfejbe! Állítsuk a címke és a jelölőnégyzet láthatóságát "Nem"-re. Vegyünk fel egy új kötetlen beviteli mezőt, melynek címkefelirata legyen "Fizetés módja", a "Mező vagy kifejezés" tulajdonság értékét pedig állítsuk a következőre =IIf(([Átutalás]=0);"Készpénz";"Átutalás"). Az Ilf függvény a Microsoft Excel Ha függvényére hasonlít. A függvény paraméterlistáján három elem található: feltétel; érték ha igaz;érték ha hamis. A fenti számított

kifejezés, ha az Átutalás mező értéke hamis (0), akkor a "Készpénz" feliratot, ha pedig nem hamis (<>0), akkor az "Átutalás" feliratot írja ki. Vegyünk fel még három beviteli mezőt a jelentésfejbe, melyeknek az automatikusan létrejövő címkéit töröljük le! Az elsőt helyezzük a Számla felirat alá, a "Mező vagy kifejezés" tulajdonság értékét pedig állítsuk a következőre =IIf([Sztornózott]=-1;"Sztornózott számla!";""). Tehát, amennyiben a Sztornózott mező értéke -1 (a számla vissza lett vonva), a Microsoft Access kiírja a Sztornózott szöveget, ellenkező esetben semmit ("" - üres sztring). Állítsuk a Betűszínt pirosra! A másik két beviteli mezőt helyezzük a Számla az beviteli mező alá. Az első "Mező vagy kifejezés" tulajdonságának értéke legyen: =IIf([Sztornózott]>0;[Sztornózott];Null) Vagyis, ha a számla ellenszámla, kiírja az eredeti

(visszavont) számla számát. A második mező esetében, először ellenőriznünk kell az előzőleg kitöltött mező nevét. Ezzel a névvel készítünk új kifejezést: =IIf(IsNull([Szöveg40]);Null;"Sztornózott számla:") Tehát, ha az előző mezőbe nem NULL érték kerül, megjeleníti a "Sztornózott számla" feliratot a Számlán. Próbáljuk ki a Számlánkat különböző számlaszámokkal. Ha mindent rendben lévőnek találunk, kérjünk mentést, és adjuk jelentésünknek a "Számla" nevet. 99. Barhács OktatóKözpont Ms-Access modul - 8. fejezet Most nyissuk meg a Számla törzs űrlapunkat "Tervező nézetben"! Vegyünk fel egy új gombot az űrlapra "gbNyomtat" néven! Kérjük ki a most létrehozott parancsgomb Tulajdonságlapját és az Esemény fülön válasszuk ki a Kattintásra eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a kódszerkesztőt, majd a megjelenő

kódablakban a "Private Sub gbNyomtat Click()" és az "End Sub" közötti részt töltsük fel az alábbi kóddal: Private Sub gbNyomtat Click() DoCmd.OpenReport "Számla", acViewPreview End Sub Az OpenReport metódus a JelentésMegnyitása műveletet hajtja végre Visual Basicben. A JelentésMegnyitása művelet segítségével jelentést nyithatunk meg Tervező nézetben vagy Nyomtatási kép nézetben, vagy közvetlenül ki is nyomtathatjuk a jelentést. A jelentésben kinyomtatandó rekordokat be is határolhatjuk. A JelentésMegnyitása művelet ugyanazt eredményezi, mintha rákattintanánk a Tervezés gombra vagy a Nyomtatási kép gombra, vagy egy jelentés kijelölését követően az Adatbázis ablakban a Fájl menü Nyomtatás parancsára kattintanánk. Mentsük a változtatásokat, majd menjünk át "Űrlap nézet"-be, és próbáljuk ki a Számla törzsről való nyomtatást! 100. Barhács OktatóKözpont Ms-Access modul - 8.

fejezet Íme a Számla törzs űrlap tervezési, ill. a Számla jelentés nyomtatási képe 101. Barhács OktatóKözpont Ms-Access modul - 9. fejezet Kereső és Kezelő űrlapok létrehozása Minden adatbázis alkalmazásban szükségesek olyan űrlapok, melyek nem tartalmaznak adatokat, csak a felhasználói felület könnyebb kezelhetőségét biztosítják. Alapvetően két ilyen űrlappal találkozhatunk: a kereső űrlappal, mely adatrekordok visszakeresését teszi lehetővé megadott szempont szerint, ill. kezelő űrlappal, ami a felhasználói felület elemeinek összekapcsolásában, elérésében nyújt segítséget. A Számítógépbolt adatbázis Kereső űrlapja Hozzunk létre egy új űrlapot, az alább látható elrendezéssel: keresendo gbVevo gbElado gbGyarto gbSzallito gbAlkatresz gbSzamla gbKategoria gbOk A vezérlőelemeknek a fent látható elnevezéseket állítsuk be. Kérjünk mentést, és mentsük munkánkat "Keresés" űrlap néven!

102. Barhács OktatóKözpont Ms-Access modul - 9. fejezet Most állítsuk be a gombok Kattintásra eseményére reagáló eljárásokat. Nézzük először a gbVevo gombot! Kérjük ki a parancsgomb Tulajdonságlapját és az Esemény fülön válasszuk ki a Kattintásra eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a Kódszerkesztőt, majd írjuk be a következő kódot: Private Sub gbVevo Click() On Error GoTo Err gbVevo Click stDocName = "Vevő törzs" stLinkCriteria = "[Vevő neve]=" & "" & Me![keresendo] & "" DoCmd.OpenForm stDocName, , , stLinkCriteria DoCmd.Close acForm, MeName Exit gbVevo Click: Exit Sub Err gbVevo Click: MsgBox Err.Description Resume Exit gbVevo Click End Sub A kód szűrőfeltételnek beállítja a "keresendo" beviteli mezőben lévő kifejezést, pl. ha a beviteli mezőben Kovács János karaktersorozat olvasható a szűrőfeltétel: [Vevő neve] =

Kovács János , lesz. Ezt a szűrőfeltételt használva nyitja meg az űrlapot, a megfelelő adatrekordra ugratva azt. Mint látható a keresést nem a vevő azonosítóra végezzük, hisz az elég valószínűtlen, hogy a felhasználó (vagy a vevő) fejből tudja azt. A vevő neve alapján történő keresés mindenféleképpen szűkítés, még akkor is, ha több azonos nevű vevőnk van. Figyeljük meg a hibakezelést! Amennyiben a kód hibátlanul képes lefutni, a törzsben lévő műveletsorozat futtatása után (mivel lépésenként továbbhalad a végrehajtás) az Exit gbVevo Click cimkére adódik a vezérlés. Mint látható címkére a GoTo ugróutasítással lehet hivatkozni, a címkét a rendszer a címkenév mögötti kettőspontról ismeri fel. Ez alatt a címke alatt csak egy Exit utasítást találunk, mely a VBA-ban egy adott vezérlési szerkezetből való kilépésre használható. Az Exit-nek meg kell adni, hogy milyen vezérlési szerkezet futását kell

megszakítani. A lehetséges paraméterek : Do, For, Function, Property, Sub. Mi történik akkor, ha hiba lép fel az eljárás futtatása során? Ilyen esetekben az eljárásfejben található On Error GoTo Err gbVevo Click utasítás miatt a vezérlés az Err gbVevo Click-re adódik. Itt a MsgBox Err.Description sor egy üzenetablakban kiíratja a rendszerrel a létrejött Err objektum Description mezőjét. Ugyanis amikor hiba történik, a Visual Basic létrehoz egy struktúrát a memóriában, mely tartalmazza a hibajelenség legfontosabb tulajdonságait. A Description ezek közül a hiba leírását tartalmazza. 103. Barhács OktatóKözpont Ms-Access modul - 9. fejezet Ez alatt egy Resume utasítást találunk, melynek szerepe a kód futtatásának folytatásában van, hisz itt lehet megadni, hogy a hibakezelő rutin lefutása után, hol folytatódjon a művelet-végrehajtás. Mint látható az Exit gbVevo Click adódik a vezérlés, ami miatt végrehajtódik az Exit

utasítás, a program tehát kilép a kódból. A többi gomb Kattintásra eseményére reagáló eljárások csak az stDocName és az stLinkCriteria változók értékeiben térnek el egymástól (az OK gombot kivéve). gbElado: - stDocName = "Eladók" stLinkCriteria = "[Eladó neve]=" & "" & Me![keresendo] & "" gbAlkatresz: - stDocName = "Raktár törzs" stLinkCriteria = "[Leírás]=" & "" & Me![keresendo] & "" gbSzamla: - stDocName = "Számla törzs" stLinkCriteria = "[Számla az]=" & Me![keresendo] Ez utóbbi nagyon hasznos a sztornózáskor, amikor egy megadott számlaszámú számlát kell visszavonni. Ha feltételezzük, hogy több ezer számla van a rendszerben, ezzel a módszerrel lehet a legkönnyebben megtalálni azt. Kiegészítő űrlapok elkészítése Mint látható a gbGyarto, a gbSzallito és a gbKategoria gombokhoz egyelőre nem

vettünk fel semmit. Ennek oka, hogy jelenleg az adatbázis alkalmazásunkban nincsenek olyan űrlapok, melyeket itt szeretnénk megjeleníteni, hiszen, a Gyártók, Szállítók, Alkatrésztípusok adatait a Raktár törzsön találjuk, azonban itt a rekordok adatai az alkatrészek szerint csoportosítva jelennek meg. Nem találunk (egyelőre) olyan űrlapot, mely megmutatná, hogy egy adott gyártó, szállító vagy éppen alkatrész típus rekordhoz, milyen rekordok kapcsolódnak a Raktár készlet táblában. Hozzuk létre ezeket az űrlapokat! Készítsünk új űrlapot, mely megjeleníti nekünk a gyártókat és az általuk gyártott termékeket! Válasszuk az Új gombot, majd válasszuk az Űrlap Varázslót! A megjelenő párbeszédpanel Táblák/Lekérdezések lenyíló listájából válasszuk ki a Gyártókat, majd az Elérhető mezőkből vegyük fel a Gy az, és a Gyártó neve mezőt! Nyissuk le újra a Táblák/Lekérdezések listát és most a Raktár készlet

táblát válasszuk! Az Elérhető mezőkből vegyük fel az Rk az, a Leírás, a Darab és az Ár mezőket! Kattintsunk a Tovább gombra! 104. Barhács OktatóKözpont Ms-Access modul - 9. fejezet A megjelent párbeszédablak jelzi, hogy a Microsoft Access felismerte az adatok közötti kapcsolatokat! Választhatunk, hogy a Gyártók szerint szeretnénk megjeleníteni az adatokat (ekkor az "Űrlap segédűrlappal" ill. "Csatolt űrlapok" opciók állnak a rendelkezésünkre) vagyis a Gyártók táblában lévő rekordhoz tartozó összes rekordot egy űrlapon akarjuk-e megjeleníteni, vagy a Raktár készlet szerint, ilyen esetben egyszerű űrlap jön létre, hiszen egy alkatrészrekordhoz csak egy gyártórekord tartozik. Válasszuk a Gyártók szerinti megjelenést, valamint az Űrlap segédűrlappal lehetőséget! A varázsló következő ablakában azt kell eldöntenünk, hogy a kapcsolódó rekordokat a segédűrlapon milyen formában szeretnénk

megjeleníteni: táblázatos, vagy adatlapos kialakítással. Válasszuk az Adatlap lehetőséget, kattintsunk a Tovább gombra, majd a stílus kiválasztásánál válasszuk a Szabványos lehetőséget! Kattintsunk a Tovább gombra! A megjelenő párbeszédpanel már ismert, itt adhatjuk meg az űrlapok nevét. A főűrlapnak adjuk a "Gyártók termékei", míg a segédűrlapnak a "Gyártók termékei segédűrlap" nevet, majd kattintsunk a befejezés gombra! 105. Barhács OktatóKözpont Ms-Access modul - 9. fejezet Most készítsünk új űrlapot, mely megjeleníti nekünk a szállítókat és az általuk beszállított termékeket! Válasszuk az Új gombot, majd válasszuk az Űrlap Varázslót! A megjelenő párbeszédpanel Táblák/Lekérdezések lenyíló listájából válasszuk ki a Szállítókat, majd az Elérhető mezőkből vegyük fel az összes mezőt! Nyissuk le újra a Táblák/Lekérdezések listát és most a Raktár készlet táblát

válasszuk! Az Elérhető mezőkből vegyük fel az Rk az, a Leírás, a Darab és az Ár mezőket! Kattintsunk a Tovább gombra! Válasszuk a Szállítók szerinti megjelenést, valamint az Űrlap segédűrlappal lehetőséget! A következő ablakban válasszuk az Adatlap lehetőséget, kattintsunk a Tovább gombra, majd a stílus kiválasztásánál válasszuk a Szabványos lehetőséget! Kattintsunk a Tovább gombra! A főűrlapnak adjuk a "Szállítók termékei", míg a segédűrlapnak a "Szállítók termékei segédűrlap" nevet, majd kattintsunk a befejezés gombra! Most készítsünk új űrlapot, mely megjeleníti nekünk a kategóriákat és az általuk tartalmazott termékeket! Válasszuk az Új gombot, majd válasszuk az Űrlap Varázslót! A megjelenő párbeszédpanel Táblák/Lekérdezések lenyíló listájából válasszuk ki a Alkatrész típusokat, majd az Elérhető mezőkből vegyük fel az At az és a Megnevezés mezőket! Nyissuk le újra a

Táblák/Lekérdezések listát és most a Raktár készlet táblát válasszuk! Az Elérhető mezőkből vegyük fel az Rk az, a Leírás, a Darab és az Ár mezőket! Kattintsunk a Tovább gombra! Válasszuk az Alkatrész típusok szerinti megjelenést, valamint az Űrlap segédűrlappal lehetőséget! A következő ablakban válasszuk az Adatlap lehetőséget, kattintsunk a Tovább gombra, majd a stílus kiválasztásánál válasszuk a Szabványos lehetőséget! Kattintsunk a Tovább gombra! 106. Barhács OktatóKözpont Ms-Access modul - 9. fejezet A főűrlapnak adjuk a "Kategóriák", míg a segédűrlapnak a "Kategóriák segédűrlap" nevet, majd kattintsunk a befejezés gombra! Most, hogy ezekkel az űrlapokkal elkészültünk létrehozhatjuk a többi gomb Kattintásra eseményére reagáló eljárásokat is. Természetesen ezek az eljárások is csak az stDocName és az stLinkCriteria változók értékeiben térnek el egymástól (az OK gombot

még mindig nem állítjuk be). gbGyarto: - stDocName = "Gyártók termékei" stLinkCriteria = "[Gyártó neve]=" & "" & Me![keresendo] & "" gbSzallito: - stDocName = "Szállítók termékei" stLinkCriteria = "[Név]=" & "" & Me![keresendo] & "" gbKategoria: - stDocName = "Kategóriák" stLinkCriteria = "[Megnevezés]=" & "" & Me![keresendo] & "" Most állítsuk be a gbOk gombra a Bezárás műveletet (DoCmd.Close) Figyeljünk a hibakezelésre! Mentsük el a Keresés űrlapunkat és próbáljuk ki! Ha szűrőfeltétel szöveg, és nem adunk meg használható értéket, a Microsoft Access egy üres rekordot jelenít meg a megnyitott űrlapon, jelezvén, hogy nincs olyan rekord, mely a szűrőfeltételként szolgáló mezőben üres sztringet tartalmazna. Figyeljünk arra, hogy számok esetében ez nem működik, érvénytelen

érték megadása hibaüzenetet von maga után, hiszen itt a kitöltetlen mező nem üres sztring, hanem NULL érték, amivel nem lehet összehasonlítást végezni. 107. Barhács OktatóKözpont Ms-Access modul - 9. fejezet A Számítógépbolt adatbázis Kezelő űrlapja A Kezelő űrlap a Számítógépbolt adatbázis felhasználói felületének kiindulópontja, feladata, hogy biztosítsa a többi űrlap elérésnek lehetőségét. Az űrlap igen egyszerű, hiszen csak parancsgombokat tartalmaz: A gomboknak adjuk felülről kezdve a következő neveket: - gbVevo - gbSzamla - gbRaktar - gbKeres - gbElado - gbKilep Az Eladók módosító űrlapot közvetlenül a Kezelőről nyitjuk meg, mivel nem kapcsoltuk hozzá egyik törzshöz sem. A felhasználói felület elkészítésénél nem maradhat ki egyetlen tábla sem, vagyis nem lehet az adatbázisban olyan tábla, melyet a felhasználói felületről nem lehet módosítani (a rendszertáblákon kívül természetesen)! Ez a

fejlesztők érdeke is, hiszen ha bizonyos adatok módosítását nem tesszük lehetővé, akkor a felhasználó közvetlenül a táblákban tárolt adatokhoz nyúl, ami (ld. az előző ellenőrzéseket) nem mindig szerencsés Most létrehozhatjuk a gbVevo gomb Kattintásra eseményére reagáló eljárást: Private Sub gbVevo Click() On Error GoTo Err gbVevo Click stDocName = "Vevő törzs" DoCmd.OpenForm stDocName Exit gbVevo Click: Exit Sub Err gbVevo Click: MsgBox Err.Description Resume Exit gbVevo Click End Sub 108. Barhács OktatóKözpont Ms-Access modul - 9. fejezet A többi gomb Kattintásra eseményére reagáló eljárások csak az stDocName változó értékében különböznek. gbSzamla: - stDocName = "Számla törzs" gbRaktar - stDocName = "Raktár törzs" gbKeres - stDocName = "Keresés" gbElado - stDocName = "Eladók" Most állítsuk be az gbKilep gombra a Bezárás műveletet (DoCmd.Close) Figyeljünk a

hibakezelésre! Mentsük el a Kezelő űrlapunkat és próbáljuk ki! Utolsó lépésként oldjuk meg, hogy ha bezárják a Kezelő űrlapot, az adatbázis alkalmazásból is kilépjen a rendszer. Menjünk "Tervező nézet"-be, és jelenítsük meg az űrlap tulajdonságlapját. Menjünk az Események fülre és válasszuk a Bezárásra eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a Kódszerkesztőt, majd a megjelenő kódablakban adjuk meg a Kilépés művelet kódját. Docmd.Quit Kérjünk mentést a Kezelő űrlapra, majd váltsunk "Űrlap nézet"-re! Próbáljuk ki a gbKilep gombunkat! Ha mindent jól írtunk be, a gomb Kattintásra eseményére reagáló eljárás elkezdi a Bezárás műveletet, amit az űrlap Bezárás eseménynek érzékelve, lefuttatja az alkalmazásból való kilépésre írt kódunkat. Az alkalmazás bezáródik. 109. Barhács OktatóKözpont Ms-Access modul - 10. fejezet Utolsó simítások

Eszköztár, menü, helyi menü készítése Az eszköztárak, menüsorok és helyi menük segítségével úgy rendezhetjük a Microsoft Access parancsait, hogy a lehető legjobban kézre essenek. A Microsoft Access korábbi verzióiban az eszköztárakon csak gombok voltak. A jelenlegi verzió új technológiájának köszönhetően az eszköztárak tartalmazhatnak csak gombokat, csak menüket vagy a kettő kombinációját. Ez azt jelenti, hogy a menüsorok és a helyi menük már csak az eszköztár különböző típusai, így mindhármat egyformán át lehet alakítani. Alapértelmezésben még mindig megjelenik a beépített menüsor a képernyő tetején, olyan standard menükkel, mint a Fájl, a Szerkesztés és a Nézet menü, de emellett hozzá lehet adni, és el lehet venni menüket és gombokat, vagy akár át is lehet helyezni őket. Nem csak módosítani lehet a beépített menüsorokat, eszköztárakat és helyi menüket, hanem saját eszköztárat, menüsort és helyi

menüt is lehet készíteni. Ha eszköztárat, menüsort vagy helyi menüt szeretnénk létrehozni, és testre szabni, vagy be szeretnénk állítani tulajdonságaikat vagy működésüket, használjuk a Testreszabás párbeszédpanelt. Vigyük a kurzort a Nézet menüben az Eszköztárak fölé, majd kattintsunk a Testreszabás gombra. Menüsor és helyi menü létrehozásához már nincs szükség makrókra, de továbbra is használhatjuk a makrókra támaszkodó létező alkalmazásokat. Az eszköztárak beállítására Testreszabás párbeszédpanel használható, amely a Nézet menü Eszköztárak almenüjéből érhető el. Az Eszköztárak fülön választhatjuk ki a megjelenítendő eszköztárakat (jelölőnégyzet). A kijelölés szerepe arra korlátozódik, hogy meghatározza azt az eszköztárat, melyen a beállításokat el akarjuk végezni (inverz csík). Innen indítható új menü/eszköztár/helyi menü létrehozása, ill. már meglévő tulajdonságainak, elemeinek

megváltoztatása. 110. Barhács OktatóKözpont Ms-Access modul - 10. fejezet A Beállítások fül olyan lehetőségeket tartalmaz, melyek minden eszköztárra, menüre egyformán érvényesek. - Nagy gombok: Az eszköztár gombjai méretének megnövelése, hogy azok könnyebben láthatók legyenek. - Gombnevek megjelenítése: Az eszköztárgombok nevének megjelenítése a képernyőn, ha a mutatóval rájuk állunk. - Gombnevek kiegészítése a billentyűparancsokkal: Billentyűparancsok megjelenítése a gombnevekkel. - Menüanimálás: A menük megjelenési módjának megváltoztatása. Például a Dia menüanimálás beállítás nyomán a menük gördülő mozgással jelennek meg. A Parancsok fül lehetőségeivel a továbbiakban foglalkozunk. Szbolt menü elkészítése 1. Vigyük a kurzort a Nézet menüben az Eszköztárak fölé, majd kattintsunk a Testreszabás gombra. 2. Kattintsunk az Eszköztárak karton Létrehozás parancsára 3. Írjuk be az "Szbolt

menü" nevet az Eszköztárnév mezőbe, majd kattintsunk az OK gombra. 4. Kattintsunk az Eszköztárak lap Tulajdonságok gombjára 5. Állítsuk be a megfelelő tulajdonságokat: - Kijelölt eszköztár: a szerkesztett eszköztárat adja meg. Maradjon "Szbolt menü" - Eszköztárnév: a kijelölt eszköztár neve. - Típus: - Menüsor a parancsok legördülő menüit szövegként mutatja be. - Eszköztár a parancsokat gombokként mutatja be. - Előugró az általános parancsokat szövegként mutatja be a helyi menükön. Válasszuk a Menüsort. - Rögzítés: a Bármilyen vízszintes vagy függőleges rögzítést enged meg, a Nem módosítható letiltja a rögzítési típus módosítását, a Csak vízszintes a függőleges rögzítést tiltja, míg a Csak függőleges a vízszintes rögzítést tiltja. A Nem módosítható beállítás kivételével minden esetben ellenőrizzük, hogy az alul található Áthelyezhető beállítás is kiválasztott legyen. A

beállítás legyen Bármilyen. - Megjelenítés az Eszköztár menün: alapértelmezés szerint meg lehet jeleníteni és el lehet rejteni az egyéni eszköztárakat és menüsorokat – kattintsunk a megfelelő eszköztárra a Nézet menü Eszköztárak almenüjében, illetve az eszköztárra vagy a menüsorra történő jobb gombos kattintás után a megjelenő helyi menüben. Ez a művelet megakadályozható, ha a menüből töröljük az eszköztárak és a menüsorok nevét. Kapcsoljuk ki a jelölőnégyzetet - Testreszabható: a változtatás ebben az esetben hozzáadást, áthelyezést, visszavonást vagy tulajdonságok beállítását jelenti nyomógombok, parancsok és menük számára. Maradjon bekapcsolva - Átméretezhető: válasszuk ki a kijelölt eszköztár vagy menüsor átméretezésének engedélyezéséhez. Csak a lebegő eszköztárakat vagy menüsorokat lehet átméretezni, a rögzített eszköztár nem méretezhető át. Maradjon bekapcsolva 111. Barhács

OktatóKözpont - - Ms-Access modul - 10. fejezet Áthelyezhető: válasszuk ki a kijelölt eszköztárnak vagy menüsornak a lebegő vagy rögzített pozíciói közötti áthelyezésének engedélyezéséhez. Maradjon bekapcsolva. Megjeleníthető/Elrejthető: válasszuk ki a kijelölt eszköztárnak vagy menüsornak az Eszköztárak almenükön (Nézet menü) vagy a Testreszabás párbeszédpanel Eszköztár kartonján keresztül, illetve az egér jobb gombjával az eszköztárra vagy menüsorra kattintással történő megjelenítésére vagy elrejtésére. Maradjon bekapcsolva. 6. Kattintsunk a Bezárás gombra Az új menüsor most már a Testreszabás párbeszédpanel mögött van. Ha látni szeretnénk az új eszköztárat, vigyük oldalra a Testreszabás párbeszédpanelt, majd folytassuk a hetedik lépéssel. 7. A menüsor teljessé tételéhez adjunk hozzá gombokat a Testreszabás párbeszédpanelről. Kattintsunk a Parancsok fülre, majd kattintsunk a Kategóriák

panelen arra a parancskategóriára, amelyhez használni szeretnénk a gombot. Végül húzzuk a gombot, az objektumot vagy az ActiveX vezérlőelemet a Menüparancsok panelről a megjelenített menüsorra. 112. Barhács OktatóKözpont Ms-Access modul - 10. fejezet Válasszuk ki a Kategóriákból a Beépített menük lehetőséget, majd húzzuk rá a menüsorunkra a Fájl, a Szerkesztés, a Rekordok és a Szűrő menüt. 8. Válasszuk az Új menü kategóriát és a benne megjelenő Új menü-t húzzuk a többi menü mellé a menüsorunkra. Kattintsunk jobb egérgombbal az újonnan létrehozott menüben. Egy helyi menüt kapunk, amelyben elvégezhetjük a menüsor - eszköztár átnevezését, ikonjának megváltoztatását, ill. kijelölhetjük, hogy az adott menüpont (eszköztárgomb) csoportkezdet legyen-e. A csoportkezdő menüpont ill. eszköztárgomb előtt a Microsoft Access egy szürke vonalat helyez el, ezzel különítve el a többi hasonló objektumtól. Írjuk be

a lenyíló menüpontunk nevét, legyen "&Szbolt" ! A menük és parancsok kiválasztására hívóbetű is használható az egér mozgatása helyett. Az ALT+Z kombinációval például a Szerkesztés menüre lehet lépni, majd a megfelelő hívóbetűvel ki lehet adni az Automatikus javítás parancsot. Írjunk be egy etjelet (&) a hívóbetűként használni kívánt karakter elé, a Név panelen. A Microsoft Access a menüben vagy a parancson aláhúzással jelöli azt a karaktert, amelyet hívóbetűként határoztunk meg. 9. Kattintsunk a menüsorunkon az új "Szbolt" menüre! Egy szürke négyzet jelenik meg, melyre ráhúzhatjuk a kívánt menüparancsokat! Válasszuk a Minden űrlap kategóriát, melyben az adatbázisban található űrlapok nevei szerepelnek. Húzzuk rá az Szbolt menüsor Szbolt menüjére a: - Számla törzs, - Raktár törzs, - Vevő törzs, - Eladók, - Keresés, űrlapokat. A Microsoft Access automatikusan létrehoz egy-egy

megnyitó menüpontot az adott űrlaphoz. 113. Barhács OktatóKözpont Ms-Access modul - 10. fejezet 10. Zárjuk be a Testreszabás párbeszédpanelt, majd a kész menüsort helyezzük el a Microsoft Access ablakának tetején! Megjegyzések: - Eszköztárhoz is hozzá lehet adni menüt. - A menüsor, vagy eszköztár mindig ott jelenik meg újból, ahol legutoljára bezártuk, ezért fontos, hogy az elkészítés után a megfelelő pozícióba helyezzük. Szbolt eszköztár elkészítése 1. Vigyük a kurzort a Nézet menüben az Eszköztárak fölé, majd kattintsunk a Testreszabás gombra. 2. Kattintsunk az Eszköztárak karton Létrehozás parancsára 3. Írjuk be az "Szbolt eszköztár" nevet az Eszköztárnév mezőbe, majd kattintsunk az OK gombra. 4. Kattintsunk az Eszköztárak lap Tulajdonságok gombjára 5. Állítsuk be a megfelelő tulajdonságokat: - Kijelölt eszköztár: maradjon "Szbolt eszköztár". - Eszköztárnév: maradjon "Szbolt

eszköztár". - Típus: maradjon az Eszköztár. - Megjelenítés az Eszköztár menün: kapcsoljuk ki. - Rögzítés: a beállítás legyen Bármilyen. - Testreszabható: maradjon bekapcsolva. - Átméretezhető: maradjon bekapcsolva. - Megjeleníthető/Elrejthető: maradjon bekapcsolva. 6. Kattintsunk a Bezárás gombra 7. Az eszköztár teljessé tételéhez adjunk hozzá gombokat a Testreszabás párbeszédpanelről. Válasszuk a Kategóriákból a - Fájl menü: - Új adatbázis ill. - Adatbázis megnyitása - Szerkesztés menü: - Kivágás, - Másolás, - Beillesztés. - és a Rekordok menü: - Szűrő parancsát, majd húzzuk rá ezeket az eszköztárunkra. 8. Válasszuk a Minden űrlap kategóriát, melyben az adatbázisban található űrlapok nevei szerepelnek. Húzzuk rá az Szbolt eszköztárra a: - Számla törzs, - Raktár törzs, - Vevő törzs, - Eladók, - Keresés, űrlapokat. A Microsoft Access automatikusan létrehoz egy-egy megnyitó ikont az adott űrlaphoz.

Állítsuk be csoportkezdetnek a: - Kivágás, - Szűrő, - és az első űrlap ikont. 114. Barhács OktatóKözpont Ms-Access modul - 10. fejezet 9. Mivel most mindegyik űrlap ikon egyforma, nagyon nehéz megkülönböztetni őket egymástól. Állítsuk át az ikonok gombképeit a gombkép váltása lehetőség használatával. 10. Vizsgáljuk meg a most létrehozott űrlapnyitó eszköztárgombok tulajdonságait! A Gombnév minden esetben legyen: űrlap megnyitása. Ez jelenik meg a gyorssúgóban, azon a feliraton, mely akkor bukkan fel, ha az egérmutatót egy gomb fölé visszük. 115. Barhács OktatóKözpont Ms-Access modul - 10. fejezet 11. Zárjuk be a Testreszabás párbeszédpanelt, majd a kész menüsort helyezzük el a Microsoft Access ablakának tetején! Szbolt eszköztár elkészítése 1. Vigyük a kurzort a Nézet menüben az Eszköztárak fölé, majd kattintsunk a Testreszabás gombra. 2. Kattintsunk az Eszköztárak karton Létrehozás parancsára

3. Írjuk be az "Szbolt helyi menü" nevet az Eszköztárnév mezőbe, majd kattintsunk az OK gombra. 4. Kattintsunk az Eszköztárak lap Tulajdonságok gombjára 5. Állítsuk be a megfelelő tulajdonságokat: - Kijelölt eszköztár: maradjon "Szbolt helyi menü". - Eszköztárnév: maradjon "Szbolt helyi menü". - Típus: állítsuk át Előugróra. - Megjelenítés az Eszköztár menün: kapcsoljuk ki. - Rögzítés: a beállítás legyen Bármilyen. - Testreszabható: maradjon bekapcsolva. - Átméretezhető: maradjon bekapcsolva. - Megjeleníthető/Elrejthető: maradjon bekapcsolva. Egy üzenet kapunk: 6. Zárjuk be az üzenetablakot és a tulajdonságlapot Menjünk a Testreszabás ablak Eszköztárak fülére, és kapcsoljuk be a Helyi menük megjelenítését. 116. Barhács OktatóKözpont Ms-Access modul - 10. fejezet 7. Megjelenik egy új menüsor: A Helyi menük menüsor egyéni menüjében megtalálható az általunk létrehozott

Szbolt helyi menü. Erre kattintva megjelenik az előbb már megismert szürke téglalap, melyre a menüparancsokat lehet felvinni. Vegyük fel ugyanazokat, amelyeket a Szbolt eszköztárra! Az űrlapikonokat itt is kicserélhetjük, bár nincs rá szükség, hiszen a menüpontok nemcsak ikonokkal, hanem szövegesen is meg vannak jelölve. 8. Zárjuk be a Helyi menük menüsort, majd Testreszabás párbeszédpanelt! A helyi menük helyzetét nem kell beállítani, hiszen az a jobb egérmutató lenyomására, az egérkurzor pozíciójában jelenik meg. Saját menüsor, eszköztár és helyi menü csatolása az űrlapokhoz Nyissuk meg a Alkatrész típusok űrlapot "Tervező nézet"-ben! Jelenítsük meg az űrlap tulajdonságlapját és válasszuk az Egyéb fület! Állítsuk be a menüsor, eszköztár és helyi menüsor tulajdonságokat! 117. Barhács OktatóKözpont Ms-Access modul - 10. fejezet Végezzük el ugyanezt a beállítást az összes űrlapra (a

segédűrlapokat is beleértve)! Nyitási-bezárási sorrend A következő nagy feladat a nyitási-bezárási sorrend meghatározása. Arról van szó, hogy bár az űrlap hierarchiában szépen meg tudjuk nyitni az űrlapokat egymásból, és így eljuthatunk akár a hierarchia legaljára is, ám visszafelé nem tudunk lépdelni, így ha egy felhasználó bezárja az éppen, aktuálisan megnyitott ablakot jó esetben az adatbázis ablakkal, rossz esetben az üres képernyővel találja magát szembe. Meg kell oldani, hogy egy ablak bezárása automatikusan a hierarchiában felett lévő ablak megnyitását vonja maga után. És itt álljunk meg egy pillanatra. A probléma megoldása elvileg nagyon egyszerű, hiszen az űrlapok Bezárásra eseményéhez hozzá kell kötni a másik űrlap megnyitását. Azonban a hierarchiában vannak olyan űrlapok, amelyek más űrlapokról nyílnak, de róluk is nyílik űrlap. Mivel egyszerre csak egy ablak lehet nyitva az alkalmazásban, amikor

megnyitunk egy űrlapot, a szülő űrlapját bezárjuk. Emiatt, ha A űrlapról nyílik B. és B-ről C, akkor, ha az előbb tárgyalt beállítások érvényesek, mikor megnyitjuk C űrlapot, bezárjuk B-t. Ez viszont akkor azzal jár, hogy automatikusan visszanyílik az A űrlap is, hiszen B Bezárás eseményéhez kötöttük a megnyitását. A B C Mi hát a megoldás? A megoldás az, hogy mielőtt bezárjuk az űrlapot megvizsgáljuk, hogy a Bezárás eseményt nem egy másik űrlap megnyitása generálta-e. Ha igen nem kell tennünk semmit, ha nem megnyitjuk az adott űrlap szülő (az űrlap hierarchiában közvetlenül felett álló) űrlapot. A példánkból kiindulva: ha bezárjuk B-t, megnézzük hogy betöltődött-e C, ha igen nincs dolgunk, ha nem, akkor a bezárási folyamatot nem a C megnyitása, hanem a bezárás gombra való kattintás (vagy Ctrl+F4 stb.) indította el, tehát vissza kell nyitnunk az A űrlapot Milyen eszközzel tudjuk levizsgálni, hogy az

űrlapok meg vannak -e nyitva vagy sem? Erre a legalkalmasabb a már ismert betöltve függvény, ami annak függvényében, hogy egy űrlap be van-e töltve (meg van-e nyitva) vagy sem, igaz vagy hamis értéket ad vissza, ezáltal nagyon jól használható feltételes vezérlési szerkezetek megvalósításához. Mit kell beállítani? Nézzük a Vevők űrlap példáján! Nyissuk meg a Vevők űrlapot "Tervező nézet"-ben, kérjük ki az űrlap tulajdonságlapját, és az Esemény fülön válasszuk ki a Bezárásra eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a Kódszerkesztőt, majd írjuk be a következő kódot: Docmd.Openform "Vevő törzs", mivel a Vevők űrlap a Vevő törzs űrlapról nyílik. Kérjünk mentést, majd próbáljuk ki: ha megnyitjuk a Vevő törzsről a Vevő űrlapot, a megnyitáshoz beállított kód bezárja a törzsűrlapot, majd amikor bezárjuk a módosító űrlapot, a most beállított kód

visszanyitja a Vevő törzset. 118. Barhács OktatóKözpont Ms-Access modul - 10. fejezet Az űrlap hierarchia szerint az űrlapoknak a következő szülő űrlapokat kell visszanyitni: - Vevők: Vevő törzs - Sztornó számlák: Számla törzs - Sztornózott számlák: Számla törzs - Számla: Számla törzs - Raktár készlet: Raktár törzs - Gyártók: Raktár törzs - Szállítók: Raktár törzs - Alkatrész típusok: Raktár törzs - Gyártók termékei: Keresés - Szállítók termékei: Keresés - Kategóriák: Keresés - Keresés: Kezelő Ezen űrlapokra beállíthatjuk a visszanyitási kódot. A többi űrlap már problémásabb: - Eladók: Kezelő vagy Keresés - Vevő törzs: Kezelő vagy Keresés - Számla törzs: Kezelő vagy Keresés - Raktár törzs: Kezelő vagy Keresés Ezek közül az Eladó esetében egy probléma van, az űrlap hierarchia alapján két szülője is van, megnyitható ugyanis a Keresőről, vagy közvetlenül a Kezelőről. A kérdés, hogy

hogyan tudjuk eldönteni, hogy honnan nyitották meg? A válasz a Segédfüggvények modulban létrehozott stHonnan változóban rejlik. Nyissuk meg a Kezelő űrlapot "Tervező nézet"-ben, kérjük ki az űrlap tulajdonságlapját, és az Esemény fülön válasszuk ki a Betöltésre eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a Kódszerkesztőt, majd írjuk be a következő kódot: stHonnan = Me.Name Amikor a Kezelő űrlap betöltődik, a globális sthonnan változó értékét a saját nevére állítja. Ha most innen megnyitunk egy űrlapot, és lekérdezzük ennek a változónak az értékét, rögtön tudni fogjuk, hogy a szülő űrlapok közül melyikről nyílt meg az aktuális űrlap. Ahhoz azonban hogy ez jól működjön ugyanezt a beállítást természetesen a Keresés űrlapnál is meg kell tenni. Nyissuk meg az Eladók űrlapot "Tervező nézet"-ben, kérjük ki az űrlap tulajdonságlapját, és az Esemény

fülön válasszuk ki a Bezárásra eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a Kódszerkesztőt, majd írjuk be a következő kódot: Private Sub Form Close() If stHonnan = "Keresés" Then DoCmd.OpenForm "Keresés" Else DoCmd.OpenForm "Kezelő" End If End Sub Kérjünk mentést, majd próbáljuk ki, hogy ha megnyitjuk a Kezelőről, és ha megnyitjuk a Keresésről az aktuális szülő nyílik-e vissza. 119. Barhács OktatóKözpont Ms-Access modul - 10. fejezet (Persze el lehet ezt elegánsabban, egy sorral is intézni: Docmd.OpenForm stHonnan) Ugyanezt kell beállítani az összes többi két szülővel rendelkező űrlapra is. Utolsó megoldandó problémánk, a hierarchikus láncban középen szereplő űrlapokat érinti. Itt négy űrlap érintett: Űrlapnév Vevőtörzs Számla törzs Kezelő Kezelő Raktár törzs Kezelő Keresés Kezelő Nyílik Nyit Vevők Számla Sztornó számlák

Sztornózott számlák Raktár készlet Gyártók Szállítók Alkatrész típusok Gyártók termékei Szállítók termékei Kategóriák Vevő törzs Számla törzs Raktár törzs Eladók Nézzük a Vevő törzs példáján a beállítási lehetőségeket. Nyissuk meg a Vevő törzs űrlapot "Tervező nézet"-ben, kérjük ki az űrlap tulajdonságlapját, és az Esemény fülön válasszuk ki a Bezárásra eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a Kódszerkesztőt, majd írjuk be a következő kódot: Private Sub Form Close() If Betöltve("Vevők") Then Else If stHonnan = "Keresés" Then DoCmd.OpenForm "Keresés" Else DoCmd.OpenForm "Kezelő" End If End If End Sub Ha megkezdődik a Bezárás esemény, a Microsoft Access megvizsgálja, hogy betöltődött-e a Vevők űrlap, mert ha igen, akkor ezen űrlap megnyitása váltotta ki a Vevő törzs bezárását. Ilyenkor a rendszernek nincs

dolga, ezért az elágazás igaz ágában nincs semmi. Azonban, ha a Vevők űrlap nincs megnyitva, a bezárási folyamatot a felhasználó indította el a Bezárás gombra kattintva, ilyenkor megvizsgáljuk, hogy aktuálisan honnan nyílt meg az űrlap, és azt a szülőűrlapot visszanyitjuk. (Az elágazást is meg lehet elegánsabban adni, ha a feltételt negáljuk, egyszerű egyágú elágazást kapunk: If Not(Betöltve("űrlapnév")) Then End If .) 120. Barhács OktatóKözpont Ms-Access modul - 10. fejezet Természetesen, ha több módosító űrlap megnyitása is kiválthatja a bezárás eseményt a feltétel módosul a következőképpen: If Betöltve("első űrlap") Betöltve("n űrlap") Then stb. Or Betöltve("második űrlap") Or Bejárási sorrend beállításai Alapértelmezés szerint a Microsoft Access a vezérlőelemek létrehozásának sorrendje alapján állítja be a bejárási sorrendet. Mindig a legutoljára

létrehozott vezérlőelem lesz az utolsó. Valamely vezérlőelem Bejárási index (TabIndex) tulajdonságának megváltoztatásakor a Microsoft Access a módosításoknak megfelelően automatikusan átszámozza a többi elem Bejárási index (TabIndex) tulajdonságát. Ez azonban nem mindig megfelelő, mivel, sok esetben a létrehozás sorrendje nem egyezik meg az űrlapon elfoglalt helyzettel (gondoljunk csak a lenyíló listákra). Ezért mielőtt befejeznénk az alkalmazás létrehozását, mindig ellenőriznünk kell, hogy a bejárási sorrend az űrlapokon megfelel e a felhasználó által elvártnak (fentről-le, balról-jobbra). Az űrlapokon lévő vezérlőelemek bejárási sorrendjét megváltoztathatjuk a vezérlőelem tulajdonságlapjának Egyéb fülén lévő Bejárási index tulajdonság beállításával, vagy a Nézet menü Bejárási sorrend parancsával. Ez a menüparancs megváltoztatja azt a bejárási sorrendet, amely szerint a vezérlőelemek között a

beszúrási pont az űrlapon vándorol, miközben a Tab billentyűt nyomjuk. A vezérlőelemeket itt egy listában egymáshoz képest tudjuk elhelyezni, mozgatni. Minél feljebb viszünk egy vezérlőelemet ebben a listában, annál előrébb kerül a bejárási sorrendben. A legkényelmesebb megoldás az Automatikus sorrend. Ez a bejárási sorrendet balról jobbra, illetve felülről lefelé állítja. Az űrlap Adatlap nézetében a mezők sorrendje az új bejárási sorrend szerint változik meg. Ez a leggyorsabb bejárási sorrend beállítási lehetőség, ha az űrlapunk nem különleges formátumú. Alkalmazzuk a Nézet menü Bejárási sorrend párbeszédpaneljének Automatikus sorrend lehetőségét az összes űrlapunkra! 121. Barhács OktatóKözpont Ms-Access modul - 10. fejezet Vezérlőelem magyarázat, állapotsori szöveg Az Állapotsor szöveg tulajdonság beállításaként adható meg az a szöveg, amely egy vezérlőelem kijelölésekor az állapotsorban

megjelenik. A Vezérlőelem-magyarázat tulajdonság segítségével megadható az a szöveg, amely a Javaslatokban (kis sárga téglalapban felbukkanó gyorssúgó) jelenik meg, amikor az egér mutatóját rövid ideig egy vezérlőelem felett tartjuk. Alapszabály, hogy azoknak a vezérlőelemnek, melyeket elsősorban egérrel kezelünk (parancsgomb, lenyíló lista stb.) vezérlőelem-magyarázatot, míg azoknak, amelyeket inkább a bejárási sorrenden keresztül a tabulátorral érünk el (beviteli mező) állapotsori szöveget kell beállítani. A vezérlőelem-magyarázatot és állapotsori szöveget tulajdonságlapjának Egyéb fülén lehet beállítani. az adott vezérlőelem Állítsunk be az űrlapok összes vezérlőelemére vezérlőelem-magyarázatot vagy állapotsori szöveget! PowerPoint animáció beszúrása PowerPoint animációk beszúrása az adatbázisba akár adatként (OLE objektum), akár kötetlen objektumként megvalósítható. Használható

ismertetők, súgóállományok, névjegypanelek kialakítására. Nézzünk példát PowerPoint bemutató bejelentkezési képernyőként való használatára. Hozzunk létre a Powerpointban egy egy diából álló, animációt és áttűnést tartalmazó bemutatót. Mentsük el az adatbázis könyvtárába videoppt néven! 122. Barhács OktatóKözpont Ms-Access modul - 10. fejezet Az adatbázisban hozzunk létre "Tervező nézet"-ben egy új űrlapot, melynek adjuk az Indító nevet. Ellenőrizzük, hogy a vezérlőelem eszköztáron be van-e kapcsolva a vezérlőelem varázsló, majd válasszuk a Kötetlen objektumkeretet. Kattintsunk az űrlapra! Megjelenik egy párbeszédpanel, mely felajánlja regisztrált OLE objektumok létrehozását, vagy már létező objektumok beszúrását/csatolását. Válasszuk a "Létrehozás fájlból" lehetőséget, majd a megjelenő "Tallózás" gombra kattintva keressük meg az előbb létrehozott .ppt

állományt Ha megtaláltuk válasszuk ki és kattintsunk az OK gombra! Ha mindent jól csináltunk, a PowerPoint bemutató diája megjelenik kicsinyítve az űrlapon. 123. Barhács OktatóKözpont Ms-Access modul - 10. fejezet Jelenítsük meg a kötetlen objektumkeret tulajdonságlapját! Menjünk az Adat fülre és az Engedélyezve tulajdonság értékét állítsuk "Igen"-re, majd az Egyéb fülre és állítsuk be a Név mezőt "Ppanim"-ra, utána pedig válasszuk az automatikus aktiválást, amit állítsunk Fókusz vételére. Az Automatikus aktiválás (AutoActivate) tulajdonság segítségével meghatározhatjuk, hogy a felhasználó hogyan tudjon aktiválni egy OLE objektumot. Egy vezérlőelemen belülről számos OLE objektumot lehet aktiválni. Az ilyen objektumok aktiválása után azokat a vezérlőelem határvonalain belülről lehet szerkeszteni (illetve számos egyéb műveletet is végre lehet rajtuk hajtani). Ezt a lehetőséget helyben

aktiválásnak nevezzük Ha egy objektum támogatja a helyben aktiválást, akkor annak használatáról az objektum létrehozásához használt alkalmazás dokumentációjában találhatunk információt. PowerPoint animáció esetén az aktiválás a bemutató elindítását jelenti. Beállítás Kézi Fókusz vétele Dupla kattintás Leírás Az OLE objektum nem válik aktívvá, amikor a fókusz rákerül, illetve amikor a felhasználó duplán kattint a vezérlőelemre. Az OLE objektumot csak a Visual Basic használatával, a vezérlőelem Action tulajdonságát acOLEActivate értékre állítva lehet aktiválni. (Csak kötetlen objektumkeret és diagram vezérlőelemek esetén használható.) Ha a vezérlőelem OLE objektumot tartalmaz, akkor az objektumot szolgáltató alkalmazás akkor kerül aktiválásra, amikor a fókusz a vezérlőelemre kerül. (Alapértelmezett) Ha a vezérlőelem OLE objektumot tartalmaz, akkor az objektumot szolgáltató alkalmazás akkor kerül

aktiválásra, amikor a felhasználó duplán kattint a vezérlőelemre, vagy amikor leüti a CTRL+ENTER billentyűkombinációt, miközben a fókusz a vezérlőelemen van. Most kérjük ki az űrlap tulajdonságlapját, és az Esemény fülön válasszuk ki a Betöltésre eseményt! A mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a Kódszerkesztőt, majd írjuk be a következő kódot: Me.PpanimSetFocus A kód automatikusan a betöltéskor az OLE objektumkeretre helyezi a fókuszt, ami ennek hatására elindítja a benne lévő PowerPoint animációt! Próbáljuk ki: menjünk át "Űrlap nézet"-be és ha mindent jól csináltunk, a bemutató automatikusan elindul. Ha így van kérjünk mentést! A probléma, hogy a bemutató lejátszása után visszakapjuk, a nem éppen szép Indító űrlapunkat. Hogy ezt kiküszöböljük, mérjük le a bemutató hosszát másodpercben, majd nyissuk meg az Indító űrlapunkat "Tervező nézet"-ben,

majd jelenítsük meg az űrlap tulajdonságlapját, és az Esemény fülön válasszuk ki a Időzítő intervallum lehetőséget, amit állítsunk be az általunk lemért időre (másodperc*1000)! Ezután válasszuk az Időzítőre eseményt, ahol a mező mellett megjelenő szerkesztőgombra kattintva kiválaszthatjuk a Kódszerkesztőt, majd írjuk be a következő kódot: Docmd.Close 124. Barhács OktatóKözpont Ms-Access modul - 10. fejezet Ezzel elérjük, hogy az űrlap a bemutató lefutása után azonnal bezáródik. Hogy a felhasználó ne üres képernyővel nézzen farkasszemet az animáció megtekintése után, nyissuk meg az Indító űrlap bezárása után automatikusan a Kezelő űrlapot. Ezt úgy tudjuk elérni, hogy az Indító űrlap bezárásra eseményéhez a következő kódot kötjük: DoCmd.OpenForm "Kezelő" Így tehát amint véget ér a bemutató, az Indító űrlap bezáródik, automatikusan megnyitva a Kezelő űrlapot. Próbáljuk ki, és

ha elégedettek vagyunk az eredménnyel, kérjünk mentést! Indítási beállítások Válasszuk opciókat: - az Eszközök menü Indítás menüparancsát! Állítsuk be az indítási Az alkalmazás címe: Számítógépbolt adatbázis. Menüsor: Szbolt menü. Helyi menü: Szbolt helyi menü. Megjelenítendő űrlap: Indító. Adatbázis ablak megjelenítése: kikapcsolva. Próbáljuk ki az indítási beállításokat: zárjuk be, majd a Fájl menüből nyissuk vissza az adatbázist. Az adatbázis az előbb beállított opciók szerint nyílik meg Készen van hát a Számítógépbolt adatbázis-alkalmazás. Természetesen még rengeteget lehetne rajt finomítani, bizonyos ismérvei pedig a valós felhasználásban komoly hátrányokkal járna. Ez a kis alkalmazás arra jó volt ugyanakkor, hogy rajta keresztül egy kicsit belelássunk a Microsoft Access alkalmazás fejlesztésének rejtelmeibe ill., elsajátítsuk annak alapjait. 125. Barhács OktatóKözpont Ms-Access

modul - 11. fejezet Tippek-trükkök Jelszavas védelem megvalósítása A Microsoft Access alkalmazások fejlesztése során gyakran előforduló igény az adatbázis-kezelő saját biztonsági rendszerétől független felhasználó azonosító (és követő) programrész megvalósítása. Ennek a funkciónak a megvalósítását írjuk le a továbbiakban. Vegyük sorban, hogy mire van szükségünk: - a program csak jelszóval engedjen belépni a rendszerbe, - ha hibás jelszót adunk meg, adjon hibaüzenetet, - tegye lehetővé a jelszó megváltoztatását is. Az első eldöntendő kérdés: hol tároljuk a jelszót? Változóértékként nem kezelhetjük, hiszen a változók élettartama nem nyúlik túl az adatbázis-alkalmazás futásidején, vagyis használni tudjuk a megváltoztatott jelszót, de elmenteni nem. Kézenfekvő megoldás egy tábla létrehozása a jelszóérték tárolására. Az ebben lévő adatok ugyanis az adatbázis-alkalmazás lefutása után is

megmaradna, így a változtatásokat is menteni tudjuk1. Hozzunk létre egy új adatbázist Munka.mdb néven! Importáljuk a Szboltmdb adatbázis alkalmazásunkból a Segédfüggvények modult, melyben a Betöltve függvény található! Készítsünk egy "Jelszó" nevű táblát, az alább látható módon. Mentsük a táblát, majd váltsunk "Adatlap nézet"-re és vigyük be jelszóként: "szbolt". 1 Felhívjuk a figyelmet, hogy az itt bemutatott felhasználó-azonosítás célja a folyamat megismertetése. Biztonságosnak nem nevezhető igazán. 126. Barhács OktatóKözpont Ms-Access modul - 11. fejezet Most hozzunk létre egy űrlapot "Tervező nézet"-ben, és állítsuk be Rekordforrásnak a Jelszó táblát! Vegyünk fel egy beviteli mezőt, melynek Adatforrása legyen a Jelszó mező (a címke nem kell)! A Beviteli maszk beállítási lehetőséget is állítsuk jelszóra! Ez az űrlap tartalmazza a jelszavunkat, hogy ne

kelljen keresgélni a táblában. Természetesen több felhasználó és több jelszó is lehetséges, ilyenkor a belépéskor az a jelszó kerül az űrlapra, amely a felhasználóhoz tartozik. Ezzel megoldható, hogy különböző műveletek esetében ellenőrizzük, hogy a jogosult felhasználó próbálja-e végrehajtani. Hozzunk létre egy új űrlapot "Tervező nézet"-ben, melyen csak egy címke szerepel és adjuk neki a Kezelő nevet! 127. Barhács OktatóKözpont Ms-Access modul - 11. fejezet Most hozzunk létre egy új űrlapot Jelszóbekérés néven "Tervező nézet"-ben, mellyel a jelszó azonosítást fogjuk elvégezni. Az elrendezés az alábbi: - A beviteli mező beviteli maszkja legyen Jelszó neve "Jelszó", a "Jelszó megadása" feliratú gombé "Jelszomegad", a másiké pedig "Jelszomodosit". Most létrehozhatjuk a "Jelszó megadása" feliratú gomb Kattintásra eseményére reagáló

eljárást: Private Sub Jelszomegad Click() If Me.Jelszó = [Forms]![Jelszó][Jelszó] Then DoCmd.OpenForm "Kezelő" DoCmd.Close acForm, "Jelszóbekérés" Else MsgBox ("Rossz jelszó!") End If End Sub Mint látható a gombra való kattintás kiváltja a beviteli mező vizsgálatát, ha értéke megegyezik a Jelszó űrlap Jelszó mezőjének értékével, megnyílik a Kezelőűrlap. Próbáljuk ki az űrlapunkat! Váltsunk "Tervező nézet"-re és írjunk be egy rossz jelszót. Ha minden rendben van a következő ablakot kapjuk: Hozzuk létre a "Jelszó megadása" feliratú gomb Kattintásra eseményére reagáló eljárást: Private Sub Jelszomegad Click() DoCmd.OpenForm "Jelszómódosítás" DoCmd.Close acForm, "Jelszóbekérés" End Sub 128. Barhács OktatóKözpont Ms-Access modul - 11. fejezet Egy még nem létező Jelszómódosítás nevű űrlap megnyitását végzi el a kód. Mentsük a

Jelszóbekérés űrlapot és zárjuk be! Hozzuk létre a Jelszómódosítás űrlapunkat! A vezérlőelemek neve: - Régi jelszó: Régi jelszó - Új jelszó: Új jelszó - Új jelszó mégegyszer: Ismét jelszó - Ok feliratú gomb: gbOk - Vissza a Jelszó ablakhoz feliratú gomb: gbVissza Hozzuk létre az "OK" feliratú gomb Kattintásra eseményére reagáló eljárást: Private Sub Parancsgomb7 Click() If Régi jelszó = [Forms]![Jelszó].[Jelszó] Then If Új jelszó = Ismét jelszó Then [Forms]![Jelszó].[Jelszó] = MeÚj jelszó MsgBox ("A jelszócsere sikerült!") Else MsgBox ("A két jelszó nem egyezik!") End If Else MsgBox ("Rossz jelszó!") End If End Sub Amennyiben a Régi jelszó mezőben lévő szöveg nem egyezik meg a Jelszó űrlap Jelszó mezőjében lévő értékkel, kiíródik a "Rossz jelszó!" hibaüzenet. Ha ez a feltétel teljesül a kód megvizsgálja azt is, hogy a két mezőben azonos új jelszó

található-e. Figyeljünk arra, hogy a jelszó mentése nem a táblába történik, hanem a Jelszó űrlap megfelelő mezőjét változtatjuk meg. Ez persze azt jelenti, hogy a jelszó csak akkor mentődik a táblába, mikor bezárjuk a Jelszó űrlapot (hiszen léptetni nem tudjuk nincs másik rekord). 129. Barhács OktatóKözpont Ms-Access modul - 11. fejezet Most létrehozhatjuk a "Vissza a Jelszó ablakhoz" feliratú gomb Kattintásra eseményére reagáló eljárást: Private Sub Parancsgomb8 Click() DoCmd.OpenForm "Jelszóbekérés" DoCmd.Close acForm, "Jelszómódosítás" End Sub Mentsük a Jelszómódosítás űrlapot! A Jelszó űrlap megnyitott állapotában próbáljuk ki a jelszókezelési űrlapjainkat! Ha mindent rendben találtunk, zárjuk be az űrlapokat! A jelszóellenőrzési folyamat csak akkor működik, ha a Jelszó űrlap meg van nyitva, hiszen mind a Jelszóbekérés, mind a Jelszómódosítás űrlapjainkon ezen űrlap

Jelszó mezőjére hivatkozunk. Hozzunk létre egy olyan makrót, mely az adatbázis megnyitásakor automatikusan megnyitja a Jelszó űrlapunkat. A megnyitási módja rejtett, hiszen nem szeretnénk látni, csak a rajta lévő adatok használata miatt van szükségünk a betöltésére. Az automatikusan lefutó makró neve a Microsoft Access rendszerben: autoexec. Mentsük el és futtassuk le! Nem látni, hogy csinált bármit is, de ha lenyitjuk az ablak menüt, látható, hogy a Felfedés menüpont aktív, hiszen a háttérben rejtetten meg van nyitva a Jelszó űrlap. Ha aktiváljuk a Felfedés menüparancsot, meg is tekinthetjük a rejtetten megnyitott objektumok listáját. 130. Barhács OktatóKözpont Ms-Access modul - 11. fejezet Zárjuk be és nyissuk meg újra a Munka adatbázist! Az autoexec makró automatikusan lefut, melyet ellenőrizhetünk a Felfedés menüparancs használatával. A következő dolog, amit meg kell oldanunk, hogy a felhasználók ne tudják

megkerülni a jelszó azonosítási folyamatot. Nyissuk meg a Jelszóbekérés űrlapot "Tervező nézet"-ben és jelenítsük meg a tulajdonságlapot! Válasszuk az Esemény fülről a Bezárásra eseményt és kössük hozzá a következő kódot: Private Sub Form Close() If Betoltve("Kezelő") Or Betoltve("Jelszómódosítás") Then Else DoCmd.Quit End If End Sub Tehát abban az esetben, ha a felhasználó megpróbálja megkerülni a a Jelszóbekérés űrlapot, oly módon, hogy bezárja azt (Bezárás gomb, Főmenü, vagy Ctrl + F4), a rendszer nem tölti be a Kezelő űrlapot (hiszen azt csak sikeres jelszó azonosítás esetén teszi) sem a Jelszómódosítást, viszont kilép az alkalmazásból. Zárjuk le ezt a kiskaput a Jelszómódosítás űrlapnál is! Nyissuk meg a Jelszómódosítás űrlapot "Tervező nézet"-ben és jelenítsük meg a tulajdonságlapot! Válasszuk az Esemény fülről a Bezárásra eseményt és kössük hozzá a

következő kódot: Private Sub Form Close() If Betoltve("Jelszóbekérés") Then Else DoCmd.OpenForm "Jelszóbekérés" End If End Sub Állítsuk be az adatbázis indítási opcióit! Rejtsük el az adatbázis ablakot, és a megnyitáskor megjelenítendő űrlap legyen a Jelszóbekérés! Az Access speciális billentyűk használata legyen kikapcsolva, így a felhasználó nem tudja az F11 funkcióbillentyű használatával megjeleníteni az Adatbázis ablakot. Ha most újraindítjuk az adatbázisunkat, a felhasználói felületet használva már nem tudjuk megkerülni a jelszó azonosítást! 131. Barhács OktatóKözpont Ms-Access modul - 11. fejezet Speciális billentyűk letiltása A védelmi rendszerünk még hiányos, hiszen, ha az adatbázist a Microsoft Access munkafelületéről indítjuk, a SHIFT billentyű lenyomásával elérhetjük, hogy a rendszer átlépje az indítási beállításokat és az autoexec makrót! Tiltsuk le a felhasználónak

azt a jogát, hogy átugorhassa az indítási beállításainkat! Hozzunk létre egy Shiftletilt nevű új modult és készítsünk egy függvényt "letilt" néven: Function letilt() Dim Tulajdonsag As Property On Error GoTo Hiba CurrentDb.Properties("AllowBypassKey") = False Kilep: Exit Function Hiba: If Err = 3270 Then Set Tulajdonsag = CurrentDb.CreateProperty ("AllowBypassKey", dbBoolean, True) CurrentDb.PropertiesAppend Tulajdonsag CurrentDb.Properties("AllowBypassKey") = False End If Resume Kilep End Function Az AllowBypassKey tulajdonság használatával azt adhatjuk meg, hogy a SHIFT billentyű engedélyezve legyen-e az indítási tulajdonságok és az AutoExec makró elhagyásának céljából. Az AllowBypassKey tulajdonság False értékre állításával megakadályozhatjuk azt, hogy a felhasználó kihagyhassa az indítási tulajdonságokat vagy az AutoExec makrót. Ha az AllowBypassKey tulajdonság nem létezik a SHIFT használata

alapértelmezetten engedélyezett. Az AllowBypassKey tulajdonság a következő beállításokat használja. Beállítás True (–1) False (0) Leírás Engedélyezi a SHIFT billentyűt, hogy a felhasználó kihagyhassa az indítási tulajdonságok beállítását és az AutoExec makró lefutását. Tiltja a SHIFT billentyűt, hogy a felhasználó ne hagyhassa ki az indítási tulajdonságok beállítását és az AutoExec makró lefutását. Ha az AllowBypassKey tulajdonságot egy makró vagy a Visual Basic segítségével be szeretnénk állítani, a tulajdonságot a CreateProperty metódus segítségével létre kell hozni és azt a Database objektum Properties gyűjteményéhez kell fűzni. E tulajdonság beállításának hatása csak az adatbázis következő megnyitásától kezdve érvényesül. 132. Barhács OktatóKözpont Ms-Access modul - 11. fejezet Ha úgy próbáljuk beállítani az AllowBypassKey tulajdonságot, hogy azt nem fűztük hozzá a Properties

gyűjteményhez a fenti : "Property not found" hibaüzenetet kapjuk. Mit csinál tehát a kódunk? Létrehoz egy Tulajdonsag nevű Property típusú változót, majd megpróbálja beállítani a Properties gyűjtemény AllowBypassKey tulajdonságát. Ha a 3270-es hibakódot kapjuk vissza az azt jelenti, hogy még nincs ilyen tulajdonság. Ekkor létrehozza egy ilyen tulajdonságot a CurrentDb (az aktuális adatbázis) objektum CreateProperty metódusával, mely egy új, felhasználó által definiált Property objektumot hoz létre. Szintaxisa: Set tulajdonság = objektum.CreateProperty (név, típus, érték, DDL) A CreateProperty metódus részei: Elem tulajdonság objektum név típus érték DDL Leírás A létrehozandó Property objektumot képviselő objektumváltozó. A Property objektum létrehozásához használandó Database, Field, Index, QueryDef, Document vagy TableDef objektumot képviselő objektumváltozó. Nem kötelező argumentum. Az új Property

objektumot azonosító String altípusú Variant. Nem kötelező argumentum. Az új Property objektum adattípusát definiáló állandó. Nem kötelező argumentum. A tulajdonság kezdeti értékét megadó Variant. Nem kötelező argumentum, azt jelzi, hogy a Property DDL objektum-e vagy sem. Boolean altípusú Variant, alapértelmezett értéke False. Állandó objektumnak csak a Properties gyűjteményében hozható létre felhasználó által definiált Property objektum.Ha a CreateProperty használatakor az elhagyható rész(eke)t nem adjuk meg, akkor egy alkalmas értékadó utasítással beállíthatjuk, vagy törölhetjük a megfelelő tulajdonságot, mielőtt az objektumot a gyűjteményhez fűznénk. Ha a név olyan objektumot jelöl, ami már tagja egy gyűjteménynek, akkor az Append metódus használatakor futásidejű hiba lép fel. Ha a felhasználó által definiált Property objektumot törölni szeretnénk a gyűjteményből, alkalmazzuk a Delete metódust a

Properties gyűjteményre. A beépített tulajdonságok nem törölhetők. 133. Barhács OktatóKözpont Ms-Access modul - 11. fejezet Az Append metódus új DAO objektumot ad egy gyűjteményhez. Szintaxisa gyűjtemény.Append objektum Az Append metódus a következő részekből áll. Elem gyűjtemény objektum Leírás Olyan objektumváltozó, amely új objektumokat fogadó gyűjteményt képviselhet. (A szabályokat lásd a témakör végén található táblázatban.) A hozzáfűzendő objektumot azonosító objektumváltozó. A gyűjteménnyel azonos adattípusúnak kell lennie. A hozzáadott objektum egy lemezen tárolt állandó objektum lesz, amíg a Delete metódussal nem töröljük. Ha a gyűjtemény Workspaces gyűjtemény (amely csak a memóriában tárolódik), akkor az objektum csak addig lesz aktív, amíg a Close metódussal el nem távolítjuk. Az új objektum hozzáadása azonnal megtörténik, de használnunk kell a Refresh metódust minden olyan

gyűjteményen, amelyre hatással lehet az adatbázis struktúrájának változása. Miután létrehozta és hozzáadta az AllowBypassKey tulajdonságot, újra megpróbálja beállítani az értékét False-ra. Mindezek után kilép a függvényből Hozzunk létre egy új makrót Letilt néven, állítsuk be a KódFuttatása műveletet, majd az argumentumok résznél a "letilt()" függvényt! A makró használatával ezek után, már minden nehézség nélkül letilthatjuk a SHIFT megnyitási időben való használatát. 134. Barhács OktatóKözpont Ms-Access modul - 11. fejezet Tippek a Kezelő űrlap elkészítéséhez Saját gombkép használata A Kezelő űrlapon a címke alatt hozzunk létre egy parancsgombot a varázsló használata nélkül. A parancsgomb tulajdonságlapján, a Formátum fülön kattintsunk a Kép opcióra! A megjelenő szerkesztés gombra kattintva a Képszerkesztő ablakot kapjuk meg, amelyen beállíthatjuk az előre megadott képek

közül az egyiket, vagy tallózhatunk a merevlemezen. Bármilyen ico kiterjesztésű állományt kiválaszthatunk, a Microsoft Access azt fogja gombképként megjeleníteni. Válasszuk a compico ikonállományt, majd tekintsük meg az eredményt, és mentsük az űrlapot! 135. Barhács OktatóKözpont Ms-Access modul - 11. fejezet Az AllowBypassKey tulajdonság rejtett visszakapcsolása Jelöljük ki a "Kezelőpult" feliratú címkét! Jelenítsük meg a tulajdonságlapot, menjünk az Események fülre és ott jelöljük ki a Dupla kattintásra eseményt! Kérjünk kódszerkesztést, és vigyük be a következő kódot: Private Sub Címke0 DblClick(Cancel As Integer) CurrentDb.Properties("AllowSpecialKeys") = True End Sub Amennyiben tehát a címkére duplát kattintunk, ez engedélyezi a SHIFT billentyű használatát az adatbázis indításakor. Ezt természetesen tartsuk titokban a felhasználók előtt :) 136. Barhács OktatóKözpont Ms-Access

modul - 12. fejezet Súgó és installáló-készlet készítése A Súgó A Windows rendszer és az alá írt alkalmazások, már a kezdetektől fogva tartalmaznak egy súgórendszert, mellyel megkönnyítik a felhasználóknak az adott alkalmazásról a gyors információszerzést. A 16 bites windowsos alkalmazásokhoz készült súgóállományokat a winhelp.exe, a 32 bitesekhez készülteket a winhlp32exe nevű programok jelenítik meg. A Windows 2000 megjelenése az alapjaiban változtatta meg ezt a rendszert, az új súgóállományok már HTML alapúak és a a megjelenítésükért a böngészőmotor felelős. Az eredeti windowsos súgóállományok kiterjesztése .hlp Ez tulajdonképpen egy speciálisan formázott és egy súgó fordítónak nevezett programmal előkészített szövegállomány, melynek értelmezését a már említett programok végzik. Sok esetben a súgókhoz tartozik még egy .cnt kiterjesztésű állomány is, ami az adott helpfájl tartalomjegyzékét

tartalmazza. Egy normál súgóállomány a következő ablakban jelenik meg: 137. Barhács OktatóKözpont Ms-Access modul - 12. fejezet A Tartalom fülön a már említett .cnt állományban megadott tartalom látható A Tárgymutató fülön láthatjuk azokat a súgó témaköröket, melyeket megjelöltek, mintegy tárgymutatószerűen. A súgóállományok érdemi része, a súgóinformáció a témakörökben (angol nevén topic) található. A témakör egy súgóoldal, mely külön is megjeleníthető és saját azonosítóval rendelkezik. Egy témakör oldal felépítése a következő: menüsor gombsor nem görgethető régió görgethető régió A súgóablakban gyakran lehet látni olyan gombokat, melyekkel a súgórendszer funkcióit érhetjük el. Ilyen pl a Tárgymutató vagy a Tartalomjegyzék könnyebb elérését megvalósító parancsgomb. A gombok közül a léptetőgombok szerepe is kiemelkedő, ugyanis a súgóállomány készítője beállíthat több

tetszőleges lépési sorrendet, így irányítva a felhasználót a témakörök megismerésében. A súgóállományokat létrehozó programok mindegyike, egy olyan speciális, RTF formátumú szövegállományt állít elő, melyből a súgó fordító hoz létre .hlp kiterjesztésű állományt. Ilyen program az általunk ismertetni kívánt HelpScribble nevű program, mely csak a súgóállomány előkészítését végzi el, a fordításhoz külső súgófordítót kell igénybe vennünk. 138. Barhács OktatóKözpont Ms-Access modul - 12. fejezet A HelpScribble használata Indítsuk el a HelpScribble programot! A megjelenő ablak három nagyobb egységre osztható: a baloldalon található témakör listára, a középső szerkesztőablakra és a menü és eszköztár részre. A felhasznált parancsokat a menüpontokon keresztül mutatjuk be, de természetesen ezek elérhetőek az alkalmazás eszköztárain keresztül is. A program indítása után azonnal megnyit egy

új súgó project-et, melynek az opcióit a Project/Options menüponton keresztül állíthatjuk be. A project már tartalmaz egy témakört 10-es azonosítóval <new topic> néven. Az első feladatunk a súgó témaköröknek helyet adó súgóablakok meghatározása. Kattintsunk az Editors/Windows Editor menüpontra! 139. Barhács OktatóKözpont Ms-Access modul - 12. fejezet A beállítható opciók: - Window name: a súgóablak neve. - Caption: a súgóablak fejlécének felirata. - X, Y: a képernyőn való elhelyezkedés koordinátái. - Width, Height: az ablak szélessége-magassága. - Maximize window: a súgóablak teljes képernyős méretben nyílik meg. - Stay on top: az ablak mindig felül marad. - Default colors: az alapértelmezett súgóablak színek használata. - Non scrolling region: a nem görgethető ablakrész színét adhatjuk itt meg. - Window color: a görgethető ablakrész színét adhatjuk itt meg. - Position wizard: a pozíció, szélesség,

magasság megadására szolgáló vizuális beállító ablak. Kattintsunk a zöld pluszjelre! Írjuk be a Window name mezőbe a fő súgóablak nevét: "main", a Caption beállítás legyen "Access súgó". Használjuk a Position wizardot, hogy beállítsuk azt a pozíciót és méretet, melyet a súgóablakunk esetén használni akarunk. A beállítást úgy tudjuk megtenni, hogy a felkínált ablakot átméretezzük ill, áthelyezzük a képernyőn a kívánt helyre. Az OK gomb lenyomásával a beállítások elmentődnek az X,Y,Width,Height mezőkbe. Kapcsoljuk a Default colors lehetőséget, majd állítsuk a nem görgethető régió színét szürkére, az ablakszínt pedig fehérre. Kattintsunk újra a zöld pluszjelre! Megjelenik egy új ablakdefiníció az ablaklistában. Az ablak neve legyen "ablak", felirata ugyanúgy "Access súgó", mint az előbb. Állítsuk be a pozíció és méretadatokat, valamint a színeket és kattintsunk az

OK gombra! Ezáltal most van két másodlagos súgóablakunk, melyben megjeleníthetjük. Nekikezdhetünk a témakörök elkészítésének a témaköröket A Topic/New menüparancs használatával adjunk hozzá még három témakört. A HelpScribble ezeket 10 eltolással számozza meg. Ha megvagyunk kattintsunk a 10 azonosítóval rendelkező témakör címére (Title), a bal oldalon található témakör listában. Nevezzük el "Első"-nek Figyeljük meg, hogy a szerkesztőablakba is megváltozik a beírt szöveg! 140. Barhács OktatóKözpont Ms-Access modul - 12. fejezet A többi témakörnek is adjunk nevet, ugyanilyen módon: - "Második" - "Harmadik" - "Negyedik" Kattintsunk az "Első" témakörre duplát a listában. Újra ez lesz aktív, amit az mutat, hogy a témakör azonosítója félkövérré válik. Kattintsunk a Topic/Footnotes menüparancsra! Megnyílik a tulajdonságbeállító ablak, melyen a témakör opciót

adhatjuk meg. Ezek: - ID: témakör azonosító szám. - Context string: a súgóban való keresésre, azonosításra szolgál. - Title: a témakör címe. - Keywords: a súgóablakban a Tárgymutató fülön megjelenő - témakörhöz tartozó szöveg. - Delphi keyword: Delphi fejlesztői rendszerben felhasználható keresőkifejezés. - A-keyword: makróban felhasználható keresőkifejezés. - Browse sequence: a léptetést meghatározó sorrend (ld. később) - Build tag: a súgóállomány fordításánál felhasználható beállítás. - Status: fejlesztői információ, a témakör szerkesztés alatt áll-e vagy sem. - Windows type: melyik ablakban jelenjen meg a témakör. - Entry macro: milyen műveletet hajtson végre a súgó, ha ezt a témakört megnyitjuk. A Title mező már ki van töltve, a Keywords mezőt is töltsük fel a témakör címével. A Window type legyen: - az "Első" témakör esetében: main - a "Második" témakör esetében: main - a

"Harmadik" témakör esetében: ablak - a "Negyedik esetében ne állítsunk be semmit. 141. Barhács OktatóKözpont Ms-Access modul - 12. fejezet Most jelöljük ki újra az "Első" témakört. A szerkesztőablakban kezdjünk egy új sort, majd válasszuk a HelpTools/Keepn lehetőséget. Ez az opció (valójában súgófordítási utasítás) teszi lehetővé, hogy kijelöljük azt a szöveget, amelyik a nem görgethető régióra kerül. Minden, ami a Keepn utasítás előtt van, ebbe az ablak szakaszba kerül. Tegyük fel a címeket a nem görgethető régióra minden témakör esetében (a "Negyedik"-et kivéve! Készen vagyunk tehát a témakörök formájával. Hozzunk létre a témakörök szövegén belül Kapcsolódási pontokat (linkeket) más témakörökre! Jelöljük ki újra az "Első" témakört! A szerkesztőablakban kezdjünk egy új sort, majd vegyük fel a következő szöveget: "Ez egy link a második

topicra". A betűtípus, betűszín, és betűméret beállítása nem különbözik az egyéb szövegszerkesztőkben megszokottól (WordPad, Word stb.) Állítsuk a szöveg méretét 12pt-ra, színét feketére! Jelöljük ki a szövegben a "link" szót! Kattintsunk a HelpTools/Link lehetőségre! Beállítási lehetőségek: - Linked text: a link megjelenési beállításai. - Link: milyen típusú célra mutasson a link. - Popup link: előugró ablakban megjelenő szövegre mutató link. - File: melyik filban található a link célja. - Macro: műveletsorozat, melyet a linkre való kattintáskor kell elvégezni. - Window: melyik ablakban jeleni meg a link által mutatott témakör szövege. 142. Barhács OktatóKözpont Ms-Access modul - 12. fejezet - Target: külső cél. A "Linked text" maradjon "Green+underline", a "Link" "This help file". A "Popup link" jelölőnégyzet maradjon kikapcsolva, a

"Topic" esetében a lenyíló listából válasszuk a "Második(20)" lehetőséget, míg a Windows esetében a "main"-t. Hozzunk létre a többi témakörön belül is linkeket a következő beállításokkal: "Második": - Beírandó szöveg: Ez egy link a harmadik topicra - Topic: Harmadik(30) - Ablak: ablak "Harmadik": - Beírandó szöveg: Ez egy link a negyedik topicra - Topic: Negyedik(40) - Ablak: nincs beállítás - Popup link: be "Negyedik": - Beírandó szöveg: Ez egy link az első topicra - Topic: Első(10) - Ablak: main Nézzünk még néhány lehetőséget! Természetesen a témakörök szövegét "dúsíthatjuk" képekkel, gombokkal stb. Vigyünk fel egy képet az első témakör szövegébe! Jelöljük ki újra az "Első" témakört! Válasszuk a HelpTools/Insert bitmap menüpontot! A megjelenő tallózó ablakban jelöljük ki az "űrlap bmp"-t! a Helpscribble beszúrja a kép

elhelyezéséhez szükséges súgó fordítási utasítást az állományba. Vigyünk fel egy parancsgombot a "Második" topic szövegébe! Jelöljük ki a "Második" témakört! Válasszuk a HelpTools/Insert button menüpontot! 143. Barhács OktatóKözpont Ms-Access modul - 12. fejezet A "Button caption" mezőben adhatjuk meg a gomb feliratát (legyen "Számológép indítása", a "Macros" mezőben azt a parancsot, amit a gombra való kattintáskor a súgórendszer végrehajt. Itt a mező jobb szélén egy szerkesztőgombot találunk, amire kattintunk, akkor a következő beállítóablakot kapjuk: A "Macro" listában a végrehajtható parancsokat látjuk. Válasszuk az ExecProgram lehetőséget! Megjelenik a parancs argumentumainak beállítására szolgáló mezőcsoport. A "command-line" mezőbe írjuk be a számológép (calcexe) elérési útvonalát, a "display-state" beállítás a

megnyitandó ablakot definiálja (0-normal, 1kis méret, 2- teljes méret), ide írjunk 0-t. Ha mindennel készen vagyunk kattintsunk az alul látható hozzáadás (zöld plusz), majd az OK gombra. Folytassuk a súgó létrehozását a tartalomjegyzék elkészítésével. Válasszuk az Editors/Contents File Editor menüpontot. A megjelenő ablakban tudjuk beállítani a tartalomjegyzék általános jellemzőit (General fül) ill., elemeit (Contents fül) 144. Barhács OktatóKözpont Ms-Access modul - 12. fejezet General fül beállításai: - Title: cím. - Index: belső azonosító. - Link: kapcsolat másik súgóállományhoz. Contents fül beállításai: - Contents Item: a felvett elem típusa. - Title: cím. - File: súgóállomány neve (ha nem az aktuális). - Topic: a címhez megjelenítendő témakör. - Macro: parancsutasítás végrehajtása. - Window: a megjelenítendő témakör ablak. - Subitems follow: a témakör áthelyezése esetén az altémakörök együtt

mozognak-e a szülővel. - +;-;X: hozzáadás, törlés, módosítás. - <;>: alá-fölérendeltségi viszonyok változtatása. A General fülön csak a "Title" (Cím) mezőt kell kitöltenünk: "Access súgó". Menjünk át a Contents fülre és vegyük fel az első témakört: - Cintents Item: Link to this help file - Title: Első - Topic: Első(10) - Window: main Vegyük fel a többi témakört is a tartalomjegyzékbe! 145. Barhács OktatóKözpont Ms-Access modul - 12. fejezet "Második": - Contents Item: Link to this help file - Title: Második - Topic: Második (20) - Window: main "Harmadik": - Contents Item: Link to this help file - Title: Harmadik - Topic: Harmadik (30) - Window: ablak "Negyedik": - Contents Item: Link to this help file - Title: Negyedik - Topic: Negyedik (40) - Window: Ha mindennel készen vagyunk, kattintsunk az OK gombra! A következő feladat a léptetési sorrend beállítása. Kattintsunk az

Editors/Browse Sequence Editor lehetőségre! Az "Available topics" listában látjuk az elérhető (a súgóállományban jelenlévő) témakörök listáját, a "Topics in browse sequence"-ben pedig a már beállított témakör sorrendet. Kattintsunk duplát a bal oldali listában az "Első(10)" témakörre! Átkerül a jobb oldali ablakrészbe. Vegyük fel ugyanilyen módon a többi témakört is a léptetési sorrendbe! Ha felvettük az összes témakört a "Browse sequence" mezőbe írjuk be a sorrend nevét: "access", majd kattintsunk a "Write sequence" nyomógombra. Ennek hatására a HelpScribble beírja a felvett témakörök tulajdonságlapjába a léptetési sorrend azonosítóját. 146. Barhács OktatóKözpont Ms-Access modul - 12. fejezet Nem maradt más hátra, mint a súgóállományunk fordítása. Váltsunk újra az "első" témakörre, majd nyissuk meg a Project/Options ablakot! Az Optons

ablak beállításai: - Help Compiler: a súgó fordítóprogramjának kiválasztása. - Find help compilers: erre kattintva a HelpScribble megkeresi és beállítja a merevlemezeken megtalálható fordítókat. - Options: - Title: cím. - Build tag: a fordítóprogramnak szóló parancssori paraméterek. - Citation: beírható szöveg. - Copyright: szerzői jogi információk megadása. - Compress: a súgóállományt tömörítse-e a fordítóprogram. - Locale ID: területi beállítás. - Bitmap paths: a beágyazott képek elérési útvonala. - Configuration: speciális beállítások. - Update all links: ha megváltoztatjuk egy témakör azonosítóját, változzon-e minden erre a topic-ra mutató hivatkozás. - When creating: a topic ID kiadásásnak növelési értéke. Állítsuk be az opciókat a fent látható ábrának megfelelően, majd kattintsunk az OK gombra! Mentsük a Súgó projectünket HelpScribble dokumentumként(.hsc), Súgó néven, abba a könyvtárba, ahova a

Munk.mdb adatbázis-állományunkat mentettük! Ha készen vagyunk kattintsunk a Project/Make menüpontra! 147. Barhács OktatóKözpont Ms-Access modul - 12. fejezet Elkezdődik a fordítás, és ha mindent megfelelően csináltunk, egy kis idő múlva megnyitja a rendszer az újonnan elkészített súgóállományunkat. A fordítás eredménye két állomány a Súgó.hlp és a Súgócnt 148. Barhács OktatóKözpont Ms-Access modul - 12. fejezet Súgó hozzárendelése a Microsoft Access alkalmazáshoz Nyissuk meg a Munka.mdb adatbázisunkat, és hozzunk létre egy új űrlapot "Tervező nézet"-ben! Jelenítsük meg az űrlap tulajdonságlapját és menjünk az Egyéb fülre! Állítsuk a Súgófájl tulajdonságot "súgó.hlp"-re, a Súgó környezetazonosítót pedig az első témakör azonosítójára: "10"! Zárjuk be a tulajdonságlapot, kérjünk mentést, majd menjünk át "Űrlap nézet"-be! Ha most megnyomjuk az F1

funkcióbillentyűt megjelenik az előbb készített súgóállományunk! Zárjuk be az űrlapot! A Microsoft Access a súgóállományok esetében a következőképp jár el: ha valamelyik vezérlőelemen van a vezérlés, megpróbálja az ahhoz tartozó súgóállományt megnyitni, ha ez nem sikerül, akkor a szülőobjektumhoz rendelt beállítást használja. A legmagasabb szintű szülőobjektum maga a Microsoft Access, melyhez biztosan tartozik már súgó. Figyeljünk arra is, hogy a 0 nem érvényes Súgó környezetazonosító, az ugyanis a tartalomjegyzéket nyitja meg, amellyel a Microsoft Access nem tud mit kezdeni. 149. Barhács OktatóKözpont Ms-Access modul - 12. fejezet A Microsoft Access konvenciói szerint a súgó állományt úgy érheti el a felhasználó, hogy lenyomja az F1 funkcióbillentyűt. Sok esetben azonban a cél az, hogy egy gombról, vagy menüből el lehessen indítani a súgót. Hogyan oldható meg ez a probléma? Menjünk a makrók közé és

készítsünk egy új makrót, melynek neve "F1küld" lesz. A Billentyűküldés művelet segítségével közvetlenül küldhetünk billentyűleütést a Microsoft Access vagy aktív Windows-alapú alkalmazás részére. A Billentyűküldés műveletnek a következő argumentumai vannak: Argumentum Billentyűleütés Várakozás Leírás A Microsoft Access vagy az alkalmazás által feldolgozandó billentyűleütések. Írjuk be a billentyűleütéseket a Makró ablak Argumentumok szakaszának Billentyűleütések mezőjébe. Legfeljebb 255 karaktert írhatunk be. Ezt az argumentumot kötelező megadni. Meghatározza, hogy a makró megálljon-e addig, amíg a billentyűleütések feldolgozásra nem kerülnek. Az Igen értéket választva megáll, a Nem értéket választva nem áll meg. Alapértelmezett beállítás a Nem. A Microsoft Access pontosan úgy dolgozza fel a Billentyűküldés művelettől kapott billentyűleütéseket, mintha azokat közvetlenül az egyik

Microsoft Access ablakban írtuk volna be. 150. Barhács OktatóKözpont Ms-Access modul - 12. fejezet Speciális billentyűk megadása: Billentyű BACKSPACE BREAK CAPS LOCK DEL or DELETE DOWN ARROW END ENTER ESC HELP HOME INS or INSERT LEFT ARROW NUM LOCK PAGE DOWN PAGE UP PRINT SCREEN RIGHT ARROW SCROLL LOCK TAB UP ARROW F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 Kód {BACKSPACE}, {BS}, or {BKSP} {BREAK} {CAPSLOCK} {DELETE} or {DEL} {DOWN} {END} {ENTER}or ~ {ESC} {HELP} {HOME} {INSERT} or {INS} {LEFT} {NUMLOCK} {PGDN} {PGUP} {PRTSC} {RIGHT} {SCROLLLOCK} {TAB} {UP} {F1} {F2} {F3} {F4} {F5} {F6} {F7} {F8} {F9} {F10} {F11} {F12} {F13} {F14} {F15} {F16} Mentsük a makrót, majd menjünk vissza az űrlapok közé! Nyissuk meg a Súgó űrlapot "Tervező nézet"-ben és a varázsló kikapcsolt állapotában hozzunk létre rajta egy parancsgombot, melynek a felirata legyen "Súgó". Jelenítsük meg a parancsgomb tulajdonságlapját, az

Eseményfülön a Kattintásra eseményhez rendeljük az "F1küld" makrót, az Egyéb fülön pedig a Súgó környezetazonosítót állítsuk "20"-ra. Kérjünk mentést és menjünk át "Űrlap nézet"-be! Ha mindent jól csináltunk a parancsgombra való kattintás megnyitja a súgóállományunkat, a "Második" témakört mutatva! 151. Barhács OktatóKözpont Ms-Access modul - 12. fejezet Installálókészlet készítése Az installálókészlet egy olyan alkalmazás, amely a Windows alapú rendszerre feltelepít egy programot, esetlegesen annak beállításait is elvégzi. Több fajta installálókészlet készítő program létezik, a legismertebb ezek közül az InstallShield, mely több változatban készül. Mi itt az Express változatot fogjuk áttekinteni. A program indítása után egy ablakban meg kell adni, hogy mit akarunk szerkeszteni: - már létező telepítőkészlet állományt, - az utoljára használt

telepítőkészlet állományt, - új telepítőkészlet állományt. Válasszuk a "Create new Setup project" opciót! A következő ablakban adhatjuk meg az új project nevét, típusát, ill., hogy melyik könyvtárba mentse majd a telepítőkészlet állományt és magát a telepítőkészletetet. Állítsuk be az opciókat az alábbi ábrának megfelelően. A megjelenő ablakban láthatóak a telepítőkészlet létrehozásának lépései. Ezek: - Set the Visual Design: az alapvető vizuális beállítások. - Select InstallShield Object for Delphi: Delphi komponensek telepítése. - Select Components and Files: a telepítőkészlet állományainak kiválogatása. - Select User Interface Components: a felhasználói dialógusablakok beállításai. - Make Registry Changes: rendszerleíró adatbázis beállítások. - Specifify Folders and Icons: a telepítési programcsoportok meghatározása. - Run Disk Builder: telepítőkészlet létrehozása. - Test the Installation:

telepítőkészlet tesztelése. - Create Distribution Media: telepítési lemezek létrehozása. 152. Barhács OktatóKözpont Ms-Access modul - 12. fejezet Set the Visual Design Kattintsunk a "Set the Visual Design" csoportban bármelyik lehetőségre! Megjelenik a beállítóablak: 153. Barhács OktatóKözpont Ms-Access modul - 12. fejezet Az "App Info" fülön adhatjuk meg az alkalmazásunk nevét, a futtatható állományt (ha van), verziószám és fejlesztőinformációkat, valamint az alapértelmezett célkönyvtárat. Állítsuk be a következőket: - Application name: Access - Application Executable: - Version: 1.0 - Company: - Default destination Directory: <ProgramFilesDir>Access A "Main Window " fülön adhatjuk meg, hogy az alkalmazás címe szövegként kerüljön-e megjelenítésre, ha nem akkor milyen képet illesztünk be, és milyen legyen annak az elhelyezése, valamint a telepítőkészlet ablakának

háttérszínét is itt lehet beállítani. Állítsuk be a következőket: - Main Title: Text - Access - Logo Bitmap: - Position : - Background Color: Solid Teal A "Features" fülön tudjuk ki ill. bekapcsolni, hogy az InstallShield készítsen-e uninstall bejegyzést, amivel a programot el lehet távolítani a rendszerről. Maradjon bekapcsolva. Select InstallShield Objects for Delphi A "Select InstallShield Objects for Delphi" csoportban most semmit nem állítunk be. A későbbiek során itt lehet beállítani, minden olyan komponens feltelepítését (pl. BDE), amely szükséges lehet a Delphiben készült program futtatásához. Select Components and Files Kattintsunk a "Select Components and Files" csoportban bármelyik lehetőségre! Megjelenik a beállítóablak: 154. Barhács OktatóKözpont Ms-Access modul - 12. fejezet A "Groups" fülön állíthatjuk a be azokat az állományokat, amelyeknek be kell kerülni a

telepítőkészletbe. A "Components" ill a "Setup Types" fülön lévő opciók csak akkor érdekesek, ha olyan telepítőkészletet készítünk, amely többféle telepítési módot (Teljes, Minimális, Egyéni) támogat. Az "Insert Files" gombra kattintva vegyük fel a telepítőkészletbe a: - Munka.mdb, - Súgó.hlp, - és Súgó.cnt állományokat Select User Interface Components Kattintsunk a "Select User Interface Components" csoportban a "Dialog boxes" lehetőségre! Megjelenik a beállítóablak: Beállítások: - Welcome Bitmap: kezdőkép. Nem állítjuk be - Welcome Message: Kezdő üzenetablak. Nem változtatunk az alapértelmezett beállításokon. - Software License Agreement: licensz szerződés. Nem állítjuk be - Readme Information: programismertető információ. Nem állítjuk be - User Information: Felhasználói információk. Nem állítjuk be - Choose Destination Location: Az alapértelmezett könyvtár

kiválasztása. Beállítása: <ProgramFilesDir>Access. - Setup Type: Telepítési típusok.Nem állítjuk be - Custom Setup: Egyéni telepítés. Nem állítjuk be - Select Program Folder: Start menü programcsoport beállítása. Beállítása: Access - Start Copiyng Files: Fájlmásolás megkezdése. Nem változtatunk az alapértelmezett beállításokon. - Progress Indicator: Fájlmásolás százalékos ábrázolása. Nem változtatunk az alapértelmezett beállításokon. - Billboards: Nem állítjuk be. - Setup Complete: Nem változtatunk az alapértelmezett beállításokon. 155. Barhács OktatóKözpont Ms-Access modul - 12. fejezet Make Registry Changes A "Make Registry Changes" csoportban most semmit nem állítunk be. A későbbiek során itt lehet megadni, a rendszerleíró adatbázist változató kulcsok beállításait. Specifify Folders and Icons Kattintsunk a "Specifify Folders and Icons" csoportban a "Dialog boxes"

lehetőségre! Megjelenik a beállítóablak: A "General" fülön adható meg, hogy milyen elemek kerüljenek a menübe. Az "Advanced" fülön ezen elemek finombeállításait végezhetjük el. Elemet felvenni a "Run Command" mező melleti nyomógombbal lehet, és az "Add Icon" gombbal lehet a menühöz adni. Vegyük fel a: - Munka.mdb, - és a Súgó.hlp állományokat 156. Barhács OktatóKözpont Ms-Access modul - 12. fejezet Run Disk Builder Kattintsunk a "Run Disk Builder" csoportban a "Disk Builder" lehetőségre! Megjelenik a beállítóablak: Válasszuk a "Disk Size" lenyíló listából az 1,44 Mb lehetőséget, majd kattintsunk a "Build" gombra! Az InstallShield létrehozza az Installálókészletet, méghozzá oly módon, hogy az efelmásolható legyen a választott méretű médiára. A telepítőkészletet megtaláljuk a projectnévmédiaméretdiskN könyvtárban. 157. Barhács

OktatóKözpont Ms-Access modul - 12. fejezet Test the Installation A "Test the Installation" részben elindíthatjuk, tesztelhetjük a telepítőkészletet. Create Distribution Media A "Create Distribution Media" részben a kész telepítőkészletet felmásoltathatjuk az InstallShielddel a megfelelő méretű lemezekre. 158. Barhács OktatóKözpont Ms-Access modul - Tartalomjegyzék Tartalomjegyzék AZ ALKALMAZÁSFEJLESZTÉS ALAPJAI. 2 MI A MICROSOFT ACCESS ALKALMAZÁS? . 2 AZ ODBC (OPEN DATABASE CONNECTIVITY). 3 A DAO (DATA ACCESS OBJECTS) . 5 MICROSOFT ACCESS OBJEKTUMOK . 8 MICROSOFT OFFICE DEVELOPER EDITION (ODE) . 9 A SZÁMÍTÓGÉPBOLT ADATBÁZIS . 10 Táblák. 11 Kapcsolatok . 12 Mezők . 13 Alkatrész típusok. 13 Gyártók . 13 Szállítók . 14 Számlák részletei . 15 Számlák . 16 Raktár készlet . 18 Eladók. 20 Vevők. 21 A felhasználó felület . 24 A SZÁMÍTÓGÉPBOLT ADATBÁZIS LEKÉRDEZÉSEI . 27 ELŐKÉSZÜLETEK . 27 LEKÉRDEZÉSEK

. 27 A tíz legdrágább termék . 27 SQL . 28 Kifutott termékek . 28 SQL . 29 Megrendelés . 29 SQL . 30 Raktár készlet lekérdezés teljes. 30 SQL . 31 Raktár készlet lekérdezés paraméterezett . 31 SQL . 32 Sztornózott számlák. 32 SQL . 32 Sztornó számlák . 33 SQL . 33 Eladókhoz tartozó vevők . 33 SQL . 34 Eladókhoz tartozó vevők száma. 34 SQL . 34 Vevők vásárlásai. 35 SQL . 35 Vevők akik még nem vásároltak semmit . 35 SQL . 36 Vevők - két áruval . 36 SQL . 37 159. Barhács OktatóKözpont Ms-Access modul - Tartalomjegyzék A SZÁMÍTÓGÉPBOLT ADATBÁZIS TÖRZSŰRLAPJAI 1. 38 AZ AUTOŰRLAPOK HASZNÁLATA . 38 KOMBINÁLT LISTÁK KIALAKÍTÁSA . 40 A RAKTÁR TÖRZS LÉTREHOZÁSA . 47 A SZÁMÍTÓGÉPBOLT ADATBÁZIS TÖRZSŰRLAPJAI 2. 52 A VEVŐK TÖRZS LÉTREHOZÁSA . 52 A SZÁMLA TÖRZS LÉTREHOZÁSA . 54 A SZÁMÍTÓGÉPBOLT ADATBÁZIS MÓDOSÍTÓ ŰRLAPJAI. 58 SEGÉDFÜGGVÉNYEK IMPORTÁLÁSA . 58 A SysCmd függvény . 59 MÓDOSÍTÓ ŰRLAPOK

ELKÉSZÍTÉSE . 61 Vevők űrlap létrehozása. 61 A ! és a . (pont) operátor használata a kifejezésekben 65 Raktár törzshöz kapcsolódó űrlapok létrehozása . 65 ÚJ SZÁMLA KIÁLLÍTÁSA A SZÁMÍTÓGÉPBOLT ADATBÁZISBAN. 67 A SZTORNÓ ÉS A SZTORNÓZOTT SZÁMLÁK ŰRLAPOK LÉTREHOZÁSA . 67 SZÁMLA ŰRLAP LÉTREHOZÁSA . 69 Hivatkozás egy segédűrlapra vagy egy segédjelentésre . 72 SZÁMLA SZTORNÓZÁSA A SZÁMÍTÓGÉPBOLT ADATBÁZISBAN . 80 1. "SSZÁMLA ELKEZD" FRISSÍTŐ LEKÉRDEZÉS ELKÉSZÍTÉSE 80 2. "SSZÁMLA HOZZÁFŰZ" HOZZÁFŰZŐ LEKÉRDEZÉS ELKÉSZÍTÉSE 81 3. "SSZÁMLA RÉSZLETEI HOZZÁFŰZ" HOZZÁFŰZŐ LEKÉRDEZÉS ELKÉSZÍTÉSE 82 4. SSZÁMLA FRISSÍTŐ LEKÉRDEZÉS ELKÉSZÍTÉSE 83 A SZTORNÓZÁSI FOLYAMAT KIALAKÍTÁSA . 85 JELENTÉSEK KIALAKÍTÁSA A SZÁMÍTÓGÉPBOLT ADATBÁZISBAN. 88 A Raktár készlet jelentés. 91 A Megrendelés jelentés. 93 A Számla jelentés . 95 A Számla nyomtatáshoz lekérdezés .

95 KERESŐ ÉS KEZELŐ ŰRLAPOK LÉTREHOZÁSA . 102 A SZÁMÍTÓGÉPBOLT ADATBÁZIS KERESŐ ŰRLAPJA . 102 Kiegészítő űrlapok elkészítése. 104 A SZÁMÍTÓGÉPBOLT ADATBÁZIS KEZELŐ ŰRLAPJA . 108 UTOLSÓ SIMÍTÁSOK. 110 ESZKÖZTÁR, MENÜ, HELYI MENÜ KÉSZÍTÉSE . 110 Szbolt menü elkészítése . 111 Szbolt eszköztár elkészítése . 114 Szbolt eszköztár elkészítése . 116 Saját menüsor, eszköztár és helyi menü csatolása az űrlapokhoz . 117 NYITÁSI-BEZÁRÁSI SORREND . 118 BEJÁRÁSI SORREND BEÁLLÍTÁSAI . 121 VEZÉRLŐELEM MAGYARÁZAT, ÁLLAPOTSORI SZÖVEG . 122 POWERPOINT ANIMÁCIÓ BESZÚRÁSA . 122 INDÍTÁSI BEÁLLÍTÁSOK. 125 160. Barhács OktatóKözpont Ms-Access modul - Tartalomjegyzék TIPPEK-TRÜKKÖK. 126 JELSZAVAS VÉDELEM MEGVALÓSÍTÁSA . 126 SPECIÁLIS BILLENTYŰK LETILTÁSA . 132 TIPPEK A KEZELŐ ŰRLAP ELKÉSZÍTÉSÉHEZ . 135 Saját gombkép használata. 135 Az AllowBypassKey tulajdonság rejtett visszakapcsolása . 136 SÚGÓ

ÉS INSTALLÁLÓ-KÉSZLET KÉSZÍTÉSE . 137 A SÚGÓ . 137 A HelpScribble használata . 139 Súgó hozzárendelése a Microsoft Access alkalmazáshoz. 149 INSTALLÁLÓKÉSZLET KÉSZÍTÉSE . 152 Set the Visual Design. 153 Select InstallShield Objects for Delphi. 154 Select Components and Files . 154 Select User Interface Components . 155 Make Registry Changes. 156 Specifify Folders and Icons . 156 Run Disk Builder . 157 Test the Installation. 158 Create Distribution Media. 158 TARTALOMJEGYZÉK. 159 161