ivica kartelo - visual basic baze podataka

Upload: maja-rakic

Post on 16-Oct-2015

90 views

Category:

Documents


11 download

TRANSCRIPT

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    1/180

    IIIvvviiicccaaaKKKaaarrrttteeelllooo

    VViissuuaallBBaassiiccbbaazzee

    ppooddaattaakkaaza 8. razred osnovne kole

    KKKOOOLLLAAAEEE---999222SSSPPPLLLIIITTTSSSpppllliiittt222000000222...

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    2/180

    2

    Mojoj dragoj majci i mom dragom ocu!

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    3/180

    3

    Autor:Ivica Kartelo, dipl. ing.

    Urednik:Ivica Kartelo

    Naslov:

    Visual Basic baze podatakaNakladnik:kola E-92 d.o.o.

    Fax/Tel.: 021 569-777, 021 569-333, E-mail: [email protected]

    web: http://www.e92.hrZa nakladnika:

    Tisak:

    Dalmacija papir Split

    Ivica Kartelo

    kod nakladnika.Ivica Kartelo

    I izdanje/Naklada: 500 kom.Split, srpanj 2002.

    Sva imena firmi, osoba, proizvoda i usluga koja se pojavljuju u knjizi i uprimjerima koji prate knjigu na Internetu su izmiljena.Autor i Nakladnik ne snose odgovornost za posljedice koritenja ove knjige, niti knjigu, tako i na pohranjene datoteke na Internetu.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    4/180

    4

    ISBN 953 - 6245 - 14 - 4

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    5/180

    5

    UVOD........................................................................................................................... ............... - 1 -

    Ivamar.pdv..................................................................................................................... ................- 1 -ivamar.mdb..................................................................................................................... ...............- 1 -

    LEKCIJA 1...................................................................................................................... ........... - 2 -

    VISUAL BASIC APLIKACIJA....................................................................................................... - 2 -Ivamar.vbp.......................................................................................................................... - 2 -

    LEKCIJA 2................................................................................................................................. - 3 -

    MICROSOFT ACCESS BAZA PODATAKA..................................................................................... - 3 -ivamar.mdb......................................................................................................................... - 3 -

    Gotova baza na Internetu...............................................................................................................- 3 -Podaci o bazi ivamar.mdb ....................................................................................................... ...... - 3 -Sve tablice i njihove relacije..........................................................................................................- 3 -Tablica 'Administracija'.................................................................................................................- 4 -Tablica 'Knjige'..............................................................................................................................- 4 -Tablica 'Kupci'...............................................................................................................................- 5 -Tablica 'StavkeNarudzbe' ....................................................................................................... ....... - 5 -

    Unos podataka u tablice..................................................................................................... - 5 -Unos podataka u tablicu 'Administracija'.......................................................................................- 5 -

    Unos podataka u tablicu 'Kupci' ................................................................................................ .... - 6 -Unos podataka u tablicu 'Knjige' ............................................................................................... .... - 6 -Unos podataka u tablicu 'StavkeNarudzbi' .................................................................................... - 6 -

    LEKCIJA 3................................................................................................................................. - 7 -

    VEZA IVAMAR.VBP IVAMAR.MDB.......................................................................................... - 7 -Microsoft Access i Jet ......................................................................................................... .......... - 7 -Data control, DAO i ADO.............................................................................................................- 8 -Dodavanje nove forme projektu .................................................................................................. .. - 8 -Dodavanje kontrola na formu frmAdministrator ......................................................................... - 11 -Proirivanje izbornika Ivamar-a ................................................................................................ .. - 14 -

    .................................................................- 16 - .....................................................................................- 17 -

    Kako radi kontrola Data .................................................................................................. - 18 -Povezivanje forme frmAdministrators tablicom Administracijau bazi ivamar.mdb-18 -

    LEKCIJA 4............................................................................................................................... - 24 -

    FORMA 'LOGIN' ...................................................................................................................... - 24 -Nova forma..................................................................................................................................- 24 -Dodavanje kontrola ............................................................................................................. ........ - 25 - .............................................................................................- 28 -Kreiranje standardnog modula.....................................................................................................- 30 -

    Deklariranje globalnih varijabli u sekciji General Declarations standardnog modula.................- 31 -

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    6/180

    6

    LEKCIJA 5 ............................................................................................................................... - 33 -

    PISANJE KDA ZA FORMU LOGIN ............................................................................................ - 33 -Dodavanje kda gumbu Cancel .................................................................................................. - 33 -Dodavanje kda gumbu OK.............................................................. .......................................... - 34 -Testiranje forme Login ne autorizirani korisnik....................................................................... - 37 -Testiranje forme Login autorizirani korisnik je zaboravio zaporku ......................................... - 38 -

    Testiranje forme Login autorizirani korisnik ........................................................................... - 39 -

    ............................................................................ - 40 -

    LEKCIJA 6 ............................................................................................................................... - 42 -

    PROMJENE NA FORMI ADMINISTRATOR .................................................................................. - 42 -Provjerite svojstva od forme Administrator ................................................................................ - 47 -

    LEKCIJA 7 ............................................................................................................................... - 48 -

    FORMA ADMINISTRATOR KDIRANJE .................................................................................. - 48 - .................................................... - 48 -

    ............................................ - 48 -

    ............................................................ - 49 -

    ............................................................... - 49 -

    .................................................... - 52 - .............................................. - 53 -

    ........................................................... - 53 - ...................................................... - 54 -

    ........................................................... - 55 -

    ............................................................. - 58 -

    ........................................................ - 58 -

    LEKCIJA 8 ............................................................................................................................... - 60 -

    FORMA KNJIGE....................................................................................................................... - 60 -Dodavanje kontrola formi Knjige ............................................................................................... - 60 -

    .................................. - 62 -Provjerite svojstva od forme Knjige............................................................................................ - 65 -

    LEKCIJA 9 ............................................................................................................................... - 67 -

    KNJIGE - KDIRANJE .............................................................................................................. - 67 -

    ................................................................ - 67 -

    ........................................................ - 67 - ............................................................ - 67 -

    ............................................................... - 67 - ....................................................... - 68 -

    ........................................................... - 69 -

    ...................................................... - 69 -

    ........................................................... - 69 -

    ............................................................. - 70 - ........................................................ - 71 -

    .............................................................................. - 71 -

    LEKCIJA 10 ............................................................................................................................. - 74 -

    FORMA KUPCI ........................................................................................................................ - 74 -Dodajmo formu frmKupci ......................................................................................................... . - 74 -Izgradnja forme Kupci .......................................................................................................... ...... - 74 -

    KODIRANJE FORME KUPCI ...................................................................................................... - 81 -

    ................................................................. - 81 -

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    7/180

    7

    .........................................................- 82 - ............................................................- 82 - ................................................................- 82 - ............................................................- 83 - .....................................................- 84 - .................................................- 84 - ..........................................................- 84 -

    ...........................................- 84 -

    .....................................................- 85 - ............................................................- 85 -

    .......................................................- 86 -

    ...........................................................- 86 -

    ..............................................................- 87 -

    ........................................................- 87 -Kodiranje procedure mnuKupci_Click() ..................................................................................... - 88 -

    LEKCIJA 11............................................................................................................................. - 89 -

    FORMA 'STAVKENARUDZBE' .................................................................................................. - 89 -

    Kreiranje forme StavkeNarudzbe ................................................................................................ - 89 -Dodavanje kontrola formi StavkeNarudzbe.................................................................................- 89 -Svojstva kontrola.........................................................................................................................- 92 -

    KODIRANJE FRMSTAVKENARUDZBE ...................................................................................... - 97 -

    .................................................- 97 -

    .........................................- 97 -

    ............................................................- 97 - ..............................................................- 98 -mnuStavkeNarudzbe_Click() ...................................................................................................... - 98 -

    LEKCIJA 12............................................................................................................................. - 99 -

    S .............................................................................................. - 99 -Micrososft Access baza podataka................................................................................................- 99 -Forma Login..............................................................................................................................- 100 -Naredbe izbornika Zaposlenici.................................................................................................. - 100 -Forma Administrator ............................................................................................................ ..... - 101 -Forma Knjige.............................................................................................................................- 101 -Forma Kupci..............................................................................................................................- 102 -Forma StavkeNarudzbe ........................................................................................................... .. - 103 -Sljedi... ...................................................................................................................... ................ - 103 -

    LEKCIJA 13........................................................................................................................... - 104 -

    POVRATAK FORMI GLAVNIOBRAZAC ................................................................................... - 104 -

    Ugradnja gumba 'Ovo kupujem' ................................................................................................ - 104 -Dodavanje novog kda gumbu cmdIzracunaj............................................................................- 105 -Kreiranje forme PitanjaKupcu...................................................................................................- 106 -Dodavanje kontrola formi PitanjaKupcu...................................................................................- 106 -Kdiranje forme PitanjaKupcu..................................................................................................- 109 -

    LEKCIJA 14........................................................................................................................... - 115 -

    FORMA TRAZIKUPCA........................................................................................................... - 115 -Kdiranje forme TraziKupca.....................................................................................................- 118 -

    LEKCIJA 15........................................................................................................................... - 122 -

    FORMA NOVIKUPAC ............................................................................................................ - 122 -Kodiranje forme NoviKupac ..................................................................................................... - 129 -

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    8/180

    8

    to dalje... ................................................................................................................... .............. - 132 -

    LEKCIJA 16 ........................................................................................................................... - 133 -

    P ........................................................................................................... - 133 -Dodavanje dvije kontrole Data formi GlavniObrazac ............................................................... - 133 -Kreiranje subprocedure PunjenjeListBox ................................................................................. - 134 -Promjene u proceduri Form_Load() forme GlavniObrazac ...................................................... - 137 -

    Dodavanje globalne varijable za odabir boje ............................................................................ - 138 -Globalna zamjena m_lngBojaPozadine s g_lngBojaPozadine.................................................. - 138 -Upis kda u proceduru Load..................................................................................................... - 139 -

    ........................................ - 140 -Promjene varijabli u formi frmGlavniObrazac.......................................................................... - 140 -Kreiranje funkcije CijenePronadji............................................................................................. - 141 -Promijene u proceduri cmdIzracunaj_Click................................... ........................................... - 144 -Promjene kda cmdPonisti ....................................................................................................... - 151 -

    LEKCIJA 17 ........................................................................................................................... - 153 -

    U ....................................................................................................... - 153 -

    Promjene vrijednosti svojstva Tag od chkFormatKnjige .............................................. ............ - 153 -Kreiranje funkcije IDknjigePronadji....................... .................................................................. - 153 -Kreiranje subprocedure AzuriranjeStavki................................................................................. - 155 -Promjene kda cmdOvoKupujem............................................................................................. - 160 -

    LEKCIJA 18 ........................................................................................................................... - 162 -

    T ........................................................................................................... - 162 -Kreiranje subprocedure TiskajNarudzbu .................................................................................. - 162 -Promjena kda gumba cmdOvoKupujem .............................................. ................................... - 165 -Access Keys.................................................................................................................... .......... - 166 -

    Testiranje programa ....................................................................................................... - 167 -

    Otkrivanje nepravilnosti u probnom periodu.................................................................. - 167 -Pitanje za kraj... ............................................................................................................. ........... - 169 -Odgovor... .................................................................................................................... ............. - 169 -Toliko smo puta... ............................................................................................................. ........ - 169 -

    Na kraju .......................................................................................................................... - 169 -

    Kako dalje?.................................................................................................................... - 170

    LITERATURA ...................................................................................................................... - 171

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    9/180

    9

    O autoruIvica Kartelo je suvlasnik kole "E-92" i ustanove "Kartelo", ustanove za

    Spomenimo samo neke njegove knjige: Visual Basic 6 za 8. razred, JavaScript za Internet, FrontPage 2000, Word XP, Excel XP, Access 2000, Windows ME,CorelDraw, Adobe Photoshop itd.Osim pisanja knjiga i predavanja u "E-92", Ivica Kartelo redovno vodi programeosposobljavanja i usavravanja za zanimanja u ustanovi "Kartelo". Neka od

    zanimanja su: Web kreator, Internet programer, Specijalist uredskih i Internetaplikacija, CAD specijalist itd. Sva zanimanja su verificirana od Ministarstva i to da Ivica Kartelo vodi te programe i preko Interneta. Tako je ustanova"Kartelo" prva u Hrvatskoj u kojoj se nastava u cijelosti odvija multimedijalno, na

    to vam je potrebno za rad po ovojknjizi

    Za rad po ovoj knjizi vam je dovoljan program Visual Basic 6., i to najjeftinijaedicija koju nudi Microsoft.

    uspjeno obaviti sve svoje poslove vezane za bazu podataka.

    Kako se obavlja integracija baze podataka i vae Visual Basic aplikacije.Skinite s Interneta

    knjigom. Ostali mogu skinuti s Interneta sve potrebne datoteke: Visual Basic projekt Ivamar,

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    10/180

    10

    VisualBasic6.jpg i JavaScript.jpg.

    URL Opis

    http://www.e92.hr/vbbazepocetak.zip

    zadnje stranice.

    http://www.e92.hr/vbbazekraj.zip Gotovi projekt sa svim potrebnim datotekama. Sve ove

    C:\Ivamar. Pritisnite tipku mia dva puta na Ivamar

    Visual Basic Project .

    Microsoft Access

    gradivo. Oni koji imaju taj program (format 97) i znaju ga koristiti, mogu po knjizi napravitipotrebnu bazu podataka ivamar.mdb. Ostali mogu skinuti s Interneta gotovu bazu podataka

    http://www.e92.hr/vbbazepocetak.zip

    Visual Basic 6 Working Model Edition Basic-a.

    Za koga je pisana ova knjiga razreda osnovne kole.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    11/180

    1

    UvodIvamar.pdv

    stao u knjizi "Visual Basic 6". Napravili smo projekt Ivamar i stekli dobre osnove povezati ga s relacijskom bazom ivamar.mdb.

    http://www.e92.hr/vbbazepocetak.zipSve datoteke pohranite u mapu C:\Ivamar.

    ivamar.mdb

    U knjigama o Microsoft Accessu, od prve do posljednje verzije, XP, kroz primjer

    knjizi.

    Na Web-u, URL: http://www.e92.hr/vbbazepocetak.zip se nalazi relacijska baza

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    12/180

    2

    Lekcija 1Visual Basic aplikacija

    Na gore navedenoj adresi na Internetu nalazi se Visual Basic projekt Ivamar. Tajsmo projekt napravili u knjizi "Visual Basic 6". Skinite ga s navedene adrese i

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    13/180

    3

    Lekcija 2Microsoft Access baza podataka

    Gotova baza na Internetu

    Na Web-u, URL: http://www.e92.hr/vbbazepocetak.zip se nalazi relacijska baza

    Podaci o bazi ivamar.mdb

    bazu podataka i pohraniti je u C:\Ivamar pod imenom ivamar.mdb (format Access97).

    Sve tablice i njihove relacije

    njih:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    14/180

    4

    Tablica 'Administracija'

    Field Name Field Type Field Size Required? Opis

    IDadministratora Text 13 Yes ID zaposlenika

    Zaporka Text 8 Yes Zaporkazaposlenika

    Tablica 'Knjige'

    Field Name Field Type Field Size Required? Opis

    IDknjige AutoNumber Identifikacijskibroj knjige

    Naslov Text 20 Yes Naslov knjige

    Format Text 20 Yes Format knjigeCijena Currency Yes Cijena knjige

    Index

    Dok vam je tablica 'Knjige' otvorena u dizajn prozoru odaberite View/Indexes. Udijalogu Indexes: Knjige tipkajte ono to nedostaje prema slici dolje:

    najvie 10).

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    15/180

    5

    Tablica 'Kupci'

    Field Name Field Type Field Size Required? Opis

    IDkupca AutoNumber ID kupca

    Ime Text 20 Yes Ime kupca

    Prezime Text 30 Yes Prezime kupcaUlicaIbroj Text 30 Yes Ulica i broj

    kupca

    Grad Text 30 Yes Grad kupca

    Postanskibroj Text 5 Yes Potanski brojkupca

    Telefon Text 10 No Telefon kupca

    Tablica 'StavkeNarudzbe'

    Field Name Field Type Required? Opis

    IDstavkeNarudzbe AutoNumber ID stavke

    IDkupca Number Yes ID kupca

    IDknjige Number Yes ID knjige

    Kolicina Number Yes

    kupljenih knjigaCijena Currency Yes Cijena knjige

    DatumKupovine Date/Time Yes Datum kupovine

    Unos podataka u tablicu 'Administracija'

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    16/180

    6

    Unos podataka u tablicu 'Kupci'

    Unos podataka u tablicu 'Knjige'

    Unos podataka u tablicu 'StavkeNarudzbi'

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    17/180

    7

    Lekcija 3Veza Ivamar.vbp ivamar.mdb

    Microsoft Access i Jet

    Microsoft Accessje program u kojem smo napravili relacijsku bazu podatakaivamar.mdb

    upravljanjerelacijskim bazama podataka.

    Koji je to dio u Accessu koji upravlja bazama podataka? Taj dio je 'motor'Accessa i zove se database engine- kod Accessa se konkretno zove Jet.

    datoteke. Jedna datoteka je EXE datoteka, konkretno Ivamar.exe i druga datoteka

    je MDB datoteka, konkretno Ivamar.mdb. Prva je Visual Basic aplikacija a drugaje relacijska baza podataka naputena od svog 'roditelja' Access-a i 'mrtva' bez Jet-a.

    DLL

    programa koji su potrebni za rad drugih programa. Ti su programi poznati pod

    Podsjetimo se DLL programi mogu biti veliki desetke megabajta, a rijetko je

    mnogo nepotrebno tekih aplikacija. I do 99% tereta svake aplikacije je znalo biti iskoriteni.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    18/180

    8

    Data control, DAO i ADO

    kontrole Data DAOi

    ADO.

    knjizi.

    Data Access Object, a ADO od ActiveX Data Object. posljednji doao na svijet, a DAO i kontrol Data bi bili OUT.

    detaljno objanjenje spoja s bazom podataka.

    Dodavanje nove forme projektu

    1. Otvorite projekt Ivamar u Visual Basic-u.2. Odaberite naredbu Project/Add Form.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    19/180

    9

    Izgled dijaloga Add Form ovisi o ediciji Visual Basica.

    3. mia na Form.4. 5. Otvorite prozor Properties pritiskom na tipku F4.6. Pritisnite tipku mia na svojstvo Name u prozoru Properties i tipkajte novo

    ime frmAdministrator.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    20/180

    10

    7. Pritisnite tipku mia na gumb Save .8. Visual Basic otvara dijalog Save File As i nudi ime form datoteke

    frmAdministrator. Odaberite mapu C:\Ivamar datoteke promijenite u Administrator.

    9. Pritisnite tipku mia na gumb Save.10.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    21/180

    11

    U naem projektu Ivamar sad vidimo dvije form-e:frmGlavniObrazaci frmAdministrator.

    Dodavanje kontrola na formu frmAdministrator

    Nastavljamo raditi na novoj formi frmAdministrator.

    1. jednu kontrolu Data .

    2. Pozicionirajte i dimenzionirajte kontrole otprilike kao na slici dolje:

    3.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    22/180

    12

    Property Vrijednost (value) Komentar

    Name lblIDadministratora (lbl...za Label).

    Caption ID administratora:

    4. Property Vrijednost (value) Komentar

    Name lblZaporka (lbl...za Label).

    Caption Zaporka:

    5. Property Vrijednost (value) Komentar

    Name txtIDadministratora (txt...za TextBox).

    Text (blank - nita) Pritisnite tipku mia nasvojstvo Text pa pritisnitetipku DeleteiliBackspace.

    6. Property Vrijednost (value) KomentarName txtZaporka

    (txt...za TextBox).

    Text (blank - nita) Pritisnite tipku mia nasvojstvo Text pa pritisnitetipku DeleteiliBackspace.

    7. Na formi frmAdministrator

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    23/180

    13

    Property Vrijednost (value) Komentar

    Name frmAdministrator (frm...za Form).

    BorderStyle 1-Fixed Single

    Caption Administratori Ivamar-a

    Height 3450 Samo sugestija.

    MaxButton False maksimizira formu.

    MinButton False minijaturizira formu.

    Moveable False premijeta formu.

    StartUpPosition 2-Center Screen sredini objekta Screen.

    Width 5055 Samo sugestija.

    8. 9.

    u nastavku ove knjige.

    Na novi obrazac frmAdministrator sad izgleda ovako:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    24/180

    14

    Proirivanje izbornika Ivamar-a

    Nastavljamo raditi na projektu Ivamar.

    1. U prozoru Project Explorer pritisnite tipku mia dva puta nafrmGlavniObrazac da se otvori.

    2. mia na nju.3. Ako je otvoren prozor Code, zatvorite ga.4.

    5. Pritisnite tipku mia na prazni redak ispod ".........Boja p&redzadana" i va

    6. njemu:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    25/180

    15

    Caption Name Podizbornik? Roditelj

    Zaposlenici mnuZaposlenici Ne

    Pregled/AzuriranjeAdministracija

    mnuAdministracija Da mnuZaposlenici

    Pregled/AzuriranjeKupci

    mnuKupci Da mnuZaposlenici

    Pregled/Azuriranje

    Knjige

    mnuKnjige Da mnuZaposlenici

    PregledStavkeNarudzbe

    mnuStavkeNarudzbe Da mnuZaposlenici

    7. Kad pravite podizbornik, ne zaboravite pritisnuti strelicu desno.8.

    9.

    10.Pohranite projekt Ivamar odabirom gumba Save na liniji alata.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    26/180

    16

    11.Pokrenite program Ivamar i provjerite strukturu novog izbornika. Ako kdirati to to se mora desiti.

    1. alata.

    2. Pritisnite tipku mia dva puta na frmGlavniObrazac u Project Explorer-u,da se glavna forma otvori.

    3. U pogledu Object, pritisnite tipku mia na izbornik Zaposlenici pa nanaredbu Pregled/Azuriranje Administracija.

    4. Private Sub mnuAdministracija_Click()

    Me.Hide

    frmAdministrator.Show

    End Sub

    5. 6. 7. Odaberite Zaposlenici/Pregled/Azuriranje Administracija.

    Pokazao se obrazac frmAdministrator, a sakrio obrazac

    8. Forma frmAdministrator je nestala s ekrana, a frmGlavniObrazac se nije

    'End' na liniji alata.

    Analiza

    Bilo je vrlo uzbudljivo kad smo odabrali naredbu Zaposlenici/Pregled/AzuriranjeAdministracija i kad se pojavila druga forma, a prva forma se sakrila. To smo

    Me.Hide

    Me Mogli smo kdirati i ovako:

    frmGlavniObrazac.Hide'Hide' je metoda od forme. Mogli smo ukloniti formu i ovako:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    27/180

    17

    Unload frmGlavniObrazac

    vidjeti, morali bi napisati naredbu:Load frmGlavniObrazac

    vidjeti na ekranu.

    Po istoj logici smo mogli i ovako kdirati pojavljivanje forme frmAdministrator:Load frmAdministrator

    frmAdministrator.Visible = True

    Nije dovoljan samo prvi redak:

    Load frmAdministrator

    Zato je potreban i ovaj redak:frmAdministrator.Visible = True

    ekranu.

    Zato smo kdirali:frmAdministrator.Show

    'Show' je metoda od forme. 'Visible' je svojstvo od forme. U ovoj analizi smo

    svojstva 'Visible' i vrijednosti 'False', nego smo dali prednost metodi 'Hide'.

    pojavljivanje forme frmGlavniObrazac, nakon zatvaranja formefrmAdministrator.

    1. Zaustavite Ivamar ako radi.2. Pritisnite tipku mia dva puta na frmAdministrator u Project Exploreru.3. Pritisnite tipku mia dva puta na formu frmAdministrator.4. U prozoru Code odaberite proceduru QueryUnload.5. Tipkajte ovaj kd:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    28/180

    18

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As

    Integer)

    frmGlavniObrazac.Show

    End Sub

    6. Pohranite Ivamar.7. Pokrenite program Ivamar i odaberite naredbu

    Zaposlenici/Pregled/Azuriranje Administracija.

    8. Zatvorite formu frmAdministrator.Ponovo se pojavila forma frmGlavniObrazac.

    Analiza

    kdirali jer nije potrebno. Naredba Close preko gumba Close automatski vri i

    frmGlavniObrazac.Show

    toga se dogodilo uklanjanje (unload) forme frmAdministrator iz memorije(RAM).

    pozadine.

    Povezivanje forme frmAdministrators tablicomAdministracijau bazi ivamar.mdb

    1. Zaustavite program Ivamar ako radi.2. Otvorite frmAdministrator u pogledu Object.3. Promijenite vrijednosti svojstava kontrole Data1

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    29/180

    19

    Svojstvo Vrijednost (value) Komentar

    Name datAdministracija (dat...za Database).

    Caption Administracija

    DatabaseName C:\Ivamar\ivamar.mdb Ovaj put odaberi prekodijaloga.

    EOFAction 2-AddNew nove slogove u tablicu.

    RecordsetType 0-Table

    RecordSource Administracija liste.

    4.

    Pohranite projekt Ivamar. Sad napravimo promjene svojstava kontrole tablici:

    Svojstvo Vrijednost (value) Komentar

    DataSource datAdministracija listi.

    DataField IDadministratora listi.

    MaksLength 13 Vrijednost FieldLengthovog polja u tabliciAdministracija.

    ToolTipText ID administratora

    5. Pohranite projekt Ivamar. Sad napravimo promjene svojstava kontrole

    Svojstvo Vrijednost (value) Komentar

    DataSource datAdministracija listi.

    DataField Zaporka listi.

    MaksLength 8 Vrijednost FieldLengthovog polja u tabliciAdministracija.

    ToolTipText Zaporka administratora

    6. Pohranite projekt Ivamar.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    30/180

    20

    7. Pokrenite program i odaberite Zaposlenici/Pregled/AzuriranjeAdministracija.

    8. Pritisnite tipku mia na gumb .

    9. Pritisnite tipku mia na gumb . Polja su prazna i spremna primiti vanovi upis:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    31/180

    21

    Analiza

    DatabaseName C:\Ivamar\ivamar.mdb Ovaj put odaberi prekodijaloga.

    RecordSource Administracija liste.

    RecordsetType 0-Table

    Access baza podataka se najlake spaja na Visual Basic. Taj format baza je

    DatabaseName

    U ovom svojstvu ste preko dijaloga pronali ivamar.mdb i automatski se upisaoput baze podataka C:\Ivamar\ivamar.mdb. To je svakako prvo svojstvo kojemoramo odrediti, ali ne i posljednje.

    Rekli smo da je Accessbaza predzadana. Gdje se tovidi?

    Pogledajte svojstvoConnect. ------>>>>>

    Tamo pie Access.Pritisnite tipku mia na aplikaciju.

    Postoje dva tipa bazapodataka i na oba se VB ISAMiODBCtipovi baza.

    Indexed Sequential Access Method i opisuje kako 'motor' baze upravlja podacima.ISAM baze su starije baze i sve one koje su se pojavile u listi Connect su togatipa. Te baze prilikom instalacije upisuju u Windows Registry put do svojih

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    32/180

    22

    svojstvo Connect moramo pisati tekstualni 'string' s pet, est argumenata. Taj

    RecordSource

    lista tablica i upita te baze. U toj listi smo odabrali tablicu 'Administracija'. Naa

    Recordset

    bazu podataka. To je recordset. to je recordset? Onog trenutk kad se pokreneprogram Ivamar i otvori forma Administrator u RAM-u se formira virtualna bazaivamar.mdb. Taj virtualni objekt u RAM-u je objekt recordset. Kontrola Datakomunicira s recordset-om a recordset s bazom ivamar.mdb. Blok dijagram te

    veze izgleda ovako:

    Kontrola Data1 je spojena s virtualnom tablicom Administracija u Recordset-u.Kontrola Text1 je spojena (bound) s virtualnim poljem IDadministratora uRecordset-u. Kontrola Text2 je spojena (bound) s virtualnim poljem Zaporka uRecorset-u. Tablica Administracija u Recorset-u je spojena s tablicom u baziivamar.mdb.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    33/180

    23

    RecordsetType

    0-Table

    1-Dynaset

    2-Snapshot

    Tip Table

    Tip Dynaset

    Table.

    Tip Snapshot

    nove kjnige, ti novo upisani naslovi se ne bi vidjeli u kontroli lstKnjige sve doprvog zatvaranja i ponovnog otvaranja aplikacije Ivamar. U Dynaset i Tabletipovima recordset-a bi se vidjeli odmah.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    34/180

    24

    Lekcija 4Forma 'Login'

    Nova forma

    1. Otvorite Visual Basic. Otvorite projekt Ivamar. Otvorite novu formu. Form1u

    frmLogin.2. Pohranite formu frmLogin u mapu C:\Ivamar\ pod imenom Login.

    3. Pogledajte u Visual Basic project explorer i tamo su sada vidljive triforme:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    35/180

    25

    Dodavanje kontrola

    1. Nastavljamo raditi na projektu Ivamar.2.

    Dodajte dvije kontrole Label, dvije TextBox i dvije kontrole CommandButtons, kao na slici dolje:

    3. Property Vrijednost (Value)Name lblKorisnikID

    Caption &Ime korisnika:

    4. Property Vrijednost (Value)

    Name lblZaporkaID

    Caption &Zaporka:

    5.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    36/180

    26

    Property Vrijednost (Value)

    Name txtKorisnikID

    Text (obrii sve)

    6. Property Vrijednost (Value)

    Name txtZaporkaID

    Text

    PasswordChar *

    Stavljanjem znaka * kao vrijednost svojstva PasswordChar, odredili ste znak koji

    7. Property Vrijednost (Value)

    Name cmdOK

    Caption OK

    Default True

    8. Property Vrijednost (Value)

    Name cmdCancelCancel True

    Caption Cancel

    9. Property Vrijednost (Value)

    Name frmLogin

    BorderStyle 3-Fixed Dialog

    Caption Login Ivamar

    Moveable False

    StartUpPosition 2-Center Screen

    Forma Login sada izgleda ovako:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    37/180

    27

    10.

    11.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    38/180

    28

    Property Vrijednost (Value) Komentar

    Name datAdmnistracija su prva tri slova od'database'. Kontrola Data

    je linkom spojena stablicom Administracija.

    DatabaseName C:\Ivamar\ivamar.mdb Ne tipkajte ovo u'property'! Koristite ovaj put.

    RecordsetType 0-Table koritenje svojstva'Index'.

    RecordSource Administracija listi.

    Visible False vidi kontrolu Data.

    12.Pohranite projekt Ivamar. u aplikaciji koja se otvara prva. Sad je to forma frmGlavniObrazac. U nastavku

    1. Otvorite Ivamar u pogledu View/Object.2. Project/Properties.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    39/180

    29

    3. odaberite frmLogin.

    4. OK.5. Pohranite projekt Ivamar. Pokrenite projekt Ivamar. Otvorila se forma

    Analiza

    Startup Object u memoriju RAM i prva pojaviti na ekranu.

    StandardModule

    Sub Main

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    40/180

    30

    To je standardni modul koji se zove SubMain. Standardni modul 'Sub Main' je u

    Kreiranje standardnog modula

    1. Nastavljamo raditi na projektu Ivamar.2. Project/Add Module.3. U dijalogu Add Module pritisnite tipku mia dva puta na Module.

    Otvorio se prozor za pisanje kda ustandardnom modulu Module1. ------->

    U prozoru Project sad vidite poredkolekcije Forms s tri forme i kolekcijuModules s jednim modulom.----->

    4. Pritisnite tipku mia na Save.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    41/180

    31

    5. Tipkajte ime 'Ivamar' za modul i otvorite mapu C:\Ivamar\.6.

    Deklariranje globalnih varijabli u sekciji General Declarationsstandardnog modula

    1. Nastavljamo raditi na projektu Ivamar.2. Pritisnite tipku mia dva puta na standardni modul u prozoru Project.3. U sekciju General tipkajte:

    Option Explicit

    Public g_intBrojKupca As IntegerPublic g_strKorisnik As String

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    42/180

    32

    Declaration u Tools/Options/Editor.

    4. Pohranite projekt Ivamar.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    43/180

    33

    Lekcija 5Pisanje kda za formu Login

    Dodavanje kda gumbu Cancel

    1. Otvorite projekt Ivamar.2. U prozoru Project Explorer pritisnite tipku mia dva puta na formu Login.3. 4. U objekt proceduru tipkajte kd:

    Private Sub cmdCancel_Click()

    If vbOK = MsgBox("Zelite izaci?", vbOKCancel) Then

    Unload Me

    End

    Else

    txtKorisnikID.SetFocus

    End If

    End Sub

    5. Pohranite projekt Ivamar.6.

    ste odabrali OK u poruci, izali bi iz programa.

    Analiza

    sljedi... Unload Me

    Forme Login je nestalo s ekrana i iz RAM-a. Ali program i dalje radi iako tomenema traga na ekranu. Zato je potrebna naredba... End

    ...koja zaustavlja rad aplikacije Ivamar.

    Ako umjesto OK odaberete Cancel, sljedi...

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    44/180

    34

    txtKorisnikID.SetFocus

    Dodavanje kda gumbu OK

    1. Zaustavite program Ivamar.2. Otvorite formu Login u pogledu View/Object. Pritisnite tipku mia dva

    puta na gumb OK.

    3. Private Sub cmdOK_Click()

    Static intPogresnoLogiranje As Integer

    'Izjednacimo varijablu s vrijednoscu svojstva_

    'Text od textbox txtKorisnikID

    g_strKorisnik = UCase(txtKorisnikID.Text)

    'Ucinimo svojstvo Index od Recordset-a primarnim kljucem _

    'To je potrebno radi Seek Operation

    datAdministracija.Recordset.Index = "PrimaryKey"

    'Trazimo zapis u tablici Administracija s tim ID administratora

    datAdministracija.Recordset.Seek "=", UCase(txtKorisnikID.Text)

    If datAdministracija.Recordset.NoMatch = True Then

    MsgBox "Vi niste autorizirani korisnik..."

    Unload Me

    End

    End If

    'Ako je zapis s tom vrijednoscu pronadjen, kontrolirajmo _

    'Zaporku u Recordset-u

    If UCase(txtZaporkaID.Text) = _

    UCase(datAdministracija.Recordset("Zaporka").Value) Then

    MsgBox g_strKorisnik & ", uspjesno ste se logirali." & _

    "Izvolite nastaviti..."

    Unload Me

    frmGlavniObrazac.Show

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    45/180

    35

    Else

    intPogresnoLogiranje = intPogresnoLogiranje + 1

    If intPogresnoLogiranje = 3 Then

    MsgBox "Ooooooo----potrosili ste svoja tri pokusaja!"

    Unload Me

    End

    Else

    txtZaporkaID.Text = ""

    txtZaporkaID.SetFocus

    MsgBox "Vasa zaporka je netocna." & _

    "Molimo pokusajte ponovo..."

    End If

    End If

    End Sub

    4. Pohranite projekt Ivamar.Analiza

    nita ili tipka ime koje ne postoji u tablici 'Administracija', sljedi "Vi niste

    autorizirani korisnik..." i kraj programa. Korisnik tipka ime koje postoji u tablici 'Administracija', ali ne postoji

    zaporke, moramo deklarirati varijablu koja i nakon

    deklariramo sa 'Static':Static intPogresnoLogiranje As Integer

    vrijeme 'sesije s ulaskom korisnika u aplikaciju, a zavrava s izlaskom tog korisnika iz aplikacije. svojstva Text tj. s onim to korisnik utipka u 'Ime korisnika' tj. s 'IDadministrator'-

    om:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    46/180

    36

    g_strKorisnik = UCase(txtKorisnikID.Text)

    Seekmetodu od Recordset-a.

    Najprije definiramo svojstvo Index od Recordset-a:datAdministracija.Recordset.Index = "PrimaryKey"

    Ime indeksa "PrimaryKey" je upisano u Access bazi:

    datAdministracija.Recordset.Seek "=", UCase(txtKorisnikID.Text)

    'datAdministracija' je kontrola Data. Kontrola Data ima svoja svojstva, metode,

    If datAdministracija.Recordset.NoMatch = True Then

    Sljedi poruka: MsgBox "Vi niste autorizirani korisnik..."

    Unload Me

    End

    (End).

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    47/180

    37

    If UCase(txtZaporkaID.Text) = _

    UCase(datAdministracija.Recordset("Zaporka").Value) Then

    MsgBox g_strKorisnik & ", uspjesno ste se logirali." & _

    "Izvolite nastaviti..."

    Unload Me

    frmGlavniObrazac.Show

    (frmGlavniObrazac.Show).

    Else

    intPogresnoLogiranje = intPogresnoLogiranje + 1

    If intPogresnoLogiranje = 3 Then MsgBox "Ooooooo----potrosili ste svoja tri pokusaja!"

    Unload Me

    End

    Else

    txtZaporkaID.Text = ""

    txtZaporkaID.SetFocus

    MsgBox "Vasa zaporka je netocna." & _

    "Molimo pokusajte ponovo..."

    End If

    End If

    End Sub

    Testiranje forme Login ne autorizirani korisnik1. Pokrenite Ivamar.2.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    48/180

    38

    3.

    4. OK. I program Ivamar se zatvorio.Testiranje forme Login autorizirani korisnik je zaboravio zaporku

    5. Pokrenite program Ivamar.6. Tipkajte Administrator u Ime korisnika, a 123456 u Zaporka:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    49/180

    39

    7. OK.

    8. OK. Ponovo unesite krivu zaporku. OK. Sljedi ista poruka o netocnoj poruka:

    9. OK. Program Ivamar se zatvorio.Testiranje forme Login autorizirani korisnik

    10.Pokrenite program Ivamar.11.Tipkajte Administrator u Ime korisnika i 061883 u Zaporka. OK.

    12.OK. Forma Login je nestala, a pojavila se forma GlavniObrazac. IzbornikZaposlenici je vidljiv.

    13.Zaustavite program, pa ga ponovo pokrenite i ovaj se put logirajte kao'KORISNIK' i '030655'.

    14.Ponovo ste se uspjeno logirali i u formi GlavniObrazac opet viditeizbornik Zaposlenici.

    osim za korisnika 'Administrator'.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    50/180

    40

    1. Zaustavite program Ivamar.2. Pritisnite tipku mia dva puta na frmGlavniObrazac u prozoru Project.3. 4. U proceduri Form_Load()

    Private Sub Form_Load()

    '*************************************

    'Programer: Ivica Kartelo *

    'Datum pisanja: 24. lipnja 2002. *

    '*************************************

    '

    '

    Call CitajRegistry

    Call CitajCjenik

    If m_blnPrikazDatuma Then

    Call mnuDatumIVrijemeUkljuci_Click

    Else

    Call mnuDatumIVrijemeIskljuci_Click

    End If

    frmGlavniObrazac.BackColor = m_lngBojaPozadine

    Open "C:\Ivamar\cjenik.txt" For Input As #1

    If g_strKorisnik = "ADMINISTRATOR" Then

    mnuZaposlenici.Visible = True

    Else

    mnuZaposlenici.Visible = False

    End If

    End Sub

    5. Pohranite projekt Ivamar.6. Pokrenite ponovo program Ivamar.7.

    forma GlavniObrazac i na njoj izbornik 'Zaposlenici'.

    8. Zaustavite program Ivamar i ponovo ga pokrenite. Sad se logirajte kao

    GlavniObrazac, ali ovaj put bez izbornika 'Zaposlenici'.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    51/180

    41

    Analiza

    If g_strKorisnik = "ADMINISTRATOR" Then

    mnuZaposlenici.Visible = True

    Else

    mnuZaposlenici.Visible = False

    End If

    U kdu procedure cmdOK_Click() forme Login je globalna varijabla'g_strKorisnik' dobila vrijednost, npr. 'ADMINISTRATOR'. Tu vrijednost sad formi GlavniIzbornik biti vidljiv ili ne. Ako je ta vrijednost varijable jednaka

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    52/180

    42

    Lekcija 6Promjene na formi Administrator

    dodavati ili brisati zapise. U tu svrhu je potrebno ugraditi nekoliko kontrola

    1. Otvorite projekt Ivamar.2. Otvorite formu Administrator.3.

    formi Administrator.

    4. Stavite kontrolu Frame na formu. Zatim unutar prve kontrole Frame1stavite drugu kontrolu Frame, Frame2, prema slici dolje:

    5. premijetanjem okvira Frame1, premijetati i okvir Frame2. Da bi to tako

    okvirom kontejnerom.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    53/180

    43

    6. Povucite dvije kontrole Label i dvije kontrole TextBox, kao na slici dolje. Label2 i na kraju Text2. Provjerite da li su te kontrole u kontejneruFrame2.

    7. okvira Frame1, kao na slici dolje:

    8. Na kraju stavite jedan Command Button izvan oba okvira Frame, kao naslici dolje:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    54/180

    44

    9.

    tablicama:

    Kontrola Data1

    Property Vrijednost (Value)

    Name datAdministrator

    Caption Ivamar administrator

    DatabaseName C:\Ivamar\ivamar.mdb

    EOFAction 0-MoveLast

    RecordsetType 1-Dynaset

    RecordSource Administracija

    zapis samo pritiskom na gumb 'Dodaj'.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    55/180

    45

    Kontrola Frame1

    Property Vrijednost (Value)

    Name fraVanjski

    Caption

    TabIndex 0

    Kontrola Frame2

    Property Vrijednost (Value)

    Name fraUnutrasnji

    Caption Korisnici

    TabIndex 1

    Kontrola Label1

    Property Vrijednost (Value)

    Name lblIDkorisnika

    Caption &ID korisnika:

    TabIndex 2

    Kontrola Label2

    Property Vrijednost (Value)

    Name lblZaporka

    Caption &Zaporka:

    TabIndex 4

    Kontrola Text1

    Property Vrijednost (Value)

    Name txtIDkorisnika

    DataSource datAdministrator

    DataField IDadministratora

    MaxLength 13

    TabIndex 3

    Text (nita)

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    56/180

    46

    Kontrola Text2

    Property Vrijednost (Value)

    Name txtZaporka

    DataSource datAdministrator

    DataField Zaporka

    MaxLength 8

    TabIndex 5

    Text (nita)

    Kontrola Command1

    Property Vrijednost (Value)

    Name cmdDodaj

    Caption &Dodaj

    TabIndex 6

    Kontrola Command2

    Property Vrijednost (Value)

    Name cmdAzuriraj

    Caption &Azuriraj

    TabIndex 7

    Kontrola Command3

    Property Vrijednost (Value)

    Name cmdObrisi

    Caption &ObrisiTabIndex 8

    Kontrola Command4

    Property Vrijednost (Value)

    Name cmdOdustani

    Caption Od&ustani

    TabIndex 9

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    57/180

    47

    Kontrola Command5

    Property Vrijednost (Value)

    Name cmdIzlaz

    Cancel True

    Caption &Izlaz

    TabIndex 10

    tipkovnici kao i pritiskom na gumb 'Odustani'.

    Provjerite svojstva od forme Administrator

    Property Vrijednost (value)

    Name frmAdministratorBorderStyle 1-Fixed Single

    Caption Administratori Ivamar-a

    Height 3450

    MaxButton False

    MinButton False

    Moveable False

    StartUpPosition 2-Center Screen

    Width 5055

    Vaa forma izgleda ovako:

    10.Pohranite projekt Ivamar.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    58/180

    48

    Lekcija 7Forma Administrator kdiranje

    1. Nastavljamo raditi na formi Administrator u projektu Ivamar.2.

    Private Sub Form_Activate()

    datAdministrator.Recordset.MoveLast

    datAdministrator.Recordset.MoveFirst

    End Sub

    3. Pohranite projekt Ivamar.Analiza

    nalazimo te ukupni broj redaka, moramo najprije 'proetati' aplikaciju do dnaRecordset-a...datAdministrator.Recordset.MoveLast

    datAdministrator.Recordset.MoveFirst

    1. Administrator. Samo provjerite:

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As

    Integer)

    frmGlavniObrazac.Show

    End Sub

    2. Pohranite projekt Ivamar.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    59/180

    49

    Analiza

    se i otvorit forma 'GlavniObrazac':frmGlavniObrazac.Show

    3. datAdministrator_Reposition():

    Private Sub datAdministrator_Reposition()

    datAdministrator.Caption =

    datAdministrator.Recordset.AbsolutePosition + 1 & _

    " redak" & _

    " od ukupno " & datAdministrator.Recordset.RecordCount & _

    " redaka."

    End Sub

    4. Pohranite projekt Ivamar.Analiza

    Reposition nakonpomicanja na novi

    datAdministrator.Recordset.AbsolutePosition + 1

    Svojstvo 'AbsolutePosition' broji retke od nula pa na vie. Zato je potrebno dodatijedinicu (+1), jer je prvi redak za nas redak broj jedan, a ne redak broj '0'.

    Svojstvo 'RecordCount' izbacuje ukupan broj redaka.

    5. datAdministrator_Validate ():

    Private Sub datAdministrator_Validate(Action As Integer, Save As

    Integer)

    If datAdministrator.Recordset.EditMode dbEditNone Then

    If txtIDkorisnika.Text = "" Then

    MsgBox "Molim, tipkajte ID korisnika"

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    60/180

    50

    txtIDkorisnika.SetFocus

    Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    If txtZaporka.Text = "" Then

    MsgBox "Molim, tipkajte zaporku"

    txtIDkorisnika.SetFocus

    Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    End If

    End Sub

    6. Pohranite projekt Ivamar.Analiza

    Validate prijepomicanja na novi validate

    dovesti do pomicanja na drugi redak.Private Sub datAdministrator_Validate(Action As Integer, Save As

    Integer)

    Actioni Save.

    proceduri Validate zadali argument Save = False, brisanje retka se nikad

    Postoji 12 argumenata Action:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    61/180

    51

    Konstanta Vrijednost Opis

    vbDataActionCancel 0 Prekida radnju kad procedura izlazi (exit).

    vbDataActionMoveFirst 1 Metoda MoveFirst

    vbDataActionMovePrevious 2 Metoda MovePrevious

    vbDataActionMoveNext 3 Metoda MoveNextvbDataActionMoveLast 4 Metoda MoveLast

    vbDataActionAddNew 5 Metoda AddNew

    vbDataActionUpdate 6 Radnja Update (ne UpdateRecord)

    vbDataActionDelete 7 Metoda Delete

    vbDataActionFind 8 Metoda Find

    vbDataActionBookmark 9 Zadano je svojstvo Bookmark

    vbDataActionClose 10 Metoda Close

    vbDataActionUnload 11

    EditMode

    If datAdministrator.Recordset.EditMode dbEditNone Then

    Ovaj redak provjerava vrijednost svojstva EditMode. To je svostvo od Recordset-

    Opis

    dbEditNone Proces editiranja nije u tijeku.

    DbEditInProgress privremenu memoriju.

    dbEditAdd privremenoj memoriji i nije jo unijet u bazu podataka.

    Vrijednost dbEditNone

    proceduri. If datAdministrator.Recordset.EditMode dbEditNone Then

    EditMode =DbEditInProgress' ili '...EditMode = dbEditAdd' tad provjeri je li If txtIDkorisnika.Text = "" Then

    MsgBox "Molim, tipkajte ID korisnika"

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    62/180

    52

    txtIDkorisnika... txtIDkorisnika.SetFocus

    Save = False

    ...i prenesi u Validation novi argument Action, onaj kojeg je izazvao kd Save =False, a to je 'prekid'... Action = vbDataActionCancel

    Exit Sub

    Zato nismo napisali Action = 0

    'vbDataActionCancel' nego '0'. Tko bi pamtio sve brojeve.

    7. txtZaporka_KeyPress():Private Sub txtZaporka_KeyPress(KeyAscii As Integer)

    If KeyAscii >= 97 And KeyAscii = 97 And KeyAscii

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    63/180

    53

    9. txtIDkorisnika_KeyPress():

    Private Sub txtIDkorisnika_KeyPress(KeyAscii As Integer)

    If KeyAscii >= 97 And KeyAscii

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    64/180

    54

    txtIDkorisnika. Nama je preostalo samo tipkanje.

    Ovaj kd...If datAdministrator.Recordset.EditMode dbEditNone Then

    MsgBox "Molim, zavrsite azuriranje prije nego " & _

    "dodate novi zapis"

    Exit Sub

    End If

    ...ne dozvoljava dodavanje novog zapisa ukoliko je u tijeku editiranje, konkretno,ako je '...EditMode = DbEditInProgress' ili '...EditMode =

    dbEditAdd'.

    Ovaj kd...datAdministrator.Recordset.Edit

    datAdministrator.UpdateRecord

    U prvom retku se poziva Edit, metoda Recordset-a, a u drugom retku se pozivaUpdateRecord, metoda kontrole Data.

    1. cmdOdustani_Click():Private Sub cmdOdustani_Click()

    If datAdministrator.Recordset.EditMode = dbEditNone Then datAdministrator.UpdateControls

    Else

    datAdministrator.Recordset.CancelUpdate

    End If

    End Sub

    2. Pohranite projekt Ivamar.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    65/180

    55

    Analiza

    If datAdministrator.Recordset.EditMode = dbEditNone Then

    kao i prije vae intervencije: dbEditNone.

    EditMode, svojstva od Recordset-a. Ako je dbEditNone nismo ona dva Edit moda: '...EditMode = DbEditInProgress' ili '...EditMode= dbEditAdd'.

    Tad je dovoljan kd: datAdministrator.UpdateControls

    UpdateControls

    podatke u vezanu kontrolu text box i predomislili se i odabrali gumb 'Odustani',izvodi se kd: datAdministrator.Recordset.CancelUpdate

    CancelUpdateje metoda od Recordset-a i ova metoda PONITAVA metoduAddNew. Nestaje novi redak i sve je kao to je bilo prije naeg odabira gumba'Dodaj'.

    3. cmdObrisi_Click():Private Sub cmdObrisi_Click()

    On Error GoTo ErrorHandler

    Dim intRezultat As Integer

    If datAdministrator.Recordset.EditMode dbEditNone Then

    MsgBox "Ako trenutno dodajete zapis " & _

    "molim, koristite gumb Odustani za prekid " & _

    "dodavanja"

    Exit Sub

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    66/180

    56

    End If

    intRezultat = MsgBox("Zelite obrisati zapis u tablici " & _

    "Administracija?", vbYesNo, "Obrisi zapis u Administracija")

    If intRezultat = vbYes Then

    datAdministrator.Recordset.Delete

    datAdministrator.Recordset.MoveNext

    If datAdministrator.Recordset.EOF Then

    datAdministrator.Recordset.MovePrevious

    End If

    End If

    Exit Sub

    ErrorHandler:

    Select Case Err.Number

    Case 3200 'Kontrola referencijalnog integriteta

    MsgBox Err.Description

    Exit Sub

    Case Else

    MsgBox Err.Description

    Resume Next

    End Select

    End Sub

    4. Pohranite projekt Ivamar.Analiza

    biti pohranjen u varijablu. Zato je deklarirana ova varijabla:Dim intRezultat As Integer

    Ta varijabla 'hvata' odgovor korisnika...intRezultat = MsgBox("Zelite obrisati zapis u tablici " & _

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    67/180

    57

    "Administracija?", vbYesNo, "Obrisi zapis u Administracija")

    ...i ako je odgovor 'Yes'...If intRezultat = vbYes Then

    ...tad obrii zapis... datAdministrator.Recordset.Delete

    datAdministrator.Recordset.MoveNext

    redak u bazi... If datAdministrator.Recordset.EOF Then

    datAdministrator.Recordset.MovePrevious

    End If

    End If

    kontroli Data. Za Recordset to nije potrebno, ali za kontrolu Data je potrebno. Usuprotnom bi u kontroli data vidjeli ne promijenjen broj redaka, a u kontrolamatext box bi vidjeli obrisane podatke. Jer oni jesu obrisani u Recordset-u, a da bi se kdirali.

    MsgBox

    intRezultat = MsgBox("Zelite obrisati zapis u tablici " & _

    "Administracija?", vbYesNo, "Obrisi zapis u Administracija")

    Gornji okvir za poruku MsgBox ima triargumenta, odijeljena zarezom. Prvi argument

    to korisnik odabere Yes ili No (vbYes ili Administracija" je naslov okvira poruke:

    ErrorHandler

    dozvoliti brisanje sloga. Da to ne izazove pad naeg programa, ugradili smo'ErrorHandler'...

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    68/180

    58

    ErrorHandler:

    Select Case Err.Number

    ...za "referencijalni integritet'... Case 3200 'Kontrola referencijalnog integriteta

    MsgBox Err.Description

    Exit Sub

    ...a onda i za sve druge ne predvidljive pogreke... Case Else

    MsgBox Err.Description

    Resume Next

    End Select

    5. cmdIzlaz_Click():Private Sub cmdIzlaz_Click()

    If datAdministrator.Recordset.EditMode dbEditNone Then

    MsgBox "Molim, zavrsite vase azuriranje prije " & _

    "zatvaranja obrasca"

    Exit Sub

    End If

    Unload Me

    End Sub

    6. Pohranite projekt Ivamar.Analiza

    Kad ugledate kd...

    Unload Me

    kd se nalazi u proceduri QueryUnload. Sjetimo se: kd Unload Me je automatskipokrenuo proceduru QueryUnload.

    7. cmdAzuriraj_Click():Private Sub cmdAzuriraj_Click()

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    69/180

    59

    If datAdministrator.Recordset.EditMode = dbEditAdd Then

    datAdministrator.Recordset.Update

    Else

    datAdministrator.Recordset.Edit

    datAdministrator.Recordset.Update

    End If

    End Sub

    8. Pohranite projekt Ivamar.9.

    061883. Odaberite naredbu Zaposlenici/Pregled/Administracija. Na ekranu bazama podataka gledanjezapisa, dodavanjezapisa, ispravljanje

    brisanje greku ako ikakva postoji. Puno je bolje otkriti greku sada, dok vam je jo

    lekcije.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    70/180

    60

    Lekcija 8Forma Knjige

    1. Otvorite projekt Ivamar u Visual Basic-u. Odaberite naredbuProject/Add Form New Form1tako to Propertiespritiskomna tipku F4. Pritisnite tipku mia na svojstvo Nameu prozoruPropertiesi tipkajte novo ime frmKnjige.

    2. Pritisnite tipku mia na gumb Save .3. Visual Basic otvara dijalog Save File As i nudi ime form datoteke

    frmKnjige. Odaberite mapu C:\Ivamar promijenite u Knjige.

    4. Pritisnite tipku mia na gumb Save.5.

    frmGlavniObrazacifrmAdministrator, frmKnjige i frmLogin.

    Dodavanje kontrola formi Knjige

    1. Nastavljamo raditi na formi Knjige.2.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    71/180

    61

    Kontrole crtajte ovim redom: Frame1, Frame 2, Label1, Text1, Label2,Text2, Label3, Text3, Label4, Text4:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    72/180

    62

    tablici:

    Svojstvo Vrijednost (value)

    Name datKnjige

    Caption Ivamar knjigeDatabaseName C:\Ivamar\ivamar.mdb

    EOFAction 0-MoveLast

    RecordsetType 1-Dynaset

    RecordSource Knjige

    Kontrola Frame1

    Property Vrijednost (Value)

    Name fraVanjski

    Caption

    TabIndex 0

    Kontrola Frame2

    Property Vrijednost (Value)

    Name fraUnutrasnji

    Caption Knjige

    TabIndex 1

    Kontrola Label1

    Property Vrijednost (Value)

    Name lblIDknjige

    Caption &ID knjige:

    TabIndex 2

    Kontrola Label2

    Property Vrijednost (Value)

    Name lblNaslov

    Caption &Naslov:

    TabIndex 4

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    73/180

    63

    Kontrola Label3

    Property Vrijednost (Value)

    Name lblFormat

    Caption &Format:

    TabIndex 6

    Kontrola Label4

    Property Vrijednost (Value)

    Name lblCijena

    Caption &Cijena:

    TabIndex 8

    Kontrola Text1

    Property Vrijednost (Value)

    Name txtIDknjige

    DataSource datKnjige

    DataField IDknjige

    Locked True

    TabStop False

    TabIndex 3

    Text (nita)

    Kontrola Text2

    Property Vrijednost (Value)

    Name txtNaslovDataSource datKnjige

    DataField Naslov

    MaxLength 20

    TabIndex 5

    Text (nita)

    Kontrola Text3

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    74/180

    64

    Property Vrijednost (Value)

    Name txtFormat

    DataSource datKnjige

    DataField Format

    MaxLength 20

    TabIndex 7

    Text (nita)

    Kontrola Text4

    Property Vrijednost (Value)

    Name txtCijena

    DataSource datKnjige

    DataField Cijena

    MaxLength 7

    TabIndex 9

    Text (nita)

    Kontrola Command1

    Property Vrijednost (Value)

    Name cmdDodaj

    Caption &Dodaj

    TabIndex 10

    Kontrola Command2

    Property Vrijednost (Value)Name cmdAzuriraj

    Caption &Azuriraj

    TabIndex 11

    Kontrola Command3

    Property Vrijednost (Value)

    Name cmdObrisi

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    75/180

    65

    Caption &Obrisi

    TabIndex 12

    Kontrola Command4

    Property Vrijednost (Value)Name cmdOdustani

    Cancel True

    Caption Od&ustani

    TabIndex 13

    Kontrola Command5

    Property Vrijednost (Value)

    Name cmdIzlaz

    Cancel True

    Caption &Izlaz

    TabIndex 14

    Provjerite svojstva od forme Knjige

    Property Vrijednost (value)

    Name frmKnjige

    BorderStyle 1-Fixed Single

    Caption Ivamar knjige

    MaxButton False

    MinButton False

    Moveable FalseStartUpPosition 2-Center Screen

    Vaa forma izgleda ovako:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    76/180

    66

    1. Pohranite projekt Ivamar.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    77/180

    67

    Lekcija 9Knjige - kdiranje

    1. Nastavljamo raditi na formi Knjige u projektu Ivamar.2.

    Private Sub Form_Activate()

    datKnjige.Recordset.MoveLast

    datKnjige.Recordset.MoveFirst

    End Sub

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode AsInteger)

    frmGlavniObrazac.Show

    End Sub

    Private Sub datKnjige_Reposition()

    datKnjige.Caption = datKnjige.Recordset.AbsolutePosition + 1 & _" redak" & _

    " od ukupno " & datKnjige.Recordset.RecordCount & _

    " redaka."

    End Sub

    Private Sub datKnjige_Validate(Action As Integer, Save As Integer)

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    78/180

    68

    If datKnjige.Recordset.EditMode dbEditNone Then

    If txtNaslov.Text = "" Then

    MsgBox "Molim, tipkajte naslov knjige"

    txtNaslov.SetFocus

    Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    If txtFormat.Text = "" Then

    MsgBox "Molim, tipkajte format knjige"

    txtFormat.SetFocus

    Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    If txtCijena.Text = "" Then

    MsgBox "Molim, tipkajte cijenu knjige"

    txtCijena.SetFocus

    Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    If Val(txtCijena.Text) 57 Then

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    79/180

    69

    KeyAscii = 0

    End If

    End Sub

    Private Sub cmdDodaj_Click()

    If datKnjige.Recordset.EditMode dbEditNone Then

    MsgBox "Molim, zavrsite azuriranje prije nego " & _

    "dodate novi zapis"

    Exit Sub

    End If

    datKnjige.Recordset.Edit

    datKnjige.UpdateRecord

    datKnjige.Recordset.AddNew

    txtNaslov.SetFocus

    End Sub

    Private Sub cmdOdustani_Click()

    If datKnjige.Recordset.EditMode = dbEditNone Then

    datKnjige.UpdateControls

    Else

    datKnjige.Recordset.CancelUpdate

    End If

    End Sub

    Private Sub cmdObrisi_Click()

    On Error GoTo ErrorHandler

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    80/180

    70

    Dim intRezultat As Integer

    If datKnjige.Recordset.EditMode dbEditNone Then

    MsgBox "Ako trenutno dodajete zapis " & _

    "molim, koristite gumb Odustani za prekid " & _

    "dodavanja"

    Exit Sub

    End If

    intRezultat = MsgBox("Zelite obrisati zapis u tablici " & _

    "Knjige?", vbYesNo, "Delete Knjige Record")

    If intRezultat = vbYes Then

    datKnjige.Recordset.Delete

    datKnjige.Recordset.MoveNext

    If datKnjige.Recordset.EOF Then

    datKnjige.Recordset.MovePrevious

    End If

    End If

    Exit Sub

    ErrorHandler:

    Select Case Err.Number

    Case 3200 'Kontrola referencijalnog integriteta

    MsgBox Err.Description

    Exit Sub

    Case Else

    MsgBox Err.Description

    Resume Next

    End Select

    End Sub

    Private Sub cmdIzlaz_Click()

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    81/180

    71

    If datKnjige.Recordset.EditMode dbEditNone Then

    MsgBox "Molim, zavrsite vase azuriranje prije " & _

    "zatvaranja obrasca"

    Exit Sub

    End If

    Unload Me

    End Sub

    Private Sub cmdAzuriraj_Click()

    If datKnjige.Recordset.EditMode = dbEditAdd Then

    datKnjige.Recordset.Update

    Else

    datKnjige.Recordset.Edit

    datKnjige.Recordset.Update

    End If

    End Sub

    10.Pohranite projekt Ivamar.

    1. alata.

    2. Pritisnite tipku mia dva puta na frmGlavniObrazac u Project Explorer-u,da se glavna forma otvori.

    3. U pogledu Object, pritisnite tipku mia na izbornik Zaposlenici pa nanaredbu Pregled/Azuriranje Knjige.

    4. Private Sub mnuKnjige_Click()

    Me.Hide

    frmKnjige.Show

    End Sub

    5.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    82/180

    72

    6. 061883. Odaberite naredbu Zaposlenici/Pregled/Azuriranje Knjige. Na bazama podataka gledanjezapisa, dodavanjezapisa, ispravljanje

    brisanje

    greku ako ikakva postoji. Puno je bolje otkriti greku sada, dok vam je jo

    Analiza

    Lekciju 9 sam napravio kopiranjem Lekcije 7 i prilagodbom za formu Knjige.Kad sam pokrenuo program, logirao se, preao na formu Knjige, dodao zapis, knjige", OK, pritisnem Azuriraj i otvori se Run-time Error 3021 'No currentRecord'.

    krivom mjestu u Private Sub datKnjige_Validate. Povie retkaIf txtCijena.Text = "" Then

    sam imao dva retka End If:End If

    End If

    If txtCijena.Text = "" Then

    Obrisao sam jedan End If i napisao ga tamo gdje mu je mjesto: End If

    If txtCijena.Text = "" Then

    MsgBox "Molim, tipkajte cijenu knjige"

    txtCijena.SetFocus

    Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    If Val(txtCijena.Text)

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    83/180

    73

    End If

    End Sub

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    84/180

    74

    Lekcija 10Forma Kupci

    Dodajmo formu frmKupci

    1. Kao mnogo puta do sada, dodajte novu formu projektu Ivamar. U prozoruProperties, svojstvo Name promijenite u frmKupci. Pohranite formu podimenom Kupci.frm.

    2.

    Izgradnja forme Kupci

    1. dvije kontrole Frame, sedam Label, sedam TextBox, jednu kontrolu Data ipet CommandButtons.

    2. Tab Index bio ergonomski za korisnika: Frame1, Frame2, Label1, Text1,Label2, Text2, Label3, Text3 itd. Nakon to ste dodali sve kontrole Label iText, dodajte pet gumba i na kraju kontrolu Data1.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    85/180

    75

    3.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    86/180

    76

    Data1:

    Svojstvo Vrijednost (value)

    Name datKupci

    Caption Ivamar kupci

    DatabaseName C:\Ivamar\ivamar.mdb

    EOFAction 0-MoveLast

    RecordsetType 1-Dynaset

    RecordSource Kupci

    Frame1:

    Property Vrijednost (Value)

    Name fraVanjski

    Caption

    TabIndex 0

    Frame2:

    Property Vrijednost (Value)

    Name fraUnutrasnji

    Caption Kupci

    TabIndex 1

    Label1:

    Property Vrijednost (Value)

    Name lblIDkupca

    Caption &ID kupca:TabIndex 2

    Label2:

    Property Vrijednost (Value)

    Name lblIme

    Caption I&me:

    TabIndex 4

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    87/180

    77

    Label3:

    Property Vrijednost (Value)

    Name lblPrezime

    Caption P&rezime:

    TabIndex 6

    Label4:

    Property Vrijednost (Value)

    Name lblUlicaIbroj

    Caption U&lica i broj:

    TabIndex 8

    Label5:

    Property Vrijednost (Value)

    Name lblGrad

    Caption &Grad:

    TabIndex 10

    Label6:

    Property Vrijednost (Value)

    Name lblPostanskiBroj

    Caption Postanski &Broj:

    TabIndex 12

    Label7:

    Property Vrijednost (Value)

    Name lblTelefon

    Caption T&elefon:

    TabIndex 14

    Text1:

    Property Vrijednost (Value)

    Name txtIDkupca

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    88/180

    78

    DataSource datKupci

    DataField IDkupca

    Locked True

    TabIndex 3

    TabStopt False

    Text (nita)

    Text2:

    Property Vrijednost (Value)

    Name txtIme

    DataSource datKupci

    DataField Ime

    MaxLength 20

    TabIndex 5

    Text (nita)

    Text3:

    Property Vrijednost (Value)

    Name txtPrezime

    DataSource datKupci

    DataField Prezime

    MaxLength 30

    TabIndex 7

    Text (nita)

    Text4:

    Property Vrijednost (Value)

    Name txtUlicaIbroj

    DataSource datKupci

    DataField UlicaIbroj

    MaxLength 30

    TabIndex 9

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    89/180

    79

    Text (nita)

    Text5:

    Property Vrijednost (Value)

    Name txtGradDataSource datKupci

    DataField Grad

    MaxLength 30

    TabIndex 11

    Text (nita)

    Text6:

    Property Vrijednost (Value)

    Name txtPostanskiBroj

    DataSource datKupci

    DataField Postanskibroj

    MaxLength 5

    TabIndex 13

    Text (nita)

    Text7:

    Property Vrijednost (Value)

    Name txtTelefon

    DataSource datKupci

    DataField TelefonMaxLength 10

    TabIndex 15

    Text (nita)

    Kontrola Command1

    Property Vrijednost (Value)

    Name cmdDodaj

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    90/180

    80

    Caption &Dodaj

    TabIndex 16

    Kontrola Command2

    Property Vrijednost (Value)Name cmdAzuriraj

    Caption &Azuriraj

    TabIndex 17

    Kontrola Command3

    Property Vrijednost (Value)

    Name cmdObrisiCaption &Obrisi

    TabIndex 18

    Kontrola Command4

    Property Vrijednost (Value)

    Name cmdOdustani

    Caption Od&ustani

    TabIndex 19

    Kontrola Command5

    Property Vrijednost (Value)

    Name cmdIzlaz

    Cancel True

    Caption &Izlaz

    TabIndex 20

    frmKupci:

    Property Vrijednost (Value)

    Name frmKupci

    BorderStyle 3-Fixed Dialog

    Caption Ivamar kupci

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    91/180

    81

    Moveable False

    StartUpPosition 2-Center Screen

    4. Pohranite projekt Ivamar. Vaa forma Kupci izgleda ovako:

    Kodiranje forme Kupci

    Private Sub Form_Activate()

    datKupci.Recordset.MoveLast

    datKupci.Recordset.MoveFirst

    End Sub

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    92/180

    82

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As

    Integer)

    frmGlavniObrazac.Show

    End Sub

    Private Sub datAdministrator_Reposition()

    datKupci.Caption = datKupci.Recordset.AbsolutePosition + 1 & _

    " redak" & _

    " od ukupno " & datKupci.Recordset.RecordCount & _

    " redaka."

    End Sub

    Private Sub datKupci_Validate(Action As Integer, Save As Integer)

    If datKupci.Recordset.EditMode dbEditNone Then

    If txtIme.Text = "" Then

    MsgBox "Molim, tipkajte ime"

    txtIme.SetFocus

    Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    If txtPrezime.Text = "" Then

    MsgBox "Molim, tipkajte prezime"

    txtPrezime.SetFocus Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    If txtUlicaIbroj.Text = "" Then

    MsgBox "Molim, tipkajte ulicu i broj"

    txtUlicaIbroj.SetFocus

    Save = False

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    93/180

    83

    Action = vbDataActionCancel

    Exit Sub

    End If

    If txtGrad.Text = "" Then

    MsgBox "Molim, tipkajte grad"

    txtGrad.SetFocus

    Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    If txtPostanskiBroj.Text = "" Then

    MsgBox "Molim, tipkajte postanski broj"

    txtPostanskiBroj.SetFocus

    Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    If txtTelefon.Text = "" Then

    MsgBox "Molim, tipkajte telefon"

    txtTelefon.SetFocus

    Save = False

    Action = vbDataActionCancel

    Exit Sub

    End If

    End If

    End Sub

    Private Sub txtIme_KeyPress(KeyAscii As Integer)

    If KeyAscii >= 97 And KeyAscii

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    94/180

    84

    Analiza

    txtIDkupca postavili na vrijednost True:

    Locked True

    novi redak dobije automatski svoj redni broj koji je ujedno i IDkupca.

    Private Sub txtPrezime_KeyPress(KeyAscii As Integer)

    If KeyAscii >= 97 And KeyAscii = 97 And KeyAscii = 97 And KeyAscii

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    95/180

    85

    If KeyAscii < 48 or KeyAscii > 57 Then

    KeyAscii = 0

    End If

    End Sub

    Analiza

    U tablici ASCII pod rednim brojem 8 je tipka 'Backspace'. Ovaj redak...If KeyAscii = 8 then exit sub

    vrijediti za tipku broj 8". Ako korisnik pritisne Backspace, Visual Basic izlazi iz

    If KeyAscii < 48 or KeyAscii > 57 Then

    KeyAscii = 0

    Ako ono to korisnik tipka nije broj, poniti: KeyAscii = 0

    iznimnost je dobila posebnim kdom.

    Private Sub txtTelefon_KeyPress(KeyAscii As Integer)

    If KeyAscii = 8 then exit sub

    If KeyAscii < 48 or KeyAscii > 57 Then

    KeyAscii = 0

    End If

    End Sub

    Private Sub cmdDodaj_Click()

    If datKupci.Recordset.EditMode dbEditNone Then

    MsgBox "Molim, zavrsite azuriranje prije nego " & _

    "dodate novi zapis"

    Exit Sub

    End If

    datKupci.Recordset.Edit

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    96/180

    86

    datKupci.UpdateRecord

    datKupci.Recordset.AddNew

    txtIme.SetFocus

    End Sub

    11. cmdOdustani_Click():Private Sub cmdOdustani_Click()

    If datKupci.Recordset.EditMode = dbEditNone Then

    datKupci.UpdateControlsElse

    datKupci.Recordset.CancelUpdate

    End If

    End Sub

    Private Sub cmdObrisi_Click()

    On Error GoTo ErrorHandler

    Dim intRezultat As Integer

    If datKupci.Recordset.EditMode dbEditNone Then

    MsgBox "Ako trenutno dodajete zapis " & _

    "molim, koristite gumb Odustani za prekid " & _

    "dodavanja"

    Exit Sub

    End If

    intRezultat = MsgBox("Zelite obrisati zapis u tablici " & _

    "Kupci?", vbYesNo, "Obrisi zapis u Kupci")

    If intRezultat = vbYes Then

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    97/180

    87

    datKupci.Recordset.Delete

    datKupci.Recordset.MoveNext

    If datKupci.Recordset.EOF Then

    datKupci.Recordset.MovePrevious

    End If

    End If

    Exit Sub

    ErrorHandler:

    Select Case Err.Number

    Case 3200 'Kontrola referencijalnog integriteta

    MsgBox Err.Description

    Exit Sub

    Case Else

    MsgBox Err.Description

    Resume Next

    End Select

    End Sub

    Private Sub cmdIzlaz_Click()

    If datKupci.Recordset.EditMode dbEditNone Then

    MsgBox "Molim, zavrsite vase azuriranje prije " & _

    "zatvaranja obrasca"

    Exit Sub

    End If

    Unload Me

    End Sub

    Private Sub cmdAzuriraj_Click()

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    98/180

    88

    If datKupci.Recordset.EditMode = dbEditAdd Then

    datKupci.Recordset.Update

    Else

    datKupci.Recordset.Edit

    datKupci.Recordset.Update

    End If

    End Sub

    1. Pohranite projekt Ivamar.Kodiranje procedure mnuKupci_Click()Private Sub mnuKupci_Click()

    Me.Hide

    frmKupci.Show

    End Sub

    1. Pohranite projekt Ivamar.2.

    061883. Odaberite naredbu 'Zaposlenici/Pregled/Azuriranje Kupci'. Na bazama podataka gledanjezapisa, dodavanjezapisa, ispravljanje

    brisanje greku ako ikakva postoji. Puno je bolje otkriti greku sada, dok vam je jo

    direktno u Accessu. Odaberite gumb 'Dodaj' i unesite novi zapis. Tipkajtemalim slovima. Visual Basic vaa mala slova konvertira u velika.Ukoliko vam tipkanje nema efekta nakon nekoliko unijetih znakova, znajte posebno.

    projektu Ivamar, formu 'StavkeNarudzbe'.

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    99/180

    89

    Lekcija 11Forma 'StavkeNarudzbe'

    Kreiranje forme StavkeNarudzbe

    1. Dodajte novu formu projektu Ivamar. Promijenite svojstvo NameufrmStavkeNarudzbe. Pohranite novu formu pod imenomStavkeNarudzbe.frm.

    2. U prozoru Project Explorer sad vidite est formi:

    Dodavanje kontrola formi StavkeNarudzbe

    1. Formi StavkeNarudzbe dodajte dvije kontrole Frame, pet Label, osamTextBox, jedan CommandButton i jednu kontrolu Data, kao na slici dolje:

  • 5/26/2018 Ivica Kartelo - Visual Basic Baze Podataka

    100/180

    90

    2. TabIndex napravite tako da se broji redak po redak, sljeva na d