ACCESS GYAKORLATOK. Tansegédlet a Szervezéstechnológia tárgyhoz. Dr. Gyurkó György 2010.



Hasonló dokumentumok
Adatbáziskezelés alapjai. jegyzet

Választó lekérdezés létrehozása

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

FŐKÖNYV ÁLTALÁNOS TÁJÉKOZTATÓ TÖRZSEK KIALAKÍTÁSA

SAP Business One. Üzleti partnerek kezelése. Mosaic Business System Kft.; Support:

Absztrakt feltöltése az ITDK 2013 konferenciára

Útmutató a MATARKA adatbázisból való adatátvételhez

Lekérdezések az SQL SELECT utasítással. Copyright 2004, Oracle. All rights reserved.

Gyorsított jegybeírás. Felhasználói dokumentáció verzió 2.0.

1. A NÉPESSÉGNYILVÁNTARTÓ PROGRAM TELEPÍTÉSI FELTÉTELE. A

Szakrendelések nyitva tartásának nyilvántartása

Forgalom nyilvántartó program Kezelési útmutató

Alkalmazói rendszerek ACCESS ZH - javítókulcs Informatika tanár MSC, levelező tagozat, január 06.

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

POSZEIDON dokumentáció (1.2)

Főkönyvi elhatárolások

Excel Hivatkozások, függvények használata

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

SAP Business One. Raktári tranzakciók. Mosaic Business System Kft.; Support:

SAP Business One. Alapfunkciók, alapbeállítások. Mosaic Business System Kft.; Support:

Készlet nyilvántartó

Excel Hivatkozások, függvények használata

1) Szállítói számla kontírozásának megkezdését megelőző lépések a Tárgyi eszköz modulban

Kézikönyv. Nyitott tételek összevezetése

Új adatbázis létrehozása

Mérlegjegy. Szécsy Számítástehnika 4080 Hajdúnánás, Ady krt

Az eszközpaletta. Felsı sor balról jobbra. Második sor balról jobbra 1/7

WINDOWS XP - A GRAFIKUS FELÜLET KEZELÉSE

Folyamatos teljesítésű számlák tömeges generálása időszakonként, egyedi tételek kezelésének lehetőségével

Lakóház tervezés ADT 3.3-al. Segédlet

3. Adatbázis definiálása és kezelése

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Az elektronikus napló

Lekérdezések I. Egyszerű választó lekérdezések

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

Libra6i Mérleg A/E Számlakivonatok

A dátum adatokban csak szám és az elválasztó pont billetyő engedélyezett.

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Comp-Sys Fo ko nyv-sza mla za s Program Felhaszna lo i leı ra s a to l e rve nyes programmo dosı ta sokhoz

DebitTray program Leírás

Számlázó program kezelési leírása

6. Alkalom. Kép ClipArt WordArt Szimbólum Körlevél. K é p

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

Libra6i Mérleg A/E Számlakivonatok

1) Kontírozás megkezdését megelőző lépések a Készlet modulban. A kontírozást a Készlet a főkönyvnek egy menüpont futtatásával adja át:

ÓRAREND SZERKESZTÉS. Felhasználói dokumentáció verzió 2.5. Budapest, 2011.

Mintafeladat megoldása MS Office Project 2007 szoftverrel

Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008.

Bankszámlakivonat importer leírás

Belföldi Termékosztályozás V

Haladó irodai számítógépes képzés tematika

INFORMATIKA INGYENES ELEKTRONIKUS TANANYAG ADATBÁZIS-KEZELÉS FELADATOK

Segédlet a 2014 év nyitásához

Microsoft Excel. Táblázatkezelés. Dr. Dienes Beatrix

ContractTray program Leírás

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, november 08.

Alapok (a K2D rendszer alapjai)

VEGA ÚJ FUNKCIÓK. 1 Karton áthelyezés a Vegában. 1.1 Követelmények, megszorítások. VEGA v LeloSoft Kft.

Nem gyári alkatrészek raktári betárolása modul

Programkezelıi leírás,

Gyári alkatrészek raktári betárolása modul

ServiceTray program Leírás

EGYÉB BEFIZETÉSI MÓDOK (KÜLSŐ SZÁMLA, HÁZIPÉNZÁR)

Iktatás modul. Kezelői leírás

Programkezelıi leírás, Kimutatások

Raiffeisen Mobil Banking

FELHASZNÁLÓI ÚTMUTATÓ

Chat felhasználói segédlet

Táblázatok. Táblázatok beszúrása. Cellák kijelölése

FELHASZNÁLÓI LEÍRÁS a DIMSQL Integrált Számviteli Rendszer Mérleg moduljának használatához

Adatbázisok II. rész

Az ikonra történő kattintást követően a felületen két sor jelenik meg:

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Kézikönyv. Szelekciós jegyzék 2.

Tantárgyfelosztás. I. Ellenőrzés. Mielőtt hozzákezd a tantárgyfelosztás tervezéséhez, ellenőrizze le, illetve állítsa be a következőket:

BIT-SOFT KFT. BITHEGYEZİ BITWIN ÜGYVITELI RENDSZER HÁZIPÉNZTÁR MODUL FUNKCIÓK. Verziószám: Bithegyezı Házipénztár modul január 26.

Hozzáférési szintek és Időzónák használata

Angol szótár V

Internetes Elıjegyzés Elıjegyzési Központon keresztül

Minőségellenőrzési kérdőív kitöltő program Felhasználói kézikönyv

Mechatronika segédlet 3. gyakorlat

HATODIK FEJEZET / FÜGGİ MODELLEK / TANGRAM

Eszközök nyilvántartása az NTAX programban

Parlagfű Bejelentő Rendszer

Ügyfélforgalom számlálás modul

Bevezetés. A program kezelése

Prezentáció, Prezentáció elkészítése. Nézetek

Oktatási anyag az MLSZ-IFA rendszerhez

Aromo Szöveges értékelés normál tantárggyal

PÉNZTÁRKÖNYV PROGRAM

Az MS Excel táblázatkezelés modul részletes tematika listája

Duál Reklám weboldal Adminisztrátor kézikönyv

Remek-Bér program verzió történet

Összegzı mérleg. METRISoft MS-UMT-01 Mérlegmőszerrel. Kezelési Segédlet

A LEGGYAKORIBB HIBA : A GYŐJTİSZÁMLÁRA UTALÁS MÉG NEM JELENTI A KÖLTSÉGTÉRÍTÉS AUTOMATIKUS BEFIZETÉSÉT!!!

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

1. A NÉPESSÉGNYILVÁNTARTÓ PROGRAM TELEPÍTÉSI FELTÉTELE. A

VÍZÓRA NYÍLVÁNTARTÓ RENDSZER

1. Bevezetés. összeállítása ( ) majd a Lekérdezés futtatása ( ) nyomógombot kell megnyomni (2. ábra).

TÁJÉKOZTATÓ A CCN V VERZIÓ SP2 változathoz. Változások és kiegészítések a V verzió és SP1 kiadása után

Átírás:

ACCESS GYAKORLATOK Tansegédlet a Szervezéstechnológia tárgyhoz Dr. Gyurkó György 2010.

Szerzı: Dr. Gyurkó György

3 TARTALOMJEGYZÉK 1. Access Egy kis elmélet... 4 1.1 Adatbázis definiálása az Access grafikus felületén... 4 1.2 Adatok bevitele, törlése és módosítása a grafikus felületen... 9 1.3 Adatok lekérdezése az Access grafikus felületén... 11 2. Feladatok... 23 3. Megoldások... 46

4 ACCESS GYAKORLATOK 1. Access Egy kis elmélet 1.1 Adatbázis definiálása az Access grafikus felületén Új adatbázist vagy egy adatbázisban új elemeket általában valamilyen párbeszédes felületeken is definiálhatunk. Ezek közé tartozik a Microsoft Access program grafikus (táblázatos) felülete. Az ezen szakaszban bemutatott példák és képernyıábrák is az Access felhasználásával készültek. Tábla definiálása Az 1.1. ábrán az olvasó az Access táblatervezı felületét, és abban történetesen a fıkönyvi számlák forgalomtételeit tartalmazó tábla (táblanév: Fkvisza_forg) tervét (definícióját) látja. Ezen a felületen megadhatók a tábla oszlopainak, más szóval mezıinek a jellemzıi (mezınév, adattípus és további általános, illetve megjelenítési jellemzıi). Mivel a fókusz éppen az Fkvisza_forg tábla Számlaoldal nevő mezıjén van, az alsó füleslapokon ennek a mezınek a további jellemzıit lehet látni, illetve megadni. Például az Érvényességi szabály nevő rovatban a Számlaoldal lehetséges értékeire vonatkozó megszorítás adható meg: a = T Or = K megszorítás azt jelenti, hogy a tábla Számlaoldal mezıjében csak a T (tartozik) vagy a K (követel) érték állhat. Az Fkviszla_forg tábla értelmezése: E tábla rendeltetése, hogy a gazdasági események (az azokat képviselı bizonylatok) könyvelésekor keletkezı fıkönyvi forgalomtételeket tárolja. Tetelsorszam: Egy fıkönyvi számlára könyvelt forgalomtétel azonosítója (elsıdleges kulcsa). Idoszakkod: Annak a mérlegidıszaknak a kódja, amelyre a forgalomtétel könyvelve lett. Szamlatukorkod: A Szamlatukor-sor azonosítója, azaz idegen kulcs a Szamlatukor táblából (lásd a 1.5. ábrán), amely a létezı fıkönyvi számlaszámokat (Fkviszla_szam) tárolja. Tehát az Fkviszla_forg tábla soraiban a Szamlatukorkod hivatkozza azt a fıkönyvi számlaszámot, amelyre a sorban tárolt tétel könyvelve lett. (De akkor miért nem a fıkönyvi számlaszám áll a Szamlatukorkod helyén? Azért, mert a Szamlatukor tábla sorait a fıkönyvi számlaszám nem azonosíthatja, hiszen azonos fıkönyvi számlaszám a tábla több sorában is megjelenhet. Ugyanis ez a tábla a számlaszámokat történetileg tárolja, azaz nem csak az aktuálisam érvényes számlaszámokat, hanem a korábbi években érvényeseket is tartalmazza. Így, ha egy számlaszám valamikor érvényes volt, majd érvénytelenítették, majd ismét érvényessé vált de már a korábbitól különbözı jelentéssel, akkor ez a számlaszám szükségképpen több Szamlatukor-sorban van jelen.) Szamlaoldal: Azt mutatja, hogy a Szamlatukorkod hivatkozott számla melyik oldalára lett könyvelve a tétel összege. Értékei: T = tartozik; K = követel. Osszeg: Az adott számla adott oldalára könyvelt forgalomérték (forintban). Bizonylatkod: A Bizonylat táblában a tétel forrásbizonylatát hivatkozó idegen kulcs. Az azonos bizonylatról keletkezett tételek éppen arról ismerhetık fel, hogy mindegyikben azonos a Bizonylatkod értéke. Tételleírás: Tetszıleges emlékeztetı szöveg. TJ_tetelsorszam: Csak törlı vagy javító tételben van kitöltve, és az azzal törölt vagy javított forgalomtétel azonosítóját tartalmazza. Kapcsolat: Szintén csak törlı vagy javító tételben van kitöltve. Értékei: T = törlés; J = javítás. Megjegyzés: A számvitel szabályai szerint az egyszer már lekönyvelt tétel nem változtatható. Ha esetleg utóbb hibásnak bizonyul, akkor is az adatbázisban marad, a hiba csak további strornózó és

ACCESS GYAKORLATOK 5 javító tételek hozzáadásával korrigálható: Ha a hiba csak annyi, hogy egy tételt egyáltalán nem kellett volna könyvelni, akkor csak stornózni kell, azaz a tételével azonos összeggel és azonos számlára, de a számla ellenkezı oldalára vonatkozó újabb tételt kell létrehozni, ez a törlı tétel. Ha viszont másképpen kellett vona könyvelni, akkor a törlı tételen felül még olyan javító tétel(eke)t is létre kell hozni, amely(ek) már a helyes könyvelésnek megfelelı tartalommal bír(nak). Hogy egyértelmő legyen, hogy egy törlı vagy egy javító tétel melyik tételnek törlése vagy javítás, a törlı, illetve javító tétel a TJ_tetelsorszam mezıjében tartalmazza a törölt, illetve javított tétel azonosítóját, a Kapcsolat mezıjében pedig viszony típusát jelzı kódot. Elsıdleges kulcs minıség jelzése A fókusz jelzése Az aktuális oszlopra vonatkozó érvényességi szabály Elsıdleges kulcs minıség be- vagy kikapcsolásásra szolgáló funkciógomb 1.1. ábra: Tábladefiniáló (tervezı) felület Accessben 1.2. ábra: Táblára vonatkozó érvényességi szabály a Tábla tulajdonságai ablakban

6 ACCESS GYAKORLATOK Az 1.1. ábrán a Tetelsorszam elıtti kulcsszimbólum jelzi, hogy a Tetelsorszam képezi a tábla elsıdleges kulcsát. Egy mezı elsıdleges kulcs minıségét úgy lehet beállítani, hogy a jobb egérgombbal a mezıre kattintva, arra helyezzük a fókuszt, majd az Elsıdleges kulcs funkciógombra kattintunk. Nem csak egy-egy oszlopra vonatkozó érvényességi szabályok, hanem a tábla egészére vonatkozóak is megadhatók. Ilyen példát mutat az 1.2. ábra. Az ott látható Tábla tulajdonságai ablak a Nézet menü Tábla tulajdonságai menüparancsára kattintással jeleníthetı meg. Az ablak Érvényességi szabály mezıjébe írt feltételt itt kinagyítva megismételjük: ([TJ_Tetelsorszam] Is Null And [Kapcsolat] Is Null) Or ([TJ_Tetelsorszam] Is Not Null And [Kapcsolat] Is Not Null) A fenti feltétel azt jelenti, hogy a TJ_Tetelsorszam és a Kapcsolat mezık (oszlopok) pontosan egyszerre lehetnek üresek, illetve pontosan egyszerre lehetnek kitöltve. Ez a szabály azért nem adható meg mezıszabályként, mert nem egyetlen mezıre, hanem egy soron beüli két mezı közötti viszonyra vonatkozó feltételt foglal magában. Az elıbbinél lényegesen bonyolultabb szabályok is elıfordulhatnak. Például olyanok, amelyek több esetleg különbözı táblákban lévı adatsor közötti összefüggésre vonatkoznak. Ilyen az a szabály is, hogy az egy gazdasági eseményrıl (egy bizonylatról) könyvelt követel oldali tételek együttes összege egyenlı kell legyen az ugyanarról könyvelt tartozik oldali tételek együttes összegével. Az ilyen szabályok már táblára vonatkozó érvényességi szabályban sem adhatók meg, teljesülésük ellenırzésére tárolt eljárásokat kell írni. A fejezet azonban ezekkel már nem foglalkozik. Az 1.3. ábra a Bizonylatkod mezı Megjelenítés jellemzıit mutatja. A jellemzık értelme az, hogy egy új tétel rögzítésekor a bizonylatkódot a táblába ne a felhasználónak kelljen beírni, hanem a felhasználó egy választéklistából (lásd Kombinált lista) választhassa ki. (A megjelenítés ilyen beállításának mőködés közbeni eredményét az 1.4. ábra mutatja.) 1.3. ábra: A Bizonylatkód megjelenítési jellemzıinek beállítása A választéklista a Bizonylatvalasztek nevő lekérdezés eredményét jeleníti meg (lásd Sorforrás típusa: Tábla/lekérdezés; Sorforrás: Bizonylatvalasztek). A lista a sorforrás elsı két oszlopát mutatja (lásd Oszlopszám: 2), és a kiválasztott sorból az elsı oszlop tartalmát adja vissza (lásd Kötött oszlop: 1), és az lesz a tételben a Bizonylatkod mezı tartalma. Az oszlopszélességek, a listasorok száma és a listaszélesség a választéklista megjelenítési méreteit határozzák meg. A felhasználó közvetlenül nem írhat be bizonylatkódot, azt csak kiválaszthatja (lásd Csak listaelem: Igen).

ACCESS GYAKORLATOK 7 1.4. ábra: Az 1.1-1.3. ábrák szerint definiált Fkviszla_forg tábla mőködés közben Megjegyzés: Az Fkviszla_forg táblában a Bizonylatkód mezı valójában egy Bizonylat táblából származó idegen kulcs. De ha ez így van, akkor miért nem a Bizonylat tábla lett megadva a választéklista sorforrásaként, miért volt szükség a Bizonylatvalasztek nevő lekérdezésre? Azért, mert a felhasználó kívánsága az volt, hogy a választéklistában a Bizonylatkód-értékek csökkenı sorrendjében jelenjenek meg a bizonylatok, hiszen új tételeket általában a legutoljára felvitt bizonylat(ok)hoz kapcsolódnak. Ha a Bizonylat táblában nem ilyen a rendezettség, mert például más célból általában a növekvı (pontosabban nem csökkenı) Bizonylatkód-értékek szerinti rendezettséget feltételezünk, akkor kénytelenek vagyunk a Bizonylat tábla egy olyan lekérdezését használni sorforrásként, amely a bizonylatokat a Bizonylatkód-értékek csökkenı (pontosabban nem növı) sorrendjében adja vissza. A teljes adatbázis tervezése általában sok tábla megtervezését foglalja magában, és persze meg kell határozni a táblák kapcsolatait is. Az Access kapcsolattervezı felülete az 1.5. ábrán látható. Ezen a grafikus felületen a kapcsolatot jelölı vonalak egérrel húzhatók be a táblákat jelölı dobozok közé. A vonalakat úgy kell húzni, hogy a dobozok oldalán adódó tapadási pontjaik a kapcsolómezıket mutassák. Egyes táblákat több doboz is képviselheti ebben az ablakban. Például az Fkvisza_forg tábla azért szerepel kétszer (a második szerepének neve: Fkvisza_forg_1), mert önmagára visszamutató kapcsolatot is alkot (t.i. a sztornózó/javító és a sztornózott/javított sorok közötti kapcsolat miatt). Ugyancsak kétszer szerepel a kapcsolattervezı felületen a Szamlatukor tábla is (a második szerepének neve: Szamlatukor_1), mert az két szerepben is fölérendeltje a Gyujtoleiro táblának. Egy kapcsolóvonalra duplán kattintva, vagy a kapcsolóvonalon a jobb egérgomb lenyomása után elıtőnı menübıl a Kapcsolat szerkesztése menüparancsot választva, az 1.6. ábra szerinti Kapcsolatok szerkesztése ablak jelenik meg. Ha egy kapcsolatra a Kapcsolatok szerkesztése ablakban a Hivatkozás integritás megırzése be van kapcsolva, akkor a rendszer nem engedi meg, hogy egy Fkviszla_forg-sor létrehozásakor vagy módosításakor olyan értéket írjunk a kapcsolómezıbe (jelen esetben a Bizonylatkodba), amely nem létezik a Bizonylat táblában. A további két kapcsoló is csak a Hivatkozás integritás megırzése bekapcsolt állapotában használható.

8 ACCESS GYAKORLATOK 1.5. ábra: Táblák kapcsolatait meghatározó (kapcsolattervezı) felület ACCESS-ben 1.6. ábra: A Bizonylat és az Fkviszla_forg kapcsolata a Kapcsolatok szerkesztése ablakban Ezzel hozható elı az Illesztési tulajdonságok ablak. Be van kapcsolva, ezért létrehozás vagy módosítás esetén csak olyan érték írható az Fkviszla_forg tábla Bizonylatkod mezıjébe, amilyen már létezik a Bizonylat táblában. Kikapcsolva, ezért visszautasítja az olyan bizonylat törlését, amelyhez létezı ráhivatkozó tétel. Az Access automatikusan felismeri, hogy a kapcsolat típusa egy-a-többhöz. 1.7. ábra: A Bizonylat és az Fkviszla_forg kapcsolat illesztési típusa az Illesztési tulajdonságok ablakban Az illesztés típusa a kapcsolatnak nem egy stabil tulajdonsága, mert a célnak megfelelıen átállítható. Azt szabályozza, hogy az olyan lekérdezésekben, amelyekben a két tábla együtt vesz részt, köztük a JOIN milyen típusát kell elıállítani.

ACCESS GYAKORLATOK 9 Ha a Kapcsolt mezık kaszkádolt frissítése be van kapcsolva, akkor abban a rendkívüli 1 esetben, amikor egy bizonylat kódja (elsıdleges kulcsa) változik, automatikusan a bizonylatról keletkezett tételekben is az új értékre módosul a Bizonylatkod tartalma. Ha a Kapcsolt mezık 2 kaszkádolt törlése be lenne kapcsolva, akkor egy bizonylat törlése esetén, automatikusan a bizonylatról keletkezett összes tétel is törlıdne. Esetünkben ez nem lenne jó, mert könyvelt tételt nem szabad törölni, ezért az 1.6. ábrán ez a kapcsoló kikapcsolt állapotban van, aminek az a hatása, hogy ha egy bizonylatra már hivatkozik könyvelt tétel, akkor ennek a bizonylatnak a törlését a rendszer visszautasítja. Az elıbbiek szerint megtervezett táblákon ugyancsak az Access felületét használva különféle adatkezelési mőveleteket lehet végezni: új adatsorokat lehet bevinni, korábban bevitt adatokat meg lehet változtatni, adatsorokat ki lehet törölni, az adattartalmat le lehet kérdezni (lásd az 1.3. alfejezetben). 1.2 Adatok bevitele, törlése és módosítása a grafikus felületen Ez a szakasz csak olyan mértékben foglalkozik az Access grafikus felületén végrehajtható adatmanipulációs mőveletek ismertetésével, amennyi ahhoz szükséges, hogy az olvasó az könnyen feltölthesse megfelelı adatokkal a lekérdezések gyakorlásához szükséges táblákat. Bármely tábla megnyitható a táblaböngészıbıl többféle módon is, így például a tábla kijelölése utána a Megnyitás gombra kattintással (lásd az 1.8. ábrán). 1.8. ábra: A Bizonylat tábla megnyitása a táblaböngészıbıl 1 Ez azért rendkívüli, mert az elsıdleges kulcsnak stabilnak kell lenni, azaz rendesen nem változhat. 2 Ez egy hibás fordítás eredménye. Helyesen Kapcsolt rekordok kaszkádolt törlése lenne.

10 ACCESS GYAKORLATOK Törlı gomb. Az éppen létrehozott vagy szerkesztés alatt lévı sor jelzése. 1.9. ábra: Új sor rögzítése a Bizonylat táblába Az új bizonylathoz új tétel létrehozása. Az éppen létrehozott bizonylat. A bizonylathoz tartozó tételeket megnyitó, illetve bezáró gomb Legördülı választéklista a tétel számlatükörkódjának (közvetve a fıkönyvi számlaszámának) kiválasztása céljából. 1.10. ábra: A 25-ös kódú bizonylathoz új tétel rögzítése az Fkviszla_forg táblába

ACCESS GYAKORLATOK 11 Egy táblába új sort a tábla végén (utolsó sorként) lehet bevinni. (Lásd egy új bizonylatsor bevitelét a Bizonylat táblába az 1.9. ábrán.) Ha a tábladefinícióban adott szabályok nem tiltják, akkor bármely táblasorra kattintva annak adattartalma módosítható (átírható), illetve a törlı gombra kattintással a sor eltávolítható a táblából. Az 1.10. ábrán arra is példát látunk, hogy a Bizonylat táblában is kezdeményezhetı egy bizonylathoz tartozó forgalomtételek rögzítése az Fkviszla_forg táblába. 1.3 Adatok lekérdezése az Access grafikus felületén A teljesség igénye nélkül néhány példa megoldásával csupán ízelítıt adunk az Access grafikus lekérdezésdefiniáló felületének használatáról. Egy új lekérdezés létrehozásának kezdeményezése az 1.11. ábrán mutatott módon történhet. Az Access lekérdezés definiáló felülete az 1.11-1.12. ábrákkal mutatott lépésekkel érhetı el: (1) Az objektumok közül a Lekérdezéseket, majd azon belül (2) a Lekérdezés létrehozása Tervezı nézetben mőveletet kell választani (1.11. ábra). Az ezután megjelenı Tábla megjelenítése ablakból (1.12. ábra) lehet kiválasztani a lekérdezés forrásadatait adó táblá(ka)t vagy korábbi lekérdezés(eke)t. E szakasz mindegyik példájában közvetlenül vagy közvetve az 1.1. szakasz 1.5. ábráján mutatott táblák valamelyikét (esetleg több tábla együttesét) használjuk adatforrásként. (A közvetve való felhasználás arra az esetre vonatkozik, amikor a lekérdezés forrásai között nem csak tábla, hanem korábbi leklérdezés is szerepel.) 1 2 1.11. ábra: Lekérdezéstervezés kezdeményezése Accessben

12 ACCESS GYAKORLATOK 1.12. ábra: Lekérdezéstervezéshez táblák kiválasztása Accessben 1.13. ábra: A Szamlatukor felépítése Az itt következı elsı feladatban a Szamlatukor táblát használjuk forrásként. Ebben az Fkviszla_szam jelenti a fıkönyvi számlaszámot, a Szamla_ervkezd jelenti a Szamlatukor-sor érvényességének kezdetét, a Szamla_ervvege jelenti a Szamlatukor-sor érvényességének végét. (A még érvényes sorok érvényességének igazi vége általában még ismeretlen. Ilyenkor egy nagyon nagy dátum, 4000.12.31. áll a Szamla_ervvege mezıben.) A számlaosztályt a fıkönyvi számlaszám elsı számjegye mutatja. Ki fogjuk használni azt a tényt is, hogy a hogy a fıkönyvi számlaszám (bár számjegyekbıl áll) mégis szöveg adattípusú. 1. feladat: A Szamlatukor táblából kérdezze le a 4-es számlaosztályba tartozó fıkönyvi számlaszámok közül azokat, amelyek 2008.02.06-án érvényesek! A kimeneten fıkönyvi számlaszámokat a Szamlatukor táblában jellemzı összes oszlop jelenjen meg. A lekérdezés létrehozásának kezdeményezésekor az 1.12. ábra szerinti Tábla megjelenítése ablakban most a Szamlatukor táblát kell kiválasztani hozzáadásra.

ACCESS GYAKORLATOK 13 1.14. ábra: Az 1. feladat 1. megoldása Magyarázat az 1. megoldáshoz: Az 1. oszlopban azt adtuk meg, hogy a kimeneten a Szamlatukor-sor minden oszlopa jelenjen meg (Szamlatukor.* és pipa a jelölı négyzetben). A további három oszlopban nincs bekapcsolva a megjelenítés, tehát ezek csak feltételeket definiálnak. A második oszlop Fkviszla_szam Like '4*' feltételének értelme: azokat a számlaszámokat keressük, amelyek 4-essel kezdıdnek. (Itt használtuk ki, hogy a fıkönyvi számlaszám szöveg típusú adat, mert a Like mővelet csak szöveg adattípusra alkalmazható.) A 3. és a 4. oszlopkban lévı feltételek: Szamla_ervkezd <=#2008.02.06.#, illetve Szamla_ervvege >=#2008.02.06.# A három feltétel egymással logikai ÉS (AND) kapcsolatban áll, azaz a lekérdezés azokat a sorokat találja meg, amelyekre mindhárom feltétel egyidejőleg teljesül. 1.15. ábra: Az 1. feladat 2. megoldása Magyarázat az 2. megoldáshoz: Ez a megoldás csak a 2. oszlopban különbözik az elıbbitıl, ezért csak az igényel magyarázatot. A Left([Fkviszla_szam];1) egy olyan függvénykifejezés, amely az Fkviszla_szam baloldali elsı karakterét (elsı számjegyét) adja vissza. (Ez a függvény is csak szöveg adattípusra alkalmazható.) Végeredményben a második oszlop a Left([Fkviszla_szam];1) = '4' feltételt tartalmazza, amelyet azok a fıkönyvi számlaszámok elégítenek ki, amelyeknek elsı számjegye 4-es. (A második oszlopba a Kif1: szöveget az Access automatikusan írta be, a felhasználónak ezzel nincs dolga. Az Access automatikusan Kif1:, Kif2:, címkéket tesz a Mezı sorban azokba az oszlopokba, ahol nem egyszerően mezınév, hanem valamilyen kifejezés áll, és a felhasználó nem tett saját címkét.) Megjegyzések: A Left(mezınév; hossz) függvény csak az Access SQL nyelvjárásában használható, más SQL nyelvjárásokban a Substring(mezınév, kezdıpozíció, hossz) vagy Substr(mezınév, kezdıpozíció, hossz) alakú függvény használatos helyette. A dátum típusú adatkonstans csak az Access grafikus felületén #eeee.hh.nn.# alakú, az Access SQL szerkesztı felületén már a #hh/nn/eeee# alakot kell alkalmazni. Más SQL nyelvjárásokban a dátum típusú adatkonstans nem ## jelek között, hanem ''

14 ACCESS GYAKORLATOK jelek (aposztrófok) között áll, pl. '2008.02.06', illetve a felépítése a nemzeti sajátosságoknak megfelelıen rugalmasan választható meg. 2. feladat: A Számlatükör táblából kérdezze le azokat a Szamlatukor-sorokat, amelyekben értelmezett fıkönyvi számlaszámokra történt könyvelés 2007.11.20-án! A kimeneten a fıkönyvi számlaszám (Fkviszla_szam), és a számla megnevezése (Szamla_megnevezes) oszlopok jelenjenek meg. Gondoskodjon arról, hogy egy Szamla-tukor-sor csak egyszer jelenjen meg a kimeneten akkor is, ha az abban definiált fıkönyvi számla-számra több tétel lett könyvelve az említett napon! Most a lekérdezés definíciójához az 1.16. ábra szerinti három táblát kell hozzáadni. Bár most is Szamlatukor-sorokat keresünk, nem egyedül ez a tábla képezi a lekérdezés forrását. Ugyanis annak eldöntéséhez, hogy mely számlaszámokra történt könyvelés, szükség van a könyvelt forgalomtételeket tartalmazó Fkviszla_forg táblára is. Sıt, ez is kevés, mert az, hogy mely forgalomtételeket könyvelték 2007.11.20-án, a tételekbıl nem derül ki, ugyanis csak a Bizonylatkoddal a tételhez kapcsolt Bizonylat tábla tartalmazza a Konyvelesdatumot. 1.16. ábra: A 2. feladat által használt táblák 1.17. ábra: A 2. feladat nem tökéletes megoldása

ACCESS GYAKORLATOK 15 1.18. ábra: A 2. feladat szerinti lekérdezés kimenete a megoldás javítása elıtt Az 1.18. ábrán látható kimenet azt mutatja, hogy az 1.16-1.17. ábrákon adott megoldás nem tökéletes, mert a 384-es fıkönyvi számlaszám duplán jelenik meg benne. Az Access párbeszédes felületén ezt a töbszörözıdést megelızı rendelkezés a Lekérdezés tulajdonságai ablakban tehetı meg (lásd az 1.20. ábrán) az Egyedi értékek: Igen beállítással. Ez az ablak egy lekérdezés definiálása közben az 1.19. ábrán mutatott módon hozható elı. A lekérdezésdefiníció javítása utáni kimenet az 1.20. ábrán látható. Tulajdonságok gomb. 1.19. ábra: A Lekérdezés tulajdonságai ablak megjelenésének kezdeményezése Igen 1.20. ábra: A megoldás javítása: rendelkezés az ismétlıdések megszüntetésérıl 1.21. ábra: A javított megoldás kimenete Az azonban külön magyarázatot igényel, hogy az 1.18. ábrán miért szerepel duplán a 384- es számlaszám: Mint az az 1.16. ábrán látszik, a lekérdezés forrását három tábla kapcsolata

16 ACCESS GYAKORLATOK képezi. Ilyenkor a háttérben rejtetten mindig létrejön egy olyan munkatábla, amelyben annyi oszlop van, mint a kapcsolt táblázatokban összesen, és ez a munkatábla képezi a lekérdezés tulajdonképpeni forrását. Történetesen az 1.16. ábrának megfelelı esetben a rejtett munkatáblának ilyen oszlopai lesznek: Bizonylat.Bizonylatkod(a Bizonylat táblából vett Bizonylatkod oszlop), Tranzakcioleiras, Konyvelesdatum, Bizonlyatszam, Tetelsorszam, Idoszakkod, Idoszakkod, Fkviszla_forg.Szamlatukorkod (az Fkviszla_forg táblából vett Szamlatukorkod oszlop), Szamlaoldal, Osszeg, Fkviszla_forg.Bizonylatkod(az Fkviszla_forg táblából vett Bizonylatkod oszlop), Tetelleiras, TJ_tetelsorszam, Kapcsolat, Szamlatukor.Szamlatukorkod (a Szamlatukor táblából vett Szamlatukorkod oszlop), Fkviszla_szam, Szamla_ervkezd, Szamla_ervvege, Szamla_megnevezes, Szamlatipuskod, Gyujtoszint. Két tábla (T1, T2) összekapcsolásának alapesetében rejtetten létrejövı T1-T2 kapcsolat munkatábla tartalmát az 1.22. ábra mutatja. T1 T2 T1-T2 összekapcsolása (Munkatábla 1-es illesztéstípus mellett) A B B C T1.A T1.B T2.B T2.C a1 b9 b1 c3 a3 b1 b1 c3 a3 b1 b2 c2 a4 b2 b2 c2 a4 b2 b3 c5 a7 b1 b1 c3 a7 b1 b4 c1 a8 b1 b1 c3 a8 a9 b1 b9 1.22. ábra: A T1 és a T2 táblák összekapcsolásának alapesetében (1-es illesztéstípus) elıálló munkatábla

ACCESS GYAKORLATOK 17 Mint az az 1.22. ábrán látszik, a munkatábla sorainak képzésében a forrástábláknak csak azon sorai vettek részt, amelyeknek (a T1.B=T2.B kapcsolófeltételt kielégítıen) van párja a másik forrástáblában. Történetesen a T1, és a T2 táblák fehér hátterő soraiból nem képzıdik sor a munkatáblában. Immár azt is elárulhatjuk, hogy az 1.18. ábrán éppen azért szerepel duplán a 384-es számlaszám, amiért az 1.22. ábrán a T2. tábla elsı sora többször is megjelenik a T1-T2 munkatáblában: mert a 384-es számlaszámot az Fkviszla_forg táblában több (esetünkben kettı) forgalomtétel is hivatkozza. Itt az ideje arról is szólni, hogy az T1 és T2 táblák 1.22. ábra szerinti összekapcsolási módja csak az egyik lehetıség. Az Accessben az 1.26. ábrán mutatott háromféle illesztéstípusnak megfelelı összekapcsolási módból választhatunk. Azok közül az 1.22. ábra példája az 1-es illesztéstípusnak felel meg. T1-T2 összekapcsolása 2-es illesztéstípus mellett T1-T2 összekapcsolása 3-as illesztéstípus mellett T1.A T1.B T2.B T2.C T1.A T1.B T2.B T2.C a1 b9 --- --- a3 b1 b1 c3 a3 b1 b1 c3 a4 b2 b2 c2 a4 b2 b2 c2 a7 b1 b1 c3 a7 b1 b1 c3 a8 b1 b1 c3 a8 b1 b1 c3 --- --- b3 c5 a9 b9 --- --- --- --- b4 c1 1.23. ábra: A T1 és a T2 táblák összekapcsolása 2-es, illetve 3-as illesztéstípus esetében A T1 és T2 táblák 2-es illesztéstípusú összekapcsolása (1.23. ábra bal oldala) abban különbözik az 1-estıl, hogy az eredménytábla az a 1.22. ábrán (a munkatáblában) mutatott sorokon felül a T1. tábla azon sorait is tartalmazza, amelyeknek nincs (a T1.B=T2.B kapcsolófeltételt kielégítı) párja a T2-ben (tehát a T1 tábla fehér hátterő sorait is). A munkatábla ilyen soraiban a T2-bıl származó oszlopok üresek (NULL értékőek). Ezen sorokat kiválasztó feltétel lehet pl.: T2.B Is Null). A T1 és T2 táblák 3-as illesztéstípusú összekapcsolása (1.23. ábra jobb oldala) abban különbözik az 1-estıl, hogy az eredménytábla az a 1.22. ábrán (a munkatáblában) mutatott sorokon felül a T2. tábla azon sorait is tartalmazza, amelyeknek nincs (a T1.B=T2.B kapcsolófeltételt kielégítı) párja a T1-ben (tehát a T2 tábla fehér hátterő sorait is). A munkatábla ilyen soraiban a T1-bıl származó oszlopok üresek (NULL értékőek). Ezen sorokat kiválasztó feltétel lehet pl.: T1.A Is Null). Most visszatérünk a 2. feladathoz, és megnézzük hogyan oldható meg ez a feladat, ha a lekérdezı felületre nem vesszük fel (vagy onnan töröljük) a táblák közötti kapcsolatokat. Amikor a lekérdezés definíciójához hozzáadjuk a 1.16. ábra szerinti három táblát, akkor azok az adatbázisdefinícióban adott kapcsolataikkal (lásd az 1.5. ábrát) együtt lesznek a lekérdezésdefiníció részei. Ez azért lényeges, mert minden ilyen kapcsolat egyenértékő egy kapcsolófeltétellel. Ha ezek a kapcsolatok nem lennének jelen a 1.16. ábra szerinti felületen, akkor azokat két további feltétellel kellene pótolni. Ez ki is próbálható, mert az említett kapcsolatokat el lehet távolítani: a jobb egérgombbal a kapcsolatra kattintás után elıugró

18 ACCESS GYAKORLATOK menübıl a Törlés parancsot kell választani. A1.24. ábra mutatja azokat a plusz feltételeket, amelyek a hiányzó kapcsolatokat pótolják. 1.24. ábra: A hiányzó kapcsolatokat pótoló két kapcsolófeltétel Megjegyzés: A Feltétel sorban a táblaneveket és a mezıneveket azért kellett szögletes zárójelek közé tenni (pl. [Bizonylat].[Bizonylatkod]), mert ellenkezıleg ezeket az Access nem adat nevének (nem tábla és nem oszlop nevének), hanem közvetlenül (szöveg típusú) adatértéknek tekintené. A Mezı és a Tábla sorokra ez a szabály nem vonatkozik, mert ott az Access elsıdlegesen mezınevet, kimeneti oszlopnevet, illetve táblanevet (forrásnevet) feltételez. A Mezı sorban csak akkor kell [] jelek közé tenni egy mezı nevét, ha az nem magában áll, hanem egy kifejezés részét képezi, mint például az 1.15. ábra második oszlopában: Left([Fkviszla_szam];1). 3. feladat: Az Fkviszla_forg táblából kérdezze le a hibátlanul könyvelt tételeket; tehát azokat, amelyek utóbb sem javítva, sem törölve nem lettek! Ez a feladat egy lényeges körülményben különbözik az elızı kettıtıl. Az 1. feladat esetében egy Szamlatukor-sort kiválasztó feltétel teljesülése magában a sorban foglalt adatok (Fkviszla_szam, Szamla_ervkezd, Szamla_ervvege) eldönthetı volt. Hasonlóan a 2. feladat esetében egy bizonylat könyvelési idıpontja a Bizonylat-sorban álló Konyvelesdatum értéke. Ezzel szemben az, hogy egy forgalomtétel utóbb törlésre / javításra szorult, csak más tétel(ek)bıl, a ráhivatkozó törlı tétel létezésébıl derülhet ki. Az említett körülmény miatt a lekérdezés egyszerre használja azt a tételt, amelyikrıl el kell döntenie, hogy hibátlan-e, és a törlı tételeket. (Ugyanis abból derül ki a tétel hibátlan volta, hogy nincs ráhivatkozó törlı tétel.) Ez úgy lehetséges, ha az Fkviszla_forg táblát két szerepben is hozzáadjuk a lekérdezés definíciójához. Ekkor az egyik szerep neve azonos a tábla nevével: Fkviszla_forg, a másik szerep neve bedik Fkviszla_forg_1 lesz. A lekérdezés definiálójának el kell döntenie, hogy a tábla melyik szerepe szolgáltatja a törlı tételeket; és melyik azokat a tételeket, amelyekrıl el kell dönteni, hogy töröltek-e vagy sem.

1.25. ábra: A 3. feladat megoldása ACCESS GYAKORLATOK 19 Az 1.25. ábrán a kapcsolat az Fkviszla_forg tábla szerepeit képviselı dobozok egyikéhez a Tetelsorszamnál, a másikához a TJ_tetelsorszámnál tapad, azaz a törölt tételt a TJ_tetelsorszámmal ráhivatkozó (törlı/javító) tételekkel kapcsolja össze. Az is észrevehetı, hogy a kapcsolóvonal Fkviszla_forg_1 felıli vége nyílban végzıdik. Ez a látvány az illesztéstípus 1.26. ábrán látható megválasztásának eredménye. (Az illesztéstípus beállítása is részét képezi a lekérdezés definíciójának.) Az 1.25. ábra olyan szerepkiosztást definiál, amely szerint az Fkviszla_forg_1 szolgáltatja a törlı tételeket, az Fkviszla_ forg pedig azokat azokat a tételeket, amelyekrıl el kell dönteni, hogy töröltek-e vagy sem. 1.26. ábra: A 2. illesztéstípus kiválasztása Itt is igaz a 2. feladat megoldásánál tett azon megállapítás, miszerint több forrás összekapcsolása esetén olyan munkatábla lesz a lekérdezés közvetlen forrása, amely az eredeti források mindegyikének összes oszlopát tartalmazza. Esetünkben ez a munkatábla az Fkviszla_forg tábla oszlopait duplán tartalmazza: egyszer az Fkviszla_forg szerep irányából, egyszer pedig a törlı / javító tételeket szolgáltató Fkviszla_forg_1 szerep irányából. A 2-es illesztéstípus hatása az, hogy az Fkviszla_forg szerep irányából minden tétel megjelenik az említett munkatáblában, a Fkviszla_forg_1 szerep irányából azonban csak azok a tételek, amelyeknek létezik a TJ_tetelsorszámával hivatkozott párja. Az 1.25. ábrán látható lekérdezésdefiníció második oszlopában álló Fkviszla_forg_1.Tetelsorszam Is Null feltétel a munkatáblából éppen azokat az Fkviszla_forg-tételeket választja ki, amelyekhez nem létezik a törlı / javító tétel.

20 ACCESS GYAKORLATOK Itt látszik, hogy a 21. és a 22. sorszámú tételeket utólag (a 25-28. tételek) törülték, illetve javították. 1.27. ábra: A 3. feladat szerinti lekérdezés eredménye A lekérdezés eredményét az 1.27. ábra mutatja. Ebben a 21. és 22. tételsorszámú tételek nincsenek jelen, de nem is kell jelen lenniük, hiszen a 25-28. tételek pont a 21. és 22. sorszámú tételeket törlik, illetve javítják; azaz a 21. és 22. sorszámú tételek hibásan voltak könyvelve. Még egy példa erejéig kitérünk a forrássorok csoportjából aggregált értékek lekérdezésének módjára is. 4. feladat: Számlaosztályonkén kérdezze le egy adott idıszak összes tartozik oldali forgalmát! A kimenet elvárt szerkezetét az 1.28. ábra mutatja. A számlaforgalmat az Fkviszla_forg táblából lehet összegezni. Azok a tételek tartoznak azonos számlaosztályba, amelyek azonos számjeggyel kezdıdı számlaszámra lettek könyvelve. A fıkönyvi számlaszám azonban nincs jelen az Fkviszla_forg táblában, azt a Szamlatukor táblából kell venni. Tehát a (Szamlatukorkoddal összekapcsolt) Fkviszla_forg és Szamlatukor táblák adják a lekérdezés forrását. Számlaosztály Tartozik forgalom 1.28. ábra: A 3. feladat szerinti lekérdezés elvárt kimenete A 4. feladat megoldása az 1.29. ábrán látható. Itt a lekérdezésdefiniáló táblázat abban különbözik az elızı feladatoknál látottaktól, hogy egy Összesítés sor is van benne. Ilyen sor az Összesítés gombbal adható hozzá a táblázathoz (lásd az 1.30. ábrán); és mindig szükség van rá, amikor nem az egyes forrássorokból, hanem a forrássorok csoportjaiból képzett értékeket akarunk megjeleníteni a kimeneten. Az 1.29. ábrán a lekérdezésdefiníció elsı oszlopa a következıkrıl rendelkezik: Megjelenítendı adatot definiál (pipa a Megjelenítés kapcsolóban). A kimenı érték a fıkönyvi számlaszám elsı számjegye és az a Számlaosztály nevő oszlopban jelenik meg a kimeneten (lásd Számlaosztály: Left([Fkviszla_szam];1)). Ez adat (a számlaosztály) egyben a csoportosító ismérv (ezt jelzi a Group By az Összesítés sorban). Tehát a kimeneten megjelenı egy-egy sor a forrássorok olyan csoportjáról készül, amelyekben az Fkviszla_szam elsı jegye azonos.

ACCESS GYAKORLATOK 21 1.29. ábra: A 4. feladat megoldása Összesítés gomb. 1.30. ábra: Az Összesítés sor hozzáadása a lekérdezésdefiniáló táblázathoz A második oszlop a következıkrıl rendelkezik: Megjelenítendı adatot definiál (pipa a Megjelenítés kapcsolóban). A kimenı érték az egy csoportba tartozó tételek Osszeg értékeinek összege, azaz Sum(Osszeg), és az a kimeneten a Tartozik forgalom nevő oszlopban jeleni meg. A harmadik és a negyedik oszlop nem megjelenítendı adatot, hanem szőrési feltételt definiál (nincs pipa a Megjelenítés kapcsolóban, és Where jelzés az Összesítés a sorban). A Where szó azt is jelenti, hogy a szőrési feltétel az eredeti forrássorokra vonatkozik, nem pedig a csoportokra. A harmadik oszlop értelme az Idoszakkod = [Adott idoszak] feltétel, a negyediké pedig a Szamlaoldal = 'T'. A harmadik oszlopban az [Adott idoszak] olyan paraméter neve, amelynek értékét az Access a lekérdezés futtatásakor fogja bekérni a felhasználótól az 1.31. ábra szerinti ablakban. Az Access paraméternek tekinti az olyan adatnevet, amely nem azonos a források (táblák) semelyik mezıjének (oszlopának) nevével.

22 ACCESS GYAKORLATOK A lekérdezés eredménye az 1.32. ábrán látható. 1.31. ábra: Az idıszakparaméter megadása 1.32. ábra: A 4. lekérdezés eredménye

ACCESS GYAKORLATOK 23 2. Feladatok 1. feladat Az alfeladatok a 2.1. ábrán látható négy táblára támaszkodnak. Az említett adatforrások közötti kapcsolatokat a 2.2. ábra mutatja. Táblák értelmezése: TÁRSASÁG: TÁRSASÁG TÖRTÉNET: TULAJDONOS: 2.1. ábra: Négy tábla szerkezete Társaságokat nyilvántartó tábla. A társaságok alapítását, és minden olyan olyan változását, amely a jegyzett tıkéjüket vagy a tulajdonosi összetételüket (a tulajdonosok tıkerészarányát) illeti egy (új) társasági szerzıdésben kell rögzíteni. A TÁRSASÁG TÖRTÉNET tábla sorai lényegében ezeknek a társasági szerzıdéseknek a regisztrálására szolgálnak. A tulajdonosok nyilvántartására szolgáló tábla.

24 TULAJDONI RÉSZ: ACCESS GYAKORLATOK Ennek sorai azt mutatják, hogy adott tulajdonos adott társasági szerzıdés szerint hány százalékban tulajdonosa a társasági szerzıdés tárgyát képezı társaságnak. Azon mezık (oszlopok) értelmezése, amelyeknek a jelentése nem következtethetı ki egyértelmően a nevükbıl: Érvkezd: Egy társasági szerzıdés érvényességének kezdete. Érvvége: Egy társasági szerzıdés érvényességének vége. (A még érvényes sorok érvényességének igazi vége általában ismeretlen. Ilyenkor egy nagyon nagy dátum, 4000.12.31. áll benne.) Tulajdonostípus: Lehetséges értékei T vagy J. T: természetes személy, J: jogi személy. Azonostulajdonos: A Tulajdonoskód szerepneve. Csak olyan társaságoknál van kitöltve, amelyek azonosak valamely tulajdonossal, és ezeknél a társasággal azonos tulajdonos azonosító kódja áll benne. 2.2. ábra: A táblák kapcsolatai 1.1 Kérdezze le azokat a tulajdonosokat, amelyek azonosak valamelyik társasággal! Kimenet: a TULAJDONOS minden oszlopa és a megfelelı Társaságkód. Mely táblát vagy táblákat használja a lekérdezés?: Ha több tábla képezi a lekérdezés adatforrását, akkor a lekérdezés definíciója a táblák között a 2.2.ábrán adott kapcsolatok melyikét tartalmazza, és azt milyen illesztéstípussal

ACCESS GYAKORLATOK 25 1/2/3?): A lekérdezést a 2.3. ábra szerinti őrlapon adja meg! Mezı: Tulajdonoskód Tulajdonos neve Azonos-kft Tábla: TULAJDONOS TULAJDONOS TULAJDONOS Rendezés Megjelenítés: vagy: 2.3. ábra: Őrlap az 1.1 feladathoz Is Not Null 1.2 Kérdezze le azokat a társaságokat, amelyek adott napon tulajdonosai voltak valamelyik másik társaságnak! Az ilyen társaságok minden adata jelenjen meg a kimeneten! A kérdéses napot az Access a lekérdezés futtatásakor kérdezze meg a felhasználótól. Mely táblát vagy táblákat használja a lekérdezés?: A felhasznált táblák 2.2. ábrán adott kapcsolatai közül melyiket kell biztosan törölni a lekérdezés definíciójából? Az elıbbi kapcsolatot miért kell törölni? Hogyan rendelkezik arról, hogy egy társaság akkor is csak egyszer jelenjen meg a kimeneten, ha az adott napon több másik társaságnak is tulajdonosa. TÁRSASÁG, TULAJDONI RÉSZ, TÁRSASÁG TÖRTÉNET A TÁRSASÁG és a TÁRSASÁG TÖRTÉNET tözötti kapcsolatot. Mert az egy olyan feltételt adna a lekérdezés definíciójához, melyet a többi feltétel egyidejő teljesítése mellett csak olyan társaságok elégíthetnék ki, amelyek önmaguk tulajdonosai. (Ilyenek pedig nincsenek.) A Lekérdezés tulajdonságai ablakban Egyedi értékek: Igen beállítással. A lekérdezés definícióját a 2.4. ábra szerinti őrlapon adja meg! Mezı: TÁRSASÁG.* Érvkezd Érvvége Tábla: TÁRSASÁG TÁRSASÁG TÖRTÉNET TÁRSASÁG TÖRTÉNET Rendezés Megjelenítés: <=[Adott nap] >=[Adott nap] vagy: X x 2.4. ábra: Őrlap az 1.2 feladathoz

26 ACCESS GYAKORLATOK 1.3 Oldja meg a 1.2 feladatot olyan változatban, hogy a szükséges táblák minden kapcsolatát törli a lekérdezés definíciójából! A 2.5. ábra szerinti őrlapon adja meg az 1.2-beli megoldás olyan kiegészítését (csak a kiegészítést), amely a kapcsolatok hiányában is mőködik! Kiegészítés: Mezı: Azonos-tulajdonos Szerzıdésszám Tábla: TÁRSASÁG TULAJDONI RÉSZ Rendezés Megjelenítés: vagy: [TULAJDONI RÉSZ]. [Tulajdonoskód] [TÁRSASÁG TÖRTÉNET]. [Szerzıdésszám] 2.5. ábra: Őrlap az 1.3 feladathoz 1.4 Tegyük fel, hogy az 1.2 feladat megoldását Adott napon tulajdonos társaságok névvel elmentette. Annak felhasználásával kérdezze le azokat a társaságokat, amelyek adott napon NEM voltak tulajdonosai semelyik másik társaságnak! Az ilyen társaságok minden adata jelenjen meg a kimeneten! Feltételezze, hogy a 2.6. ábrán adott kapcsolat a lekérdezés definíciójának részét képezi! Melyik illesztési változatot választja a 6. ábrán mutatottak közül?: 2.6. ábra: Illesztési tulajdonságok beállítása az 1.4 feladathoz A lekérdezést a 2.7. ábra szerinti őrlapon adja meg! Mezı: KFT.* Kft-azonosító Tábla: KFT Adott napon tulajdonos kft Rendezés Megjelenítés: vagy: Is Null 2.7. ábra: Őrlap az 1.4 feladathoz

ACCESS GYAKORLATOK 27 1.5 Kérdezze le, hogy adott napon adott névvel rendelkezı tulajdonos mely társaságoknak volt tulajdonosa! Kimenet: Társaságkód és Társaság neve. A kérdéses napot és a szóban forgó tulajdonos nevét az Access a lekérdezés futtatásakor kérdezze meg a felhasználótól. Mely táblát vagy táblákat használja a lekérdezés?: A felhasznált táblák kapcsolatai közül melyiket kell biztosan törölni a lekérdezés definíciójából? Az elıbbi kapcsolatot miért kell törölni? A lekérdezést a 2.8.ábra szerinti őrlapon adja meg! Mezı: Társaságkód Társaság neve Tulajdonos neve Tábla: TÁRSASÁG TÁRSASÁG TULAJDONOS Rendezés Megjelenítés: vagy: Folytatás: Mezı: Érvkezd Érvvége Tábla: TÁRSASÁG TÖRTÉNET TÁRSASÁG TÖRTÉNET Rendezés Megjelenítés: <=[Adott nap] >=[Adott nap] vagy: 2. feladat 2.8. ábra: Őrlap az 1.5 feladathoz [Adott tulajdonosnév] Az alfeladatokat itt is az 1. feladat 2.1. ábráján látható négy táblára támaszkodva kell megoldani. Az említett adatforrások közötti kapcsolatokat szintén az ottani 2.2. ábra mutatja. 2.1 Kérdezze le azokat a tulajdonosokat, amelyek NEM azonosak a TÁRSASÁG táblában nyilvántartott semelyik társasággal! Kimenet: a tulajdonos minden mezıje. (Megjegyzés: Lehet olyan tulajdonos, amely ugyan társaság, de nincs benne a TÁRSASÁG táblában.) Mely táblát vagy táblákat használja a lekérdezés?: Ha több tábla képezi a lekérdezés adatforrását, akkor a lekérdezés definíciója a táblák között a

28 ACCESS GYAKORLATOK 2.2.ábrán adott kapcsolatok melyikét tartalmazza, és azt milyen illesztéstípussal 1-es vagy melyik táblából minden sor?): A lekérdezést a 2.9. ábra szerinti őrlapon adja meg! Mezı: Tulajdonoskód Tulajdonos neve Azonos-kft Tábla: TULAJDONOS TULAJDONOS TULAJDONOS Rendezés Megjelenítés: vagy: 2.9. ábra: Őrlap a 2.1 feladathoz Is Not Null 2.2 Kérdezze le, hogy adott napon kik voltak a tulajdonosai egy adott névvel rendelkezı társaságnak! Kimenet: Tulajdonoskód és Tulajdonos neve. A kérdéses napot és a szóban forgó társaság nevét az Access a lekérdezés futtatásakor kérdezze meg a felhasználótól. Mely táblát vagy táblákat használja a lekérdezés?: A felhasznált táblák kapcsolatai közül melyiket kell biztosan törölni a lekérdezés definíciójából?: A lekérdezést a 2.10. ábra szerinti őrlapon adja meg! Mezı: Tulajdonoskód Tulajdonos neve Kft neve Tábla: TULAJDONOS TULAJDONOS KFT Rendezés Megjelenítés: vagy: Folytatás: Mezı: Érvkezd Érvvége Tábla: KFT TÖRTÉNET KFT TÖRTÉNET Rendezés Megjelenítés: <=[Adott nap] >=[Adott nap] vagy: 2.10. ábra: Őrlap a 2.2 feladathoz [Adott kft-név] 2.3 Kérdezze le azokat a társaságokat, amelyek adott napot megelızıen megszőntek! Kimenet: csak a Társaságkód. A kérdéses napot az Access a lekérdezés futtatásakor kérdezze meg a

ACCESS GYAKORLATOK 29 felhasználótól. Használja ki, hogy egy megszőnt társaság megszőnésének dátuma a hozzátartozó TÁRSASÁG TÖRTÉNET sorokból vett Érvvége értékek maximumával azonos! Mely táblát vagy táblákat használja a lekérdezés?: A lekérdezést a 2.11. ábra szerinti őrlapon adja meg! Mezı: Kft-azonosító Érvvége Tábla: KFT KFT TÖRTÉNET Összesítés: Group By Max Rendezés Megjelenítés: vagy: <=[Adott nap] 2.11. ábra: Őrlap a 2.3 feladathoz 2.4 Definiáljon egy olyan lekérdezést, amelynek a kimenete: Társaságkód, Társaság neve, Alapítás dátuma és a Megszőnés dátuma. A kimeneten csak azok a társaságok jelenjenek meg, amelyek aktuálisan (2010.01.21-én) már megszőntek. Használja ki, hogy egy társaság alapításának dátuma a hozzátartozó TÁRSASÁG TÖRTÉNET sorokból vett Érvkezd értékek minimumával azonos, illetve egy megszőnt társaság megszőnésének dátuma a hozzátartozó TÁRSASÁG TÖRTÉNET sorokból vett Érvvége értékek maximumával azonos. Mely táblát vagy táblákat használja a lekérdezés?: A lekérdezést a 2.12. ábra szerinti őrlapon adja meg! Mezı: Kft-azonosító Kft neve: Kft neve Tábla: KFT KFT Összesítés: Group By Max Rendezés Megjelenítés: vagy: Folytatás: Mezı: Alapítás dátuma:érvkezd Megszőnés dátuma:érvvége Tábla: KFT TÖRTÉNET KFT TÖRTÉNET Összesítés: Min Max Rendezés Megjelenítés: <=#4000.12.31.# vagy: 2.12. ábra: Őrlap a 2.4 feladathoz

30 ACCESS GYAKORLATOK 3. feladat Az alfeladatok az alábbi adatbázisrészletet használják: 2.13. ábra: Felhasználható táblák és a kapcsolataik Megjegyzés: Ha az alfeladatoknál a lekérdezésdefiniáló felületek valamely rovatába nem fér el az oda vonatkozó megoldás szövege, akkor oda csak hivatkozást tegyen, és a megoldást a hivatkozással megjelölve pótlapon adja meg! 3.1 ACCESS-ben kérdezze le azokat a projekteket, amelyek Adott kezdet és Adott vége dátumokkal adott idıszakban legalább egy napon használnak egy adott erıforrást (paraméter: Adott erıforrásnév). Kimenet: Projektkód, Projektnév. A megoldást a 2.14. ábra szerinti felületen adja meg! (Használja ki, hogy a kapcsolati ábra szerinti kapcsolatok mind adottak, méghozzá 1-es illesztési móddal!)

ACCESS GYAKORLATOK 31 2.14. ábra: Lekérdezésdefiniáló felület a 3.1. feladathoz 3.2 Az elızı feladat megoldását milyen feltétellel kell kiegészíteni, ha a kapcsolati ábráról eltávolítja a TEVÉKENYSÉGHEZ RENDELT ERİFORRÁS és az ERİFORRÁS között adott kapcsolatot? 2.15. ábra: Lekérdezésdefiniáló felület a 3.2. feladathoz

32 ACCESS GYAKORLATOK 2.16. ábra: Lekérdezés tulajdonságai ablak A lekérdezés kimenetének finomításához kell-e használni a 16. ábra szerinti ablakot (igen/nem) Igen. Indokolja meg a fenti válaszát! Az Egyedi értékek paramétert Igen-re kell módosítani. Ellenkezıleg az egyes projektek feleslegesen annyiszor jelennek meg a kimeneten, ahány különbözı tevékenységük használja az adott erıforrást az adott idıszakban. 3.3 Kérdezze le, hogy adott projektben (paraméter: Adott projektnév) adott napon (paraméter: Adott nap) mely munkavégzı erıforrások túlterheltek. Kimenet: Erıforráskód, Erıforrás neve, Kapacitás, Terhelés. A megoldást a 2.17. ábra szerinti felületen adja meg! (Használja ki, hogy a lekérdezésben érintett összes tábla összes olyan kapcsolata adott, amely a 2.13. ábrán is látható, méghozzá 1-es illesztési móddal!) Munkavégzı erıforrások a munkaerı vagy az eszközök, a túlterhelés csak ezekre értelmezhetı, az anyagokra nem. A munkavégzı erıforrásokat az Erıforrástípuskód 1-es értéke különbözteti meg. Egy erıforrás egy adott projekten belül és adott napon akkor számít túlterheltnek, ha az adott napon folyamatban lévı tevékenységeknek az erıforrásra vonatkozó együttes erıforrásigénye (=Terhelés) nagyobb, mint az erıforrásnak az adott projekthez rendelt kapacitása. Feltételezheti, hogy a [PROJEKTHEZ RENDELT ERİFORRÁS].Kapacitás mennyiség mindig ugyanolyan mértékegységben adott, mint a [TEVÉKENYSÉGHEZ RENDELT ERİFORRÁS].Erıforrásigény mennyiség.

ACCESS GYAKORLATOK 33 2.17. ábra: Lekérdezésdefiniáló felület a 3.3. feladathoz

34 ACCESS GYAKORLATOK 3.4 Kérdezze le, hogy adott projektben (paraméter: Adott projektnév) az egyes tevékenységeknek mennyi az összesített anyagköltsége! Kimenet: Tevékenységkód, Tevékenység neve, Anyagköltség. A megoldást a 2.18. ábra szerinti felületen adja meg! (Használja ki, hogy a lekérdezésben érintett összes tábla összes olyan kapcsolata adott, amely a 2.13. ábrán is látható, méghozzá 1-es illesztési móddal!) Azok az erıforrások számítanak anyagnak, amelyeknek az Erıforrástípuskódja 2-es. Az anyagoknál a Standard fajlagos költség mutatja az arra a mértékegységre esı anyagköltséget, amelyet a Vetítési mértékegység kódja azonosít. Feltételezheti, hogy az ilyen anyagjellegő erıforrásokból az egyes tevékenységek Erıforrásigény jellemzıje szintén a Vetítési mértékegység kódjával azonosít mértékegységben van adva, azaz egyfajta anyagból az anyagköltség mennyiségarányos része a [Standard fajlagos költség] * Erıforrásigény szorzással áll elı. Ehhez azonban még hozzá kell adni a nem mennyiségarányos Használatonkénti költséget is, azaz adott tevékenységnél egyfajta anyagból a teljes anyagköltség: [Standard fajlagos költség] * Erıforrásigény + [Használatonkénti költség] Azonban egy tevékenységhez többfajta anyagot is felhasználhatnak, és a lekérdezésnek tevékenységenként ezek összes költségét kell meghatározni. 2.18. ábra: Lekérdezésdefiniáló felület a 3.4. feladathoz

4. feladat ACCESS GYAKORLATOK 35 Az alfeladatokat itt is a 3. feladat 2.13. ábráján látható táblákra és kapcsolatokra támaszkodva kell megoldani! 4.1 ACCESS-ben kérdezze le azokat a projekteket, amelyek Adott kezdet és Adott vége dátumokkal adott idıszakban végig használnak egy adott erıforrást (paraméter: Adott erıforrásnév). Kimenet: Projektkód, Projektnév, Tevékenység neve. A megoldást a 2.19. ábra szerinti felületen adja meg! (Használja ki, hogy a kapcsolati ábra szerinti kapcsolatok mind adottak, méghozzá 1-es illesztési móddal!) 2.19. ábra: Lekérdezésdefiniáló felület a 4.1. feladathoz

36 ACCESS GYAKORLATOK 4.2 Az elızı feladat megoldását milyen feltétellel kell kiegészíteni, ha a kapcsolati ábráról eltávolítja a TEVÉKENYSÉG és az PROJEKT között adott kapcsolatot? 2.20. ábra: Lekérdezésdefiniáló felület a 4.2. feladathoz 4.3 Kérdezze le, hogy adott projektben (paraméter: Adott projektnév) az egyes anyagok felhasználásából anyagonként összesen mekkora költség adódott! Kimenet: Anyagkód, Anyag neve, Anyagköltség. A megoldást a 2.21. ábra szerinti felületen adja meg! (Használja ki, hogy a lekérdezésben érintett összes tábla összes olyan kapcsolata adott, amely a 3. feladat 2.13. ábráján is látható, méghozzá 1-es illesztési móddal!) Az anyagok az erıforrások egyik típusát képezik. Azok az erıforrások számítanak anyagnak, amelyeknek az Erıforrástípuskódja 2-es. Az anyagoknál a Standard fajlagos költség mutatja az arra a mértékegységre esı anyagköltséget, amelyet a Vetítési mértékegység kódja azonosít. Feltételezheti, hogy az ilyen anyagjellegő erıforrásokból az egyes tevékenységek Erıforrásigény jellemzıje szintén a Vetítési mértékegység kódjával azonosít mértékegységben van adva, azaz egyfajta anyagból egy bizonyos tevékenységnél való felhasználás miatt adódó anyagköltség mennyiségarányos része a [Standard fajlagos költség] * Erıforrásigény szorzással áll elı. Ehhez azonban még hozzá kell adni a nem mennyiségarányos Használatonkénti költséget is, azaz adott tevékenységnél egyfajta anyagból a teljes anyagköltség: [Standard fajlagos költség] * Erıforrásigény + [Használatonkénti költség] Azonban egy anyagot több tevékenység végrehajtása során is felhasználhatnak, és a lekérdezésnek anyagonként az ezekbıl adódó összes költséget kell meghatározni. Mely táblákat érinti ez a lekérdezés és miért? Tábla Indoklás PROJEKT Mert a projektet a neve alapján kell kiválasztani, és a projektnév csak ebben a táblában szerepel. TEVÉKENYSÉG Mert az anyagok (erıforrások) tevékenységenkénti felhasználása csak ennek segítségével kapcsolható a megfelelı projekthez.

ACCESS GYAKORLATOK 37 ERİFORRÁS TEVÉKENYSÉGHEZ RENDELT ERİFORRÁS Mert innen állapítható meg, hogy az erıforrás milyen típusú, és innen vehetık az Anyagkód, Anyag neve a Standard fajlagos költség és a Használatonkénti költség adatok. Mert innen vehetı az Erıforrásigény adat. 2.21. ábra: Lekérdezésdefiniáló felület a 4.3. feladathoz 4.4 Kérdezze le, hogy adott projektben (paraméter: Adott projektnév) az egyes tevékenységeknek mennyi az összesített mőveleti költsége! Kimenet: Tevékenységkód, Tevékenység neve, Mőveleti költség. A megoldást a 2.22. ábra szerinti felületen adja meg! (Használja ki, hogy a lekérdezésben érintett összes tábla összes olyan kapcsolata adott, amely a 3. feladat 2.13. ábráján is látható, méghozzá 1-es illesztési móddal!)

38 ACCESS GYAKORLATOK Egy tevékenység mőveleti költségei abból adódnak, hogy a tevékenység valamilyen munkavégzı erıforrásokat (munkaerıt vagy az eszközöket) használ. Azok az erıforrások számítanak munkavégzı erıforrás, amelyeknek az Erıforrástípuskódja 1-es. Az ilyen erıforrásoknál a Standard fajlagos költség és a Túlmunka fajlagos költsége mutatja az arra az idıegységre esı erıforrásköltséget normál munkaidıben, illetve túlórában, amelyet a Vetítési mértékegység kódja azonosít. Feltételezheti, hogy az ilyen erıforrásokból az egyes tevékenységek Erıforrásigény, illetve Erıforrásigény túlmunkában jellemzıi szintén a Vetítési mértékegység kódjával azonosít mértékegységben vannak adva, azaz egyfajta anyagból a mőveleti költség idıarányos része a [Standard fajlagos költség] * Erıforrásigény + [Túlmunka fajlagos költsége] * [Erıforrásigény túlmunkában] képlettel áll elı. Ehhez azonban még hozzá kell adni a nem idıarányos Használatonkénti költséget is, azaz adott tevékenységnél egyfajta erıforrásból a teljes mőveleti költség: [Standard fajlagos költség] * Erıforrásigény + [Túlmunka fajlagos költsége] * [Erıforrásigény túlmunkában] + [Használatonkénti költség] Azonban egy tevékenységhez többfajta erıforrás is felhasználhatnak, és a lekérdezésnek tevékenységenként ezek összes költségét kell meghatározni. 2.22. ábra: Lekérdezésdefiniáló felület a 4.4. feladathoz

5. feladat ACCESS GYAKORLATOK 39 Az alfeladatok az alábbi kapcsolatokat és táblákat tartalmazó adatbázisrészletet használják: 2.23. ábra: Táblakapcsolatok Táblák értelmezése: Bizonylat: 2.24. ábra: Táblák szerkezete A könyvelt forgalomtételek forrásbizonylatait tartalmazó táblázat. Fkviszla_forg: A könyvelt fıkönyvi számla-forgalomtételeket tartalmazó táblázat. Több mérlegidıszak tételeit tartalmazza (lásd Idoszakkod).

40 ACCESS GYAKORLATOK Szamlatukor: Szamlatipus Gyujtoleiro: Mezık (oszlopok) értelmezése: Szamlatukorkod Fkviszla_szam: Szamla_ervkezd: A használható fıkönyvi számlaszámokat tartalmazó (és definiáló) történeti táblázat. A történetiség abban áll, hogy nemcsak az aktuálisan használható számlaszámokat mutatja, hanem azokat is, amelyek ma már érvénytelenek, de pl. 5 évvel ezelıtt érvényesek voltak. A 2.23. ábrán egy Szamlatukor_1 nevő doboz is szerepel. Ez nem egy további táblát jelent, hanem csak a Szamlatukor tábla egy plusz szerepét képviseli. (Ugyanis a Szamlatukor tábla két szerepben is fölérendeltje a Gyujtoleiro táblának.) A lehetséges számlatípusokat tartalmazó táblázat. Alaphelyzetben két sora van: egyik az eszköz jellegő, a másik pedig a forrás jellegő számlatípust képviseli. Azt leíró szabályokat tárol, hogy milyen győjtıszámlákra mely alszámlákról kell a forgalmat győjteni (pontosabban egyenlegezni). Ez is történeti táblázat: Nemcsak az aktuálisan érvényes szabályokat mutatja. A Szamlatukor-sor azonosítója Fıkönyvi számlaszám Számladefinició (Szamlatukor-sor) érvényességének kezdete. Szamla_ervvege: Számladefinició (Szamlatukor-sor) érvényességének vége. (A még érvényes sorok érvényességének igazi vége általában ismeretlen. Ilyenkor egy nagyon nagy dátum, 4000.12.31. áll benne.) Szamla_megnevezes: Fıkönyvi számla neve (az adott érvényességgel) Szamlatipuskod: Gyujtoszint: Bizonylatkod: Konyvelesdatum: Tetelsorszam: Idoszakkod: Szamlaoldal: Osszeg: TJ_tetelsorszam: Kapcsolat: Gyujtoszla_tkod: A Szamlatipus-sor azonosítója Igen/Nem, Igaz/Hamis kapcsoló a Szamlatukor-sorban. A kikapcsolt állapota könyvelési számlaszámot jelez, a bekapcsolt állapota viszont győjtı számlaszámot. A bizonylat adatbázison belüli azonosítója. A bizonylat könyvelési dátuma, egyben a bizonylatról keletkezett összes forgalomtétel könyvelési dátuma. A könyvelt fıkönyvi számla-forgalomtétel azonosítója. Annak a mérlegidıszaknak a kódja, amelyre a forgalomtétel könyvelve lett. Értékei: T = tartozik; K = követel. Könyvelt forgalomérték (forintban) Csak törlı vagy javító tételben van kitöltve, és az azzal törölt vagy javított forgalomtétel azonosítóját tartalmazza. Mint az Fkviszla_forg tábla egyik oszlopa szintén csak törlı vagy javító tételben van kitöltve. Értékei: T = törlés; J = javítás. A győjtıszámlaszámot tartalmazó Szamlatukor-sor azonosítója.

Alszamla_tkod: ACCESS GYAKORLATOK 41 Az alszámlaszámot tartalmazó Szamlatukor-sor azonosítója. Gyujtohoz_ervkezd: A Gyujtoleiro-sorban adott szabály érvényességének kezdete Gyujtohoz_ervvege: A Gyujtoleiro-sorban adott szabály érvényességének vége. (A még érvényes sorok érvényességének igazi vége általában ismeretlen. Ilyenkor egy nagyon nagy dátum, 4000.12.31. áll benne.) Tartozik_elojel Az adott számlatípus tartozik oldali forgalmának elıjele. A pozitív elıjel: 1, a negatív elıjel: 1. (A követel oldal elıjele ezzel ellentétes: -Tartozik_elojel.) 5.1 ACCESS-ben le kell kérdezni egy adott idıszak számlaosztályonként összesített tartozik forgalom étékeit! (Az adott idıszak egy futási idıben megadható paraméter.) Kimenet: Számlaosztály Tartozik forgalom Mely táblákat használja fel a lekérdezés forrásaként?: A lekérdezés definíciójának részeként felhasználja-e táblák között a 23. ábra szerint adott kapcsolat(ok)at (Igen/Nem)?: Ha igen, akkor milyen illesztéstípussal (1/2/3)?: Az alábbi rácsban adja meg a lekérdezés definícióját! (A lapméret miatt a rács több sorba tördelve a következı oldalon is folytatódik. Az elıbbi kérdésekre adott válaszoktól is függ, hogy mindegyik oszlopot fel kell-e használni.) Mezı: Tábla: Összesítés: Rendezés: Megjelenés:

42 Folytatás: ACCESS GYAKORLATOK Mezı: Tábla: Összesítés: Rendezés: Megjelenés: Mezı: Tábla: Összesítés: Rendezés: Megjelenés: 5.2 ACCESS-ben kérdezze le azokat a számlaosztályokat, amelyekhez találhatók adott idıszaki forgalomtételek az Fkviszla_forg táblában! (Az adott idıszak egy futási idıben megadható paraméter.) Kimenet: Számlaosztály Számlatípuskód (Feltételezheti, hogy egy adott számlaosztályba tartozó minden fıkönyvi számla számlatípuskódja azonos.) Mely táblákat használja fel a lekérdezés forrásaként?: A lekérdezés definíciójának részeként felhasználja-e táblák között a 23. ábra szerint adott kapcsolat(ok)at (Igen/Nem)?: Ha igen, akkor milyen illesztéstípussal (1/2/3)?: Az alábbi rácsban adja meg a lekérdezés definícióját! (A lapméret miatt a rács több sorba van tördelve. Az elıbbi kérdésekre adott válaszoktól is függ, hogy mindegyik oszlopot fel kell-e használni.)

ACCESS GYAKORLATOK 43 Mezı: Tábla: Összesítés: Rendezés: Megjelenés: Mezı: Tábla: Összesítés: Rendezés: Megjelenés: 5.3 Tegyük fel, hogy az 5.1. lekérdezést T névvel, az 5.2. lekérdezést pedig L névvel mentette el; továbbá elkészítette az 5.1. lekérdezésnek azt a párját, amely egy adott idıszak számlaosztályonként összesített követel forgalom étékeit adja vissza, és ezt K névvel mentette el. A felsoroltak felhasználásával állítsa elı az adott idıszaki számlaosztályonkénti egyenlegeket! Kimenet: Számlaosztály Egyenleg A lekérdezései forrásait és a köztük fennálló kapcsolatokat a 2.25. ábra mutatja. Mind az L-T kapcsolat, mind az L-K kapcsolat illesztéstípusa 2-es. (Az említettekbıl az L-T kapcsolat illesztési tulajdonságait mutató ablak is látszik a 2.26. ábrán.) 2.25. ábra

44 ACCESS GYAKORLATOK 2.26. ábra Elsı közelítésben: Egyenleg = ([T].[Tartozik forgalom] [K].[Követel forgalom]) * [Tartozik_elojel], ahol a Tartozik forgalom is és a Követel forgalom is ugyanazon Számlaosztály forgalma, továbbá az alkalmazandó Tartozik_elojel értéket pedig a közös Számlaosztályhoz tartozó Szamlatipuskod határozza meg. Ez a képlet azonban csak akkor mőködik korrektül, ha a T- ben és a K-ban ugyanazok a számlaosztályok vannak jelen. Ez azonban nem igaz, hiszen lehet olyan számlaosztály, amelyeknek csak tartozik forgalma van, ezért az csak a T-ben van jelen; hasonlóan lehet olyan számlaosztály, amelynek csak követel forgalma van, ezért az csak a K- ban van jelen. Tehát a T és a K források közvetlen összekapcsolása nem járható, mert ebben a kapcsolatban csak olyan számlaosztályok szerepelnének, amelyeknek mind tartozik, mind követel forgalommal rendelkeznek. Pont ezért van szükség az L forrásra, mert az az összes olyan számlaosztályt tartalmazza, amelynek volt valamilyen forgalma az adott idıszakban. Így, ha a kimeneti Számlaosztály értéket az L-bıl vesszük, akkor a kimenet az olyan számlaosztályokat is tartalmazza, amelyek csak egyik oldali forgalomra tettek szert a kérdéses idıszakban. Ezeknél a számlaosztályoknál azonban még mindig gond, hogy esetükben a fenti képlet az alábbi kezelhetetlen (kiszámíthatatlan) alakban realizálódik: Egyenleg = ([T].[Tartozik forgalom] Null) * [Tartozik_elojel] = Null (azaz üres) Egyenleg = (Null [K].[Követel forgalom]) * [Tartozik_elojel] = Null (azaz üres) Ennek kiköszöbölésére el kell érni, hogy ilyen esetekben a Null (üres érték) 0 számértékre cserélıdjön le. Ilyen célra jól alkalmazható az Access következı két függvénye: IsNull(mezı): Igazat ad vissza, ha a mezı üres, hamisat különben. IIf(feltétel; igaz ági kimenet; hamis ági kimenet): Az igaz ági kimenet adja vissza, ha a feltétel igaz; különben a hamis ági kimenet adja vissza. Példa a fenti két függvény kombinált alkalmazására: IIf(IsNull([mezı]);0;[mezı]) A fenti kifejezés 0 értéket ad vissza, ha a mezı üres, egyébként a mezı értékét adja vissza. A következı rácsban adja meg a lekérdezés definícióját! (A lapméret miatt a rács több sorba van tördelve.)