180 likes | 341 Views
BME VBK KROMATOGRÁFIÁS SZAKANALITIKUS KÉPZÉS INFORMATIKA (SZÁMÍTÁSTECHNIKA) 2011. dec. 2. Access „elmaradás” - a Beszall_forg lekédezés elkészítése: Beszerzések a kiemelt beszállítóktól egy adott időszakban. A Visual Basic for Excel alapjai. Kapcsolatok az Access táblák között.
E N D
BME VBK KROMATOGRÁFIÁS SZAKANALITIKUS KÉPZÉS INFORMATIKA (SZÁMÍTÁSTECHNIKA) 2011. dec. 2. • Access „elmaradás” - a Beszall_forg lekédezés elkészítése: • Beszerzések a kiemelt beszállítóktól egy adott időszakban • A Visual Basic for Excel alapjai
Kapcsolatok az Access táblák között APartner mező fogja jelentenia két tábla között a kapcsolatot
Kapcsolatok az Access táblák között Lekérdezés tervező nézetben Jelentés Lekérdezés: kezd=2005.7.1. veg=2005.9.30.
1.HF 5. feladata Jelentés minta, ahonnan csak a <Saját Név> hiányzik… Tekintse meg az Access fájl Beszall_forg (egyes beszállítókkal adott időszakban lebonyolított üzletek pénzforgalmát kimutató) lekérdezését, és készítsen hozzá olyan jelentést, amelyen szerepel a saját neve, valamint az adott időszak kezdete és vége. (2 pont)
A (Visual Basic for Excel) programozás alapjai • a program az utasításokat sorban hajtja végre, kivéve….(ld. később) • pontosan olyan, mintha egy könyvet olvasnánk, amiben le van írva, hogy sorjában mit kell tennünk éppen most, beleértve, hogy hova lapozzunk a következő teendő elolvasásához • kicsit kínai, de meg lehet szokni • sokféle kínai van, de ha egyet ismer az ember, az nagyon segít a többi fel/megismerésében • a programozás filozófiáját érdemes megtanulni ? VBE = VBA ? Típus, értékadás, beolvasás, kiiratás, If -Then , If - Then - ElseGo To, (Do – Loop); Programírás blokkdiagramról Amivel ma foglalkozunk:
Start Kiír: „x” „x köbe” x=2 kiír: x, x3 x=x+1 x<=8 ? igen nem Stop Egy „programocska” A blokkdiagram: A VBA program: Amit a program kiír
A VBA program felépítése, működése Sub <neve>( ) <esetleg deklarációk> <utasítások> End Sub A deklaráció (ami ebben a példában nincs) megadja a változók típusát: Ha pl. a és b számok, és értékük 1 ill. 2, akkor a+b kifejezés értéke 3 lesz. A működéssel való ismerkedéshez töltse le az F_dec2.xlsm fájlt! De ha a és b típusa string, és értékük „1” ill. „2”, akkor a+b értéke „12” lesz.
A számítógép szempontjából fontos a változó típusa a műveletek miatt • egész : Integer tört: Single, Double szöveg: String • pl. ha x egészés x=5/2, akkor 2 leszxértéke • pl. ha y törtés y=5/2, akkor 2.5 leszyértéke • de pl. „nótás”/2 nem lesz „félnótás”… Változók • A program az adatokat változókban tárolja (nevükkel egy „rekeszt” jelölünk, amibe számokat/betűket írunk) • pl. ha a=2, akkor x=a^3-15=-7 • vagy, pl. ha b=8, akkor y=3*b/2=12 • a számítógép az a, b,vagy bármely másváltozót mindig az értékével helyettesíti • akkor is, ha nem adtunk neki értéket, csak akkor nem tudjuk, milyen értékkel…
Műveletek • Matematikai alapműveletek • x=1+2 • y=18-2*x • x=y/24 • String műveletek • ha s=„osztogat”, akkor • s=„f”+s • után s=„fosztogat” • Kiiratás (munkalapra) • cells(1,1)=„Sziasztok!!” • Adatbeolvasás cellából • a=cells(1,1) • Adatbeolvasás billentyűzetről • x=InputBox(”x?”) Adatforgalom
megad: X , kiír: X igen X páros ? Y = X*X nem kiír: Y IF <log.kif.> THEN<utasítás> Kiírás:(2,4);(-4,16 );(3,16 ); (–1,16 ) IF<log.kif.> THEN <ut.1>ELSE<ut.2> Kiírás:(2,4 );(-4,16 );(3,11 );(-1,7 ) Afeltételesen végrehajtandó utasításés afeltételes utasítás Az X értékek (mindkét esetben): 2 , -4 , 3 , -1 megad: X , kiír: X igen X páros ? Y = X*X nem Y = X + 8 kiír: Y
elől tesztelő ciklus Hurok programozása start start megad: n k=1 megad: n k=1 nem k<=n ? vége megad: NEV, Z1 , Z2 igen megad: NEV, Z1 , Z2 ZH=(Z1+Z2)/2 kiír: NEV , ZH ZH=(Z1+Z2)/2 kiír: NEV , ZH k=k+1 igen k<=n ? k=k+1 nem vége Példa: két ZH átlagának kiszámítása n hallgató esetén. • hátul tesztelő ciklus Melyiknél mi történik, ha n=0 ?
start megad: n k=1 megad: NEV, Z1 , Z2 ZH=(Z1+Z2)/2 kiír: NEV , ZH k=k+1 igen k<=n ? nem vége Hurok programozása Példa: két ZH átlagának kiszámítása n hallgató esetén. Do - Loop Whileciklus Visual Basic program részlet n=InputBox(“n=?”): k=1 Do NEV=InputBox(“NEV=?”) Z1=InputBox(“Z1=?”) Z2=InputBox(“Z2=?”) ZH=(Z1+Z2)/2 : Cells(k,1)=NEV Cells(k,2)=ZH : k=k+1 LoopWhile k<=n • hátul tesztelő ciklus
start megad: n k=1 megad: NEV, Z1 , Z2 ZH=(Z1+Z2)/2 kiír: NEV , ZH k=k+1 nem k > n ? igen vége Hurok programozása Példa: két ZH átlagának kiszámítása n hallgató esetén. Do - Loop Untilciklus Visual Basic program részlet n=InputBox(“n=?”): k=1 Do NEV=InputBox(“NEV=?”) Z1=InputBox(“Z1=?”) Z2=InputBox(“Z2=?”) ZH=(Z1+Z2)/2 : Cells(k,1)=NEV Cells(k,2)=ZH : k=k+1 LoopUntil k>n • hátul tesztelő ciklus
elől tesztelő ciklus start megad: n k=1 nem vége k<=n ? igen megad: NEV, Z1 , Z2 ZH=(Z1+Z2)/2 kiír: NEV , ZH k=k+1 Hurok programozása Példa: két ZH átlagának kiszámítása n hallgató esetén. Do While - Loopciklus Visual Basic program részlet n=InputBox(“n=?”): k=1 DoWhilek<=n NEV=InputBox(“NEV=?”) Z1=InputBox(“Z1=?”) Z2=InputBox(“Z2=?”) ZH=(Z1+Z2)/2 : Cells(k,1)=NEV Cells(k,2)=ZH : k=k+1 Loop
elől tesztelő ciklus start megad: n k=1 igen vége k > n ? nem megad: NEV, Z1 , Z2 ZH=(Z1+Z2)/2 kiír: NEV , ZH k=k+1 Hurok programozása Példa: két ZH átlagának kiszámítása n hallgató esetén. Do Until - Loopciklus Visual Basic program részlet n=InputBox(“n=?”): k=1 DoUntilk>n NEV=InputBox(“NEV=?”) Z1=InputBox(“Z1=?”) Z2=InputBox(“Z2=?”) ZH=(Z1+Z2)/2 : Cells(k,1)=NEV Cells(k,2)=ZH : k=k+1 Loop
VBA összefoglaló Változók típusai, kifejezések, értékadás, feltételes utasítás Hurok programozása Néhány alaptípus: Integer(%) Double(#) Single(!) String($) Boolean Date Típus deklarálása NEM kötelező! Alapműveletek:+ - * / \ ^ (aritmetikai) And Or Not (logikai) Reláció jelek: = < > <= >= <> Aritmetikai kifejezés: a*a*a*a - 81 Logikai kifejezés: fa*fm<0 Értékadás: változó = kifejezés Pl: fa = a^4 - 81 Egy feltételes utasítás: If fa * fm < 0 Then b = m: fb = fm Else a = m: fa = fm End If k=1: s=0 Do While k<6 s=s+k k=k+1 Loop k=1: s=0 Do Until k>=6 s=s+k k=k+1 Loop k=1: s=0 Do s=s+k k=k+1 Loop While k<6 k=1: s=0 Do s=s+k k=k+1 Loop Until k>=6 Fenti példákban a hurokból való kilépéskor k értéke 6 s értéke 1+2+3+4+5=15 (mindegyik hurok-típusnál..)
2.HF Az alábbi táblázatban látható kiírások a hiba és az x input adatok 0,000001 ill. -2 értékeinek felelnek meg. A fenti táblázatban látható kiírások a hiba és az x input adatok 0,000001 ill. -1 értékeinek felelnek meg. 1. Készítsen Hurok1 nevű VBA programot az itt megadott blokkdiagram alapján. A programban használt összes változót deklarálja, a beolvasások InputBox-szal történjenek, a „hurok” leírásához If-Then és GoTo utasításokat használjon. A programban az „m=0” karakterlánc kiírása a MsgBox(”m=0”) utasítással, a többi kiiratás az alábbi táblázatok szerint, egy-egy munkalap celláiba történjék. 2. Készítsen másolatot a Hurok1 programról, nevezze át Hurok2-re majd írja át úgy, hogy a „hurok” leírásához Do – Loop While utasítást használjon. A programot egészítse ki a Cells(1,3)= ”Hurok2” utasítással, valamint a saját nevének a D1 cellába való kiiratásával. Elküldendő dec. 14-ig: <Sajatnev>.xlsm (vagy xls) fájl a kollarne@mail.bme.hu címre