06.01.2013 Views

Datu bāzes

Datu bāzes

Datu bāzes

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

(II DAĻA)<br />

17. FORMAS ___________________________________________________________________________ 130<br />

17.1. FORMAS VEIDOŠANA __________________________________________________________ 130<br />

17.2. FORMAS VEIDOŠANAS – DESIGN SKATS ____________________________________________ 132<br />

17.3. PALĪGLOGI – FIELD LIST, TOOLBOX, PROPERTIES _____________________________________ 133<br />

17.4. TEXT BOX TIPA ELEMENTS ______________________________________________________ 134<br />

17.5. LABEL TIPA ELEMENTS _________________________________________________________ 137<br />

17.6. COMBO BOX TIPA ELEMENTS ____________________________________________________ 137<br />

17.7. QUERY BUILDER IZMANTOŠANA __________________________________________________ 140<br />

17.8. LIST BOX TIPA ELEMENTS _______________________________________________________ 142<br />

17.9. CHECK BOX, OPTION BUTTON, TOGGLE BUTTON TIPA ELEMENTI _________________________ 143<br />

17.10. OPTION GROUP TIPA ELEMENTS _______________________________________________ 143<br />

17.11. COMMAND BUTTON TIPA ELEMENTS ____________________________________________ 145<br />

17.12. IMAGE, UNBOUND OBJECT FRAME, BOUND OBJECT FRAME TIPA ELEMENTI _______________ 146<br />

17.13. LINE, RECTANGLE TIPA ELEMENTI ______________________________________________ 148<br />

17.14. PAGE BREAK UN TAB CONTROL TIPA ELEMENTI ____________________________________ 148<br />

17.15. SUBFORM/SUBREPORT TIPA ELEMENTS __________________________________________ 150<br />

18. PĀRSKATI _________________________________________________________________________ 152<br />

18.1. PĀRSKATA VEIDOŠANA ________________________________________________________ 152<br />

18.2. PRINT PREVIEW SKATS _________________________________________________________ 154<br />

18.3. LAYOUT PREVIEW SKATS _______________________________________________________ 155<br />

18.4. PĀRSKATA VEIDOŠANA – DESIGN SKATS ___________________________________________ 155<br />

18.5. SORTING AND GROUPING PALĪGLOGS ______________________________________________ 157<br />

18.6. GRUPU VEIDOŠANAS PIEMĒRI ___________________________________________________ 158<br />

18.7. APAKŠPĀRSKATI _____________________________________________________________ 161<br />

19. GALVENIE VBA OPERATORI, PAMATELEMENTI _____________________________________ 162<br />

19.1. PROGRAMMĒŠANA VB ________________________________________________________ 162<br />

19.2. MAINĪGIE ___________________________________________________________________ 162<br />

19.3. KOMENTĀRI _________________________________________________________________ 163<br />

19.4. RINDIĽAS TURPINĀJUMS _______________________________________________________ 164<br />

19.5. SALĪDZINĀŠANAS UN LOĢISKIE OPERATORI _________________________________________ 164<br />

19.6. MIJIEDARBĪBA AR LIETOTĀJU ___________________________________________________ 164<br />

19.7. VBA KONSTRUKCIJAS _________________________________________________________ 166<br />

19.8. DARBS AR DATUMU UN LAIKU ___________________________________________________ 171<br />

19.9. FUNKCIJA FORMAT ___________________________________________________________ 172<br />

19.10. DARBĪBAS AR TEKSTU _______________________________________________________ 172<br />

20. VBA PROGRAMĒŠANAS PAMATI ____________________________________________________ 174<br />

20.1. MODUĻI ____________________________________________________________________ 174<br />

21. KODA SAISTĪŠANA AR NOTIKUMIEM FORMĀS UN PĀRSKATOS ______________________ 176<br />

21.1. OBJEKTU NOSAUKUMU VEIDOŠANA _______________________________________________ 176<br />

21.2. DARBĪBAS AR OBJEKTIEM ______________________________________________________ 177<br />

21.3. DOCMD OBJEKTS _____________________________________________________________ 181<br />

21.4. MAKRO VEIDOŠANAS LOGS _____________________________________________________ 181<br />

21.5. MAKRO SARAKSTS ____________________________________________________________ 183<br />

21.6. MAKRO PIEMĒRI _____________________________________________________________ 190<br />

21.7. AUTOEXEC MAKRO UN STARTUP LOGS ____________________________________________ 192<br />

22. SQL VALODAS PAMATI _____________________________________________________________ 194<br />

22.1. SQL _______________________________________________________________________ 194<br />

22.2. DATU DEFINĒŠANA ___________________________________________________________ 196<br />

22.3. DATU PIEPRASĪJUMI ___________________________________________________________ 197<br />

22.4. STATISTISKO FUNKCIJU IZMANTOŠANA SQL ( TOTAL QUERY ) __________________________ 200<br />

22.5. SAIŠU DEFINĒŠANA SQL _______________________________________________________ 202<br />

22.6. APVIENOŠANAS PIEPRASĪJUMI ___________________________________________________ 203<br />

22.7. IELIKTO PIEPRASĪJUMU LIETOŠANA _______________________________________________ 205<br />

22.8. MAKE TABLE QUERY, APPEND QUERY, UPDATE QUERY, DELETE QUERY _________________ 206


22.9. CROSSTAB QUERY ____________________________________________________________ 208<br />

23. IZVĒLES KARTES (MENU) __________________________________________________________ 211<br />

23.1. IZVĒLĽU JOSLAS, RĪKU JOSLAS UN UZNIRSTOŠĀS IZVĒLNES _____________________________ 211<br />

23.2. DARBĪBAS AR IZVĒLNĒM _______________________________________________________ 211<br />

23.3. IZVĒLĽU JOSLAS (MENU) _______________________________________________________ 213<br />

23.4. RĪKU JOSLAS (TOOLBAR) _______________________________________________________ 218<br />

23.5. UZNIRSTOŠĀ IZVĒLNE (SHORTCUT MENU) __________________________________________ 218<br />

24. DATU BĀZES AIZSARDZĪBA ________________________________________________________ 221<br />

24.1. DATU BĀZES REZERVES KOPĒŠANA _______________________________________________ 221<br />

24.2. DATU BĀZES KONVERTĒŠANA – CONVERT DATABASE ________________________________ 221<br />

24.3. DATU BĀZES KOMPAKTĒŠANA – COMPACT DATABASE ________________________________ 221<br />

24.4. DATU BĀZES REMONTS – REPAIR DATABASE _______________________________________ 222<br />

BIBLIOGRĀFIJA _______________________________________________________________________ 223<br />

PIELIKUMI ____________________________________________________________________________ 224<br />

129<br />

© Vladimirs Ivanovs, 2007


17.1. Formas veidošana<br />

17. Formas<br />

Ievērojami vieglāk ir labot un pārveidot jau esošu formu, nekā pašam<br />

veidot formu pilnīgi no jauna (tas pats attiecināms arī uz pārskatiem). Tāpēc,<br />

veidojot jaunu formu, sākuma darbu var uzticēt datoram. Iespējamie formas<br />

veidošanas sākuma varianti:<br />

� <strong>Datu</strong> <strong>bāzes</strong> logā izvēlēties tabulu vai vaicājumu, uz kuru balstīsies<br />

forma.<br />

� Ikonu grupā New Object noklikšķināt AutoForm vai izpildīt<br />

Insert/Auto Form. MS Access automātiski izveidos jaunu formu; pēc<br />

noklusēšanas tā būs vienas kolonnas tipa forma.<br />

� Ikonu grupā New Object noklikšķināt NewForm vai izpildīt<br />

Insert/Form, parādīsies New Form logs.<br />

� <strong>Datu</strong> <strong>bāzes</strong> logā Form nodaļā noklikšķināt uz pogas New – parādās<br />

New Form logs:<br />

17.1.att. Jaunas formas izveide.<br />

Šajā logā no saraksta lodziľā Choose the table or query… jāizvēlas tabula<br />

vai vaicājums, uz kuru balstīsies forma.<br />

Loga augšējā daļā vajadzētu izvēlēties AutoForm: Columnar vai<br />

AutoForm: Tabular un apstiprināt izvēli, noklikšķinot uz OK pogas. Tad<br />

MS Access automātiski izveidos jaunu formu. Izvēloties Form Wizards, atvērsies<br />

formu veidotāja logs:<br />

17.2.att. Jaunas formas izveide ar Wizard.<br />

130<br />

© Vladimirs Ivanovs, 2007


Tālāk, atbildot uz Wizard dialoga jautājumiem, tiks izveidota jauna forma.<br />

Piemēram, ir jāizveido tabulas Orders formu, kurā varēs apskatīt, labot un<br />

pievienot jaunus klientu pasūtījumu datus. Kā ātrāko izvēlas pirmo agrāk<br />

aprakstīto variantu, datu <strong>bāzes</strong> loga Table nodaļā uzklikšķina uz Orders, tad<br />

izpilda Insert/Auto Form vai noklikšķina uz ikonas AutoForm. MS Access neko<br />

vairāk nevaicājot, izveido jaunu formu:<br />

17.3.att. Jaunas formas izveide ar AutoForm.<br />

Jaunizveidotā forma ir vienas kolonnas (Single Column) tipa. Tabulas<br />

Orders lauki ir izvietoti kolonnā, vienlaicīgi ir redzams viens ieraksts.<br />

Formas kreisajā pusē ir ieraksta izvēles taisnstūris (record selector). Šobrīd<br />

uz tā ir zīme<br />

esošais ieraksts, kursors ir novietots šajā ierakstā.<br />

Citi iespējamie ierakstu izvēles taisnstūru apzīmējumi:<br />

jauns ieraksts – nākošais aiz pēdējā ieraksta;<br />

slēgts ieraksts – daudzlietotāju vidē to pašlaik labo kāds cits<br />

lietotājs;<br />

ieraksts tiek labots, izmaiľas vēl nav apstiprinātas.<br />

Formas apakšā ir navigācijas pogas (navigation buttons).<br />

Klikšķinot uz tām, var attiecīgi aiziet uz pirmo, iepriekšējo, nākošo un<br />

pēdējo ierakstu. Ja grib nokļūt, piemēram, uzreiz uz 130. ierakstu, ieraksta kārtas<br />

numura lodziľā (šajā piemērā tur ir 1) jāmin atbilstošais numurs, tātad 130, un<br />

jānospiež Enter.<br />

Ikonu grupā View formām ir trīs ikonas. Noklikšķinot uz izvērses bultiľas,<br />

tās visas parādās saraksta veidā. Šobrīd forma ir atvērta Form View skatā,<br />

attiecīgā ikona atrodas nospiestā stāvoklī.<br />

131<br />

© Vladimirs Ivanovs, 2007


Formas augšā ikonu rindā ir daudzas ikonas, kas pazīstamas jau no darba ar<br />

tabulām: rediģēšanas ikonas Cut, Copy, Paste, Find, kārtošanas ikonas Sort<br />

Ascending un Sort Descending, kā arī filtru ikonas.<br />

Izpildot View/Datasheet View vai klikšķinot uz ikonas Datasheet View, var<br />

pāriet uz datulapas skatu, aplūkot formas avotu, šajā gadījumā tabulu Orders,<br />

datulapas veidā. Šeit var darboties kā jau datulapā – labot, pievienot datus.<br />

17.2. Formas veidošanas – Design skats<br />

Izpildot View/Design View vai klikšķinot uz ikonas Design View, var pāriet<br />

uz formas veidošanas skatu.<br />

Veidošanas skatā formu var veidot vairākas sekcijas. Formai noteikti būs<br />

detaļas (Detail) sekcija – formas galvenā daļa.<br />

Form header un Form footer sekcijās jānovieto tāda veida informācija kā<br />

nosaukums (virsraksts), datums, kolonnu virsraksti, ja detaļas sekcijā lauki tiks<br />

sakārtoti kolonnās. Lai šīs sekcijas pievienotu vai dzēstu, jāizpilda View/Form<br />

Header/Footer. Sekciju dzēšot, tiks dzēsti arī visi sekcijas elementi.<br />

Page header un Page footer sekcijas ir domātas kolonnu virsrakstiem un<br />

lappušu numuriem, ja forma tiek paredzēta drukāšanai. Lai šīs sekcijas<br />

pievienotu vai dzēstu, jāizpilda View/Page Header/Footer. Sekciju dzēšot, tiks<br />

dzēsti arī visi sekcijas elementi.<br />

Lineāls formas augšmalā un kreisajā malā, kā arī režģa punktiľi formas<br />

laukumā palīdz precīzi novietot formas elementus. Lai parādītu vai noľemtu<br />

lineālus un režģi, jāizpilda View/Ruler un View/Grid.<br />

Jaunizveidotā forma sastāv no trīs veidu kontrolelementiem (controls) –<br />

Text Box un Combo Box, kas parāda formas pamata tabulas vai vaicājuma datus,<br />

un Label – iezīmēm jeb uzrakstiem. Iespējami arī citi kontrolelementi, par to būs<br />

runa vēlāk. Turpmāk kontrolelements sauksim vienkārši par elementiem.<br />

Lai veiktu kādas darbības ar elementu, tas ir jāizvēlas, uz tā uzklikšķinot.<br />

Izvēlētais (aktīvais) elements veidošanas skatā iezīmēts ar taisnstūriem. Šajā<br />

piemērā tas ir Text Box tipa elements Order ID.<br />

17.4.att. Text Box tipa elements .<br />

Iezīmētu elementu var pārvietot, mainīt tā izmērus, fontus, krāsu un citas<br />

īpašības.<br />

Ja, iezīmējot vienu elementu, arī citam elementam, šajā gadījumā Label<br />

tipa elementam, parādās viens izvēles taisnstūris pie elementa augšējā kreisā<br />

stūra, tas nozīmē, ka abi elementi ir saistīti; pārvietojot vienu, pārvietosies arī<br />

otrs.<br />

132<br />

© Vladimirs Ivanovs, 2007


Lai pārvietotu elementu, kursors ir jānovieto uz elementa rāmīša tā, lai tas<br />

kļūst par melnu plaukstu. Tajā brīdī elementu var pārvilkt uz jaunu pozīciju, var<br />

arī novietot citā sekcijā.<br />

Ja elementi (Text Box un Label tipa, Combo Box un Label tipa) ir saistīti,<br />

vienu atsevišķi no otra var pārvietot, pārvelkot aiz lielākā iezīmēšanas taisnstūra,<br />

kas atrodas elementa augšējā kreisajā stūrī. Tur nonākot, kursors kļūst par tumšu<br />

plaukstu ar izstieptu rādītājpirkstu.<br />

Lai mainītu elementa izmērus, kursors ir jānovieto uz kāda no iezīmēšanas<br />

taisnstūriem tā, lai tas kļūst par pretējos virzienos vērstu bultiľu pāri. Bultiľas<br />

norāda iespējamo izmēra maiľas virzienu.<br />

Lai vienlaicīgi iezīmētu (un pēc tam pārvietotu vai mainītu izmērus) uzreiz<br />

vairākus elementus, izmanto Shift taustiľu vai ar peli iezīmē visus vajadzīgos<br />

elementus.<br />

17.5.att. Objektu iezīmēšana .<br />

Izpildot Edit/Select All, var iezīmēt visus formas elementus. Iezīmētajam<br />

elementam vai vairākiem iezīmētajiem elementiem īpašības var mainīt,<br />

izmantojot atbilstošu īpašību – Properties logā.<br />

17.3. Palīglogi – Field List, Toolbox, Properties<br />

Veidošanas logā ir iespējami vairāki palīglogi, to izsaukšanu vai<br />

noslēpšanu vada ar izvēles View komandām un ikonām. Ja komandkartē blakus<br />

komandai ir ķeksītis un ja attiecīgā ikona ir nospiesta, palīglogam ir jābūt<br />

atvērtam.<br />

Field List – lauku saraksta logs – uzrāda vaicājuma vai lauku tabulas<br />

nosaukumus, uz ko balstās forma, šajā gadījumā tabulas Orders lauku<br />

nosaukumus.<br />

Logu atver, izpildot View/Field List vai klikšķinot uz attiecīgās ikonas.<br />

17.6.att. Field List logs.<br />

133<br />

© Vladimirs Ivanovs, 2007


Toolbox – rīku logs, uzklikšķinot uz attiecīgām loga ikonām, var sākt jaunu<br />

formas elementu veidošanu.<br />

Formas elementus var veidot patstāvīgi vai ar Control Wizard palīdzību;<br />

tad Control Wizard ikonai rīku logā jābūt nospiestai, kā tas ir šajā piemērā. Logu<br />

atver, izpildot View/Toolbox vai klikšķinot uz attiecīgās ikonas.<br />

17.7.att. Field List logs.<br />

Formas elementu izskata (krāsu, līniju tipa un biezuma u. c.) noformēšanu<br />

var veikt, izmantojot ikonas formatēšanas joslā.<br />

Properties – īpašību logs – uzrāda īpašības izvēlētajam formas elementam<br />

(Control), sekcijai vai visai formai.<br />

Logu atver, izpildot View/Properties vai klikšķinot uz attiecīgās ikonas.<br />

17.8.att. Kontrolementu Properties logs.<br />

Īpašības ir sadalītas nodaļās. Izvēloties noteiktu īpašību nodaļu jeb grupu,<br />

Properties logā būs tikai attiecīgās grupas īpašības.<br />

17.4. Text Box tipa elements<br />

Lai elementu izvēlētos, uz tā jāuzklikšķina. Uzklikšķina uz Text Box<br />

tipa elementa Order ID.<br />

17.9.att. Text Box tipa elements.<br />

134<br />

© Vladimirs Ivanovs, 2007


Text Box tipa elements formā parāda tabulas vai vaicājuma, uz kuru balstās<br />

forma, lauka datus. <strong>Datu</strong>s elementā var rediģēt un pievienot, ja vien elementam<br />

netiek definētas īpašības, kas to aizliedz. Text Box elementā var būt arī aprēķina<br />

ceļā iegūti dati.<br />

Elementa īpašību loga virsrakstā ir tā tips un nosaukums Text Box:<br />

Order ID. Pirmā īpašība Name īpašību logā ir vienkārši elementa nosaukums.<br />

17.10.att. Properties logs Text Box tipa elementam.<br />

Lai redzētu visas Text Box īpašības, noklikšķinām uz nodaļas All:<br />

� Control Source – lauks, kura dati ir šajā objektā.<br />

� Īpašību (no Format līdz Validation Text) nozīme un pielietojums ir<br />

tāds pats kā tabulās. Ja Validation Rule – likumības nosacījumi – ir<br />

jau definēti tabulai, uz ko balstās forma, tad formā tiek pieprasīta šo<br />

noteikumu izpilde. Ja arī formai tiek definēti savi Validation Rule, to<br />

izpilde tiek pieprasīta papildus tabulas likumības nosacījumu<br />

izpildei.<br />

� Status Bar Text – teksts, kas parādās ekrāna apakšā statusa joslā, ja<br />

kursors nokļūst šajā elementā.<br />

� Enter Key Behavior – noklusētā (Default) Enter taustiľa rīcība; pēc<br />

tā nospiešanas kursors pārlec uz nākošo lauku. Ja norāda New Line in<br />

Field, pēc Enter nospiešanas šajā pat elementā tiek izveidota jauna<br />

rindiľa.<br />

� Allow AutoCorrect norāda, vai šajā laukā ievadītais teksts tiek<br />

pārbaudīts. Līdzīgi kā MS Word, MS Access piedāvā iespēju<br />

automātiski labot laukā ievadīto tekstu. Izpildot Tools/AutoCorrect,<br />

135<br />

© Vladimirs Ivanovs, 2007


tiek atvērts AutoCorrect logs, kurā var definēt automātiskās<br />

labošanas nosacījumus.<br />

� Visible nosaka, vai elements ir redzams uz ekrāna. Ar<br />

makrokomandu elementam var piešķirt gan Yes, gan No, tātad pēc<br />

vajadzības padarīt to redzamu vai neredzamu.<br />

� Display When: elements var būt redzams vienmēr – Always, tikai uz<br />

ekrāna – Screen Only, vai neredzams uz ekrāna, bet redzams,<br />

izdrukājot uz papīra, – Print Only.<br />

� Enabled nosaka, vai kursors var apstāties šajā elementā. Ja No, tad<br />

kursoru šajā elementā ieklikšķināt nevar.<br />

� Locked norāda, vai elementā var labot datus. Ja Yes, elementa datus<br />

labot nav iespējams.<br />

� Filter Lookup norāda, vai šajā laukā ievadītajām vērtībām jāparādās<br />

saraksta veidā, izpildot Filter By Form. Iespējamās vērtības:<br />

o Never – laukā ievadītās vērtības netiek parādītas. Tiek dota<br />

iespēja izfiltrēt tukšos ierakstus (Null vērtības).<br />

o Database Default – laukā ievadītās vērtības tiek parādītas<br />

saskaľā ar Filter By Form Defaults iestādījumiem Edit/Find<br />

nodaļā ar Tools/Options izsaucamajā Options logā.<br />

o Always – laukā ievadītās vērtības tiek parādītas vienmēr.<br />

� Auto Tab – izmanto saistībā ar ievadmasku – Input Mask.<br />

� Tab Stop un Tab Index nosaka, vai elementā iespējams lietot<br />

tabulāciju.<br />

� Scroll Bars norāda, vai elementam ir ritjosla.<br />

� Left, Top – attālums no formas kreisās malas un augšas.<br />

� Width, Height – elementa garums un augstums. Šīs četras pēdējās<br />

īpašības parasti tiek noteiktas ar peli, elementu pārvelkot uz<br />

vajadzīgo pozīciju vai mainot tā izmērus.<br />

� Īpašības no Back Color līdz Fore Color nosaka elementa un tā<br />

rāmīša izskatu – krāsu, līnijas veidu un biezumu. Šīs īpašības<br />

elementam (un visai formai) parasti tiek noteiktas, izmantojot Palette<br />

palīglogu.<br />

� Īpašības no Font Name līdz Text Align nosaka elementa fontus un<br />

teksta izlīdzinājumu. Šīs īpašības elementam parasti tiek norādītas,<br />

izmantojot formatēšanas ikonas, kas veidošanas skatā ir formas<br />

ikonu rindā.<br />

� Īpašības no Before Update līdz pat saraksta beigām ir notikumu<br />

īpašības (Event Properties). Sarakstā pieminētajiem notikumiem,<br />

piemēram, kursora nonākšanai elementā vai datu ievades<br />

apstiprinājumam, var piekārtot makrokomandas izpildi.<br />

136<br />

© Vladimirs Ivanovs, 2007


17.5. Label tipa elements<br />

Label tipa elements – iezīme jeb uzraksts – ir vienkārši paskaidrojošs<br />

teksts formā, tas nav saistīts ar datu <strong>bāzes</strong> datiem, un tāpēc tam nav Data un<br />

Event grupu īpašību. Kursors Form View skatā nevar apstāties uz Label<br />

elementa.<br />

Lai apskatītu Label elementa īpašības, uzklikšķina uz Label tipa elementa<br />

ar nosaukumu Label1, kura Caption uzraksts ir Order ID.<br />

17.11.att. Properties logs Label tipa elementam.<br />

Pārejās Label elementa īpašības ir tādas pat kā Text Box elementam.<br />

17.6. Combo Box tipa elements<br />

Combo Box tipa elements vizuāli ir līdzīgs Text Box tipa elementam, tikai<br />

papildus tam ir bultiľa kreisajā malā. Nospiežot bultiľu, parādās saraksts.<br />

Saraksts var saturēt vērtības no citas tabulas (tikko izveidotajā formā, piemēram,<br />

tādi ir CustomerID un EmployeeID) vaicājuma vai vienkārši atsevišķus skaitļus<br />

un vārdus.<br />

Combo Box dod iespēju izvēlēties vērtību no saraksta vai ierakstīt vērtību<br />

pašam.<br />

Piemēram, tabulā Orders katram pasūtījumam atzīmē darbinieka<br />

identifikatoru. Tas ir pietiekami, jo citas ziľas par darbinieku glabā tabulā<br />

Employees. Taču jaunajā formā, kas balstās uz tabulu Orders, būtu neērti, ja<br />

būtu redzams tikai darbinieka identifikators.<br />

Combo Box dod iespēju sarakstā parādīt darbinieka vārdu un uzvārdu, kas<br />

saista darbinieka identifikatoru ar tabulu Orders. Saraksts var parādīt<br />

nozīmīgāko, informatīvāko lauka vai vairāku lauku vērtību, un vienlaikus datu<br />

137<br />

© Vladimirs Ivanovs, 2007


āzē tiks noglabāta cita lauka vērtība, piemēram, darbinieka identifikators, kas<br />

viennozīmīgi nosaka ierakstu.<br />

Ja tomēr vajadzīgā Combo Box formā vēl nav, un tas ir jāizveido, jārīkojas<br />

šādi. Piemēram, izveidosim vēl vienu Combo Box, kas, līdzīgi jau esošajam<br />

Combo Box EmployeeID, parādīs darbinieku sarakstu.<br />

Lai izveidotu Combo Box, rīku logā uzklikšķina uz Combo Box ikonas, tad<br />

formā noklikšķinām vietā, kur elementam jāatrodas.<br />

Ja Control Wizards ikona rīku logā ir nospiesta, MS Access atver Combo<br />

Box Wizard logu:<br />

17.12.att. ComboBox Wizard logs.<br />

Tālāk, atbildot uz Wizard dialoga jautājumiem, tiek izveidots jaunais<br />

Combo Box elements. Apskatīsim, kā to var izveidot patstāvīgi, tāpēc ar Cancel<br />

aizvēr Control Wizard logu.<br />

Elementa īpašību logu aizpilda šādi:<br />

17.13.att. ComboBox uzstādījumu logs.<br />

138<br />

© Vladimirs Ivanovs, 2007


Combo Box tipa elementa lielākā daļa īpašību ir tādas kā Text Box tipa<br />

elementam. Papildus ir šādas īpašības:<br />

� Row Source Type norāda, no kurienes tiek ľemti saraksta dati.<br />

Iespējamās izvēles: Table/Query – sarakstā ir tabulas vai vaicājuma<br />

lauku vērtības, Field List – sarakstā ir tabulas vai vaicājuma lauku<br />

nosaukumi, Value List – sarakstā ir vārdi vai skaitļi, kas uzrakstīti<br />

nākošajā rindā – Row Source.<br />

� Row Source – tabulas vai vaicājuma nosaukums, no kurienes ľem<br />

saraksta datus, vai atsevišķu vārdu un skaitļu saraksts. Tabulas vai<br />

vaicājuma nosaukuma vietā te var būt arī SQL izteiksme.<br />

� Column Count – tabulas vai vaicājumu kolonnu skaits, kas iekļautas<br />

sarakstā. Šajā piemērā Employees tabulā pirmie ir EmployeeID, Last<br />

Name, First Name lauki, tieši tie lauki, kuri vajadzīgi sarakstā.<br />

� Column Heads nosaka, vai sarakstā dati jāparāda ar visiem kolonnu<br />

(lauku) nosaukumiem.<br />

� Column Width norāda, cik platām jābūt saraksta kolonnām. Šajā<br />

piemērā pirmo kolonnu – EmployeeID sarakstā var vispār neparādīt,<br />

tāpēc šīs kolonnas platumu var noteikt kā 0 cm.<br />

� Bound Column parāda, kurā saraksta kolonnā ir lauks, kas saistīts ar<br />

Control Source atzīmēto lauku. Šajā piemērā sarakstu ar tabulu<br />

Orders saista darbinieka identifikators, kas ir saraksta pirmajā<br />

kolonnā.<br />

� List Rows – norādījums, cik rindām jābūt sarakstā.<br />

� List Width nosaka, cik platam jābūt visam sarakstam kopā. Auto<br />

nozīmē paša Combo Box elementa platumu. Vispār saraksta<br />

platumam vajadzētu būt nedaudz lielākam (lai paliek vieta ritjoslai)<br />

par atsevišķu kolonnu platumu (Column Width) summu. Arī šajā<br />

piemērā kopējam platumam jābūt vismaz 4 cm.<br />

� Limit To List nosacījums, vai tiek ļauts elementā ierakstīt vērtību,<br />

kuras nav sarakstā.<br />

� Auto Expand – ja Yes, tikko elementā ieraksta pirmo burtu,<br />

MS Access atrod saraksta pirmo vērtību, kas sākas ar šo burtu, un<br />

ievieto elementā. Uzrakstot nākošo burtu, MS Access atkal sameklē<br />

pirmo atbilstošo saraksta vērtību utt.<br />

Kad Properties logā ir definētas Combo Box elementa īpašības (vienlaikus<br />

var izvēlēties fontus un, piemēram, dot saistītajam Label elementam uzrakstu<br />

Pārdevējs), var pāriet uz Form View skatu un apskatīt izveidoto elementu:<br />

17.14.att. ComboBox piemērs.<br />

139<br />

© Vladimirs Ivanovs, 2007


17.7. Query Builder izmantošana<br />

Tikko izveidotajam Combo Box elementam ir viens būtisks trūkums:<br />

darbinieki sarakstā parādās tabulas atslēgas lauka – EmployeeID – secībā.<br />

Sarakstā darbiniekiem būtu jābūt sakārtotiem alfabēta secībā. Turklāt sarakstā<br />

derētu, piemēram, parādīties informācijai, kurā pilsētā darbinieks strādā.<br />

Tātad kā Row Source šoreiz nevar atzīmēt tabulu Employees, jo lauks City<br />

atrodas tabulas vidū, bet ir nepieciešams noteikt kārtošanu pēc darbinieka<br />

uzvārda un vārda. Šoreiz uz tabulas Employees pamata jāizveido vaicājums, kas<br />

atlasīs vajadzīgos laukus un noteiks ierakstu kārtošanu.<br />

Vispirms Row Source rindā no tabulu saraksta izvēlas tabulu Employees.<br />

Rindas labajā pusē ir poga ar trīs punktiem. Šādas pogas parādīšanās kādā<br />

rindā nozīmē, ka, noklikšķinot šo pogu, izsauks logu, kurā varēs izveidot rindas<br />

saturu.<br />

Šajā gadījumā atvērsies vaicājuma veidotāja – Query Builder – logs, kur,<br />

darbojoties tāpat kā vaicājuma veidošanas skatā, izveidojam vaicājumu:<br />

17.15.att. Query Builder logs.<br />

Darbinieka uzvārdu un vārdu šoreiz apvieno vienā laukā Name, taču lauki<br />

LastName un FirstName vaicājumā tomēr ir vajadzīgi, lai pēc tiem noteiktu<br />

ierakstu kārtošanu. Tomēr atkārtoti sarakstā tiem nav jāparādās, tāpēc Show<br />

rindā tiem nav jābūt atzīmētiem.<br />

Ja šāds vaicājums var noderēt arī citur, tad, izpildot File/Save As,<br />

vaicājumu var saglabāt, to nosaucot. Aizverot Query Builder logu un<br />

atgriežoties formas veidošanas (Design) skatā, Row Source rindā būs<br />

jaunizveidotā vaicājuma nosaukums.<br />

Ja vaicājums veidots tikai Combo Box sarakstam, Query Builder logu<br />

vienkārši aizveram. MS Access pajautās, vai saglabāt izmaiľas, ko apstiprinām<br />

ar Yes:<br />

140<br />

© Vladimirs Ivanovs, 2007


17.16.att. Query Builder paziľojums.<br />

Tagad Row Source rindā ir nevis jaunizveidotā vaicājuma nosaukums, bet<br />

vaicājuma definīcija SQL izteiksmes veidā. Lai labāk varētu apskatīt šo<br />

izteiksmi, ar taustiľu kombināciju Shift + F2 atver Zoom logu:<br />

17.17.att. Zoom logs.<br />

Aizverot Zoom logu, saraksta kolonu skaits un saistītā kolona (Bound<br />

Column) palika tādi, kā bija. Otrā kolona, kur tagad būs darbinieka uzvārds un<br />

vārds, noteikti būs garāka, tāpēc Column Widths rakstīsim 0 cm, 3 cm, 2 cm un<br />

List Width (saraksta kopējo platumu) 5 cm;<br />

Tad izveidoto formu var apskatīt Form View skatā:<br />

17.18.att. Forma Form View skatā.<br />

141<br />

© Vladimirs Ivanovs, 2007


17.8. List Box tipa elements<br />

List Box tipa elements – saraksts, kas atšķirībā no Combo Box ir vienmēr<br />

atvērts. Sarakstu var veidot viena vai vairākas kolonas ar vai bez kolonu<br />

nosaukumiem.<br />

List Box liek izvēlēties vērtību no saraksta, nav iespējams ierakstīt jaunu<br />

vērtību.<br />

List Box līdzīgi Combo Box sniedz iespēju sarakstā parādīt nozīmīgāko,<br />

informatīvāko lauka vai vairāku lauku vērtību un vienlaikus datubāzē noglabāt<br />

cita lauka vērtību, kas viennozīmīgi nosaka ierakstu.<br />

Piemēram, ir jāizveido jaunu List Box tipa elementu, kas būtu saistīts ar<br />

EmployeeID lauku un kurā būtu darbinieku vārdi un uzvārdi, tad to ērti varēs<br />

salīdzināt ar Combo Box.<br />

Lai izveidotu List Box, rīku logā uzklikšķina uz List Box ikonas , tad<br />

formā noklikšķina vietā, kur elementam jāatrodas, un pārvelk, norādot elementa<br />

izmērus (veidojot, jauno elementu patstāvīgi, Control Wizards ikonai rīku logā<br />

nav jābūt nospiestai).<br />

Elementa īpašību logu aizpilda šādi:<br />

17.19.att. List Box īpašību logs.<br />

Pārējās List Box elementa īpašības ir līdzīgas Combo Box un Text Box<br />

elementu īpašībām.<br />

Pārejot Form View skatā, var salīdzināt jaunizveidoto List Box elementu ar<br />

jau agrāk izveidoto Combo Box:<br />

17.20.att. List Box un Combo Box.<br />

142<br />

© Vladimirs Ivanovs, 2007


17.9. Check Box, Option Button, Toggle Button tipa elementi<br />

Check Box, Option Button, Toggle Button tipa elementus izmanto,<br />

lai norādītu, vai situācija ir patiesa (tam atbilst punkts vai krustiľš elementā, vai<br />

nospiesta elementa poga), vai aplama.<br />

Šos elementus parasti izmanto Yes/No tipa laukiem, kaut gan tos var<br />

izmantot arī citu datu tipu laukiem.<br />

Šie trīs elementi atšķiras gandrīz vienīgi ar izskatu. Tā kā Check Box un<br />

Option Button elementos nav iespējama nekāda teksta informācija, šiem<br />

elementiem nav īpašību (Properties), kas nosaka fontus. Uz Toggle Button<br />

elementa var būt gan uzraksts, gan attēls, tāpēc elementam piemīt arī Picture<br />

īpašība.<br />

Check Box un Option Button elementus var izmantot gan formās, gan<br />

atskaitēs.<br />

Lai paātrinātu datu ievadīšanu, ieteicams šiem elementiem norādīt<br />

DefaultValue īpašību.<br />

Pārejās šo elementu īpašības ir līdzīgas Text Box elementu īpašībām.<br />

17.10. Option Group tipa elements<br />

Option Group norāda, ka izvēles grupas tipa elements ir kombinēts<br />

elements. Galvenā daļa ir izvēles rāmis, kurā var būt Check Box, Option Button<br />

vai Toggle Button elementi un paskaidrojošais teksts.<br />

Option Group elementu izmanto, ja laukā ir jāizvēlas kāda no neliela<br />

ierobežota skaita vērtībām.<br />

Piemēram, tabulā Shippers ir pārvadātāju firmu nosaukumi. Ir trīs firmas,<br />

ievadot katru pasūtījumu jānorāda pārvadātājs, respektīvi, jāizvēlas viena no trīs<br />

iespējamajām firmām.<br />

Option Group elementam katra izvēle ir jāsaista ar skaitli, kas tiek<br />

noglabāts datu bāzē.<br />

Piemēram, ir jāizveido jaunu Option Group elementu, kas būtu saistīts ar<br />

ShipVia lauku un kurā būtu pogas pārvadātāju izvēlei.<br />

Lai izveidotu Option Group, rīku logā uzklikšķina uz Option Group ikonas<br />

, tad formā noklikšķina vietā, kur elementam jāatrodas, un pārvelk, norādot<br />

elementa izmērus. Ja Control Wizards ikona rīku logā ir nospiesta, MS Access<br />

atver Option Group Wizard logu:<br />

17.21.att. Option Group wizard.<br />

143<br />

© Vladimirs Ivanovs, 2007


Pirmajā logā ieraksta visas iespējamās izvēles, t. i., pārvadātājfirmu<br />

nosaukumus, tad spied Next pogu.<br />

17.22.att. Option Group wizard – iespēju ievads.<br />

Nākošajā logā norāda, vai kādu no izvēlēm izraudzīties par elementa<br />

noklusēto vērtību, tad nospiež Next pogu.<br />

17.23.att. Option Group wizard – noklusēta vērtība.<br />

Nākošajā logā ieraksta skaitļus, kādi tiks glabāti tabulā atbilstoši izvēlēm,<br />

tad nospiež Next pogu.<br />

17.24.att. Option Group wizard – skaitļu ievads.<br />

144<br />

© Vladimirs Ivanovs, 2007


Nākošajā logā norāda, kurā tabulas Orders laukā tiks glabāti dati, tad<br />

nospiež Next pogu.<br />

17.25.att. Option Group Wizard – lauka izvēle.<br />

Nākošajā logā norāda, kādi elementi – Check Box, Option Button vai<br />

Toggle Button – tiks izmantoti izvēlei un kāds būs izvēles grupas izskats jeb<br />

stils, un tad nospiež Next pogu.<br />

Pēdējā logā ieraksta izvēles grupas elementa režģa uzrakstu Pārvadātājs,<br />

tad nospiež Finish pogu.<br />

17.26.att. Option Group wizard – režģa uzraksts.<br />

Jaunais izvēles grupas Option Group elements ir izveidots. Tepat,<br />

veidošanas skatā, var uzlabot tā izskatu.<br />

17.11. Command Button tipa elements<br />

Command Button tipa elements ir poga , kuru Form View skatā<br />

nospiežot (uzklikšķinot uz tās), MS Access izpilda noteiktu darbību. Piemēram,<br />

nospiežot pogu, tiek atvērta cita forma.<br />

Pogas notikuma īpašībai (parasti īpašībai On Click) tiek piesaistīta makro,<br />

Visual Basic procedūras izpilde vai hipersaite.<br />

145<br />

© Vladimirs Ivanovs, 2007


17.27.att. Command Button tipa elements.<br />

Īpašība Hyperlink Address ir hipersaites adreses galvenā daļa, Hyperlink<br />

SubAddress – hipersaites apakšadrese.<br />

Šajā piemērā klikšķis uz pogas ar hipersaiti atvērs pārskatu Alphabetical<br />

List of Products saskaľā ar īpašības Hyperlink SubAddress iestādījumu.<br />

Uz pogas var novietot:<br />

� attēlu – tas tiek norādīts ar Picture īpašību;<br />

� uzrakstu – tas tiek uzrakstīts Caption īpašības rindā.<br />

17.12. Image, Unbound Object Frame, Bound Object Frame tipa<br />

elementi<br />

Image, Unbound Object Frame un Bound Object Frame tipa elementus<br />

izmanto, lai formās un pārskatos ievietotu attēlus, grafiku, vispār OLE<br />

objektus.<br />

Image un Unbound Object Frame attēlo objektus, kas netiek saistīti ar<br />

MS Access datu <strong>bāzes</strong> datiem, tie ir vieni un tie paši visiem ierakstiem.<br />

Nesaistītos attēlus izmanto, lai, piemēram, formas vai pārskata virsraksta daļā<br />

ievietotu firmas logo attēlu.<br />

Bound Object Frame attēlo objektus, kurus uzglabā MS Access datu bāzē<br />

kopā ar datiem, katram tabulas ierakstam ir savs atšķirīgs objekts. Piemēram,<br />

darbinieku fotoattēli Northwind datu <strong>bāzes</strong> tabulas Employees laukā Photo.<br />

Šie elementi ļauj rediģēt vai izveidot jaunus objektus MS Access vidē,<br />

izsaucot programmu, ar kuru objekts radīts.<br />

Vai nesaistīta objekta (piemēram, attēla) ievietošanai formā vajadzētu<br />

izmantot Image vai Unbound Object Frame elementu, ir atkarīgs no tā, vai attēlu<br />

reizēm ir nepieciešams mainīt, rediģēt. Ja ik pēc laika attēlu vajag mainīt, attēls<br />

ir jāievieto kā Unbound Object Frame. Tad formas veidošanas skatā ar<br />

dubultklikšķi uz attēla tiks atvērta grafiskā programma, ar kuru šis attēls ir<br />

146<br />

© Vladimirs Ivanovs, 2007


izveidots. Tomēr lielākajai daļai nesaistīto objektu acīmredzot piemērotāks būs<br />

Image elements, jo formas ar Image elementiem tiek ielasītas krietni ātrāk nekā<br />

ar Unbound Object Frame elementiem.<br />

Formā vai pārskatā attēli var tikt ievietoti, vai arī piesaistīti (link). Ja attēls<br />

(vai objekts vispār) tiek ievietots, MS Access noglabā attēlu datu bāzē, un tas<br />

kļūst par datu <strong>bāzes</strong> sastāvdaļu.<br />

Ja attēls tiek saistīts ar datu bāzi, tad gadījumā, ja attēlu no MS Access<br />

rediģē, ar to tiek izmainīts attēla oriģināls vietā, kur tas atrodas. Oriģinālo attēlu<br />

var tāpat izmainīt atsevišķi, izmantojot kādu grafisko programmu. Attēla<br />

izmaiľas datu bāzē parādīsies, ja forma vai pārskats tiks atvērti nākošreiz. Attēla<br />

saistīšana ir ērtāka, ja attēla izmēri (baitos) ir ļoti lieli un ja vienu grafisko failu<br />

izmanto vairākās datu <strong>bāzes</strong> formās un pārskatos. Taču jāievēro, ka, pārvietojot<br />

saistītā attēla oriģināla failu uz citu mapi, saite ir jāatjauno.<br />

Piemēram, ir jāizveido Unbound Object Frame elementu jaunizveidotās<br />

formas Form Header sekcijā. Ievietotais objekts būs bitmap tipa attēls<br />

setup.bmp, kas atrodams standarta Windows katalogā.<br />

Vispirms formā jāizveido Form Header sekcija. Izpildot View/Form<br />

Header/Footer, formā parādās gan Form Header, gan Form Footer sekcijas.<br />

Lai izveidotu Unbound Object Frame, rīku logā uzklikšķina uz Unbound<br />

Object Frame ikonas, tad formā noklikšķina Form Header sekcijas augšējā<br />

kreisajā stūrī un pārvelk, norādot elementa izmērus. MS Access atver Insert<br />

Object logu:<br />

17.28.att. Insert Object logs.<br />

Ja Insert Object logā izvēlas Create New, t. i., izveidot jaunu objektu, tad<br />

Object Type logā no saraksta jāizvēlas objekta veids:<br />

17.29.att. Object Type logs.<br />

147<br />

© Vladimirs Ivanovs, 2007


Tālāk nospiežot OK pogu, MS Access atvērs attiecīgās aplikācijas logu.<br />

Ja Insert Object logā izvēlas Create from File, t. i., ievietot objektu, kas jau<br />

ir izveidots, tad File lodziľā jāieraksta faila nosaukums un ceļš uz to, kā tas<br />

izdarīts nesen redzētajā attēlā.<br />

Nospiežot OK pogu, MS Access attēlu ievietos formas Header sekcijā.<br />

17.30.att. Attēls Header sekcijā.<br />

Object Frame elementiem ir vairākas specifiskas īpašības. Pieminēsim<br />

īpašību Auto Activate ar vērtību Double-Click. Tas norāda, ka Design skatā,<br />

izpildot dubultklikšķi uz šī elementa, tiks atvērta programma, ar ko objekts ir<br />

izveidots.<br />

17.13. Line, Rectangle tipa elementi<br />

Line un Rectangle tipa elementi ir līnija un taisnstūris.<br />

Šos elementus izmanto, lai grupētu informāciju, lai pasvītrotu svarīgāko un<br />

lai padarītu formu vai atskaiti līdzīgu parauga dokumentam. Taisnstūri<br />

novietojot citu elementu fonā, var radīt ēnas efektu. Veidojot taisnstūri un līniju,<br />

noderīgas ir formatēšanas joslas ikonas Line/Border Width, Special Effect.<br />

Ja taisnstūri novelk pāri citiem elementiem, taisnstūris šos elementus<br />

(izľemot List Box un Subform) var noslēpt, ja tam ar formatēšanas joslas ikonas<br />

Fill/Back Color palīdzību nosaka fona krāsu, kas ir atšķirīga no Transparent.<br />

Taisnstūri var novietot fonā, izpildot Format/Send to Back, vai padarīt taisnstūri<br />

caurspīdīgu, nosakot tam BackStyle īpašībai vērtību Transparent.<br />

17.14. Page Break un Tab Control tipa elementi<br />

Ir divi veidi, kā izveidot formu, kas sastāv no vairākām lappusēm. Var<br />

lietot tabulatora (Tab Control) vai lappuses pārtraukuma (Page Break)<br />

elementus .<br />

Ērtākais un efektīvākais veids ir izmantot Tab Control. Šajā gadījumā<br />

atsevišķās lappuses visas atrodas viena kontrolelementa ietvaros, un<br />

pārslēgšanās no vienas lappuses uz otru notiek, noklikšķinot uz tabulatora<br />

ļipiľas.<br />

Tabulatora elements ir īpaši noderīgs, ja formā nepieciešams izvietot<br />

daudzus elementus, kurus var sadalīt divās vai vairākās grupās. Piemērs ir<br />

148<br />

© Vladimirs Ivanovs, 2007


Northwind datu <strong>bāzes</strong> formas Employees informācija par darbinieku sadalījumu<br />

vispārējā (Company Info) un personīgajā (Personal Info) daļā.<br />

17.31.att. Tab Control piemērs.<br />

Lai izveidotu Tab Control elementu, rīku logā jāuzklikšķina uz Tab<br />

Control ikonas, tad vajadzīgajā vietā formā jānoklikšķina un jāpārvelk, norādot<br />

elementa izmērus.<br />

Lai ievietotu elementus tabulatora lappusē, jānoklikšķina uz vajadzīgās<br />

tabulatora lappuses ļipiľas. Tad var ievietot elementus, izmantojot kādu no<br />

šādām darbībām:<br />

� izmantojot rīku logu, parastajā veidā tabulatora lappusē izveidot<br />

vajadzīgos elementus;<br />

� no lauku saraksta – Field List – loga pārvilkt vajadzīgos laukus uz<br />

tabulatora lappusi;<br />

� no citas formas daļas vai no citas lappuses pārkopēt elementus. Taču<br />

nav iespējams elementus pārvietot uz tabulatora lappusi, tos<br />

pārvelkot.<br />

Lai tabulatoram pievienotu lappusi, izmainītu lappušu secību vai izdzēstu<br />

kādu lappusi, ar peles labo pogu jānoklikšķina uz Tab Control robežas un no<br />

komandkartes, kas atvērsies, jāizvēlas attiecīgi Insert Page, Page Order vai<br />

Delete Page.<br />

Ja maina visa tabulatora elementa izmērus, ir jāpārliecinās par katras<br />

tabulatora lappuses elementu izvietojumu un izmēriem.<br />

Lappuses pārtraukuma Page Break elementu izmanto, lai norādītu<br />

horizontālo līniju, kur formu sadalīs atsevišķās lappusēs. Piemērs ir Northwind<br />

datu <strong>bāzes</strong> formas Employees (page break) informācija par darbinieku<br />

sadalījumu vispārējā (Company Info) un personīgajā (Personal Info) daļā.<br />

Nospiežot tastatūras PageUp vai PageDown taustiľus, notiek pārvietošanās<br />

starp lappusēm pirms un pēc lappuses pārtraukuma elementa. Papildus šajā<br />

piemērā pārvietošanos starp lappusēm nodrošina arī makro komandas, kas<br />

piekārtotas pogām Company Info un Personal Info.<br />

149<br />

© Vladimirs Ivanovs, 2007


17.15. Subform/Subreport tipa elements<br />

Subform tipa elements ir formā ievietota cita forma (apakšforma), kas<br />

parasti ar vienu vai vairākiem laukiem ir saistīta ar galveno formu.<br />

Forma ar tajā iekļautu apakšformu parasti lieto one-to-many saites starp<br />

tabulām.<br />

Piemēram, katram ierakstam no Orders tabulas var atbilst vairāki ieraksti<br />

no Order Details tabulas.<br />

Šobrīd izveidotā forma satur tikai pasūtījumu kopējo informāciju.<br />

Piemēram, jāizveido apakšformu, kurā būs informācija par pasūtītajiem<br />

produktiem no tabulas Order Details.<br />

Formu ar tajā iekļautu apakšformu ērti var izveidot, izmantojot Form<br />

Wizards.<br />

Ja galvenā forma jau ir izveidota, tad jāizveido apakšforma kā parasta<br />

forma un pēc tam tā jāiekļauj galvenajā formā.<br />

Galvenajai formai noteikti jābūt ar īpašību Default View = Single Form,<br />

t. i., apakšformu var pievienot galvenajai formai tikai viena ieraksta skatā.<br />

17.32.att. Formas īpašība Default View.<br />

Apakšformu galvenajā formā iekļauj datulapas veidā, t. i., apakšformai<br />

īpašība Default View būs Datasheet. Tāpēc var izvēlēties ātrāko formas<br />

veidošanas ceļu – datu <strong>bāzes</strong> logā Table nodaļā izvēlas tabulu Order Details, tad<br />

noklikšķina AutoForm ikonu, un MS Access izveido jaunu formu. Aizver jauno<br />

formu, saglabājot to, piemēram Order Details.<br />

Lai izveidotu apakšformu, rīku logā uzklikšķina uz Subform/Subreport<br />

ikonas, tad noklikšķina formas apakšējā daļā un pārvelk, norādot apakšformas<br />

izmērus:<br />

150<br />

© Vladimirs Ivanovs, 2007


17.33.att. Apakšformas īpašība Source Object.<br />

Apakšformu galvenajā formā var ievietot datu <strong>bāzes</strong> logā, uzklikšķinot uz<br />

apakšformas nosaukuma un pārvelkot to galvenās formas logā, kas ir atvērts<br />

veidošanas skatā.<br />

Subform/Subreport elementam īpašību logā kā īpašība Source Object ir<br />

jānorāda izveidotās formas nosaukums – Order Details.<br />

Kad tas izdarīts, MS Access pats nosaka īpašības Link Child Fields un Link<br />

Master Fields.<br />

Link Child Fields ir viens vai vairāki lauki, pēc kuriem apakšformas dati<br />

būs saistīti ar galvenās formas datiem. Attiecīgi saistīto galvenās formas lauku<br />

vai elementu nosaukumus norāda Link Master Fields. Formas saistošajiem<br />

laukiem noteikti jābūt viena datu tipa (Text, LongInteger u. c.) laukiem.<br />

Ja netiek norādīti Link Child Fields un Link Master Fields, formas darbojas<br />

neatkarīgi viena no otras.<br />

Tagad var pāriet uz Form View skatu un pārbaudīt, kā darbojas forma kopā<br />

ar apakšformu.<br />

Jāpiebilst, ka pirms tam ir vērts pārvietot, sabīdīt kopā un izdzēst liekos<br />

formas elementus, lai padarītu formu pārskatāmāku.<br />

Protams, formā būtu vēl daudz kas veicams, lai nodrošinātu ērtu datu<br />

ievadīšanu un caurskatīšanu. Ļoti ieteicams izpētīt parauga datu bāzē Northwind<br />

izveidotās formas un tur pasmelties idejas nepieciešamo formu izveidošanai.<br />

151<br />

© Vladimirs Ivanovs, 2007


18.1. Pārskata veidošana<br />

18. Pārskati<br />

Tāpat kā veidojot formas, vieglāk ir pielabot, pārveidot jau esošu pārskatu,<br />

nekā pašam veidot pārskatu pilnīgi no jauna. Tāpēc, jaunu pārskatu veidojot,<br />

sākuma darbu labāk uzticēt datoram. Iespējamie pārskata veidošanas sākuma<br />

varianti:<br />

� <strong>Datu</strong> <strong>bāzes</strong> logā izvēlēties tabulu vai vaicājumu, uz kuru balstīsies<br />

forma.<br />

� Ikonu grupā New Object noklikšķināt AutoReport vai izpildīt<br />

Insert/Auto Report. MS Access automātiski izveidos jaunu pārskatu; pēc<br />

noklusēšanas tas būs vienas kolonnas tipa pārskats.<br />

� Ikonu grupā New Object noklikšķināt NewReport vai izpildīt<br />

Insert/Report, parādīsies New Report logs.<br />

� <strong>Datu</strong> <strong>bāzes</strong> logā Report nodaļā noklikšķināt uz pogas New, parādās New<br />

Report logs:<br />

18.1.att. Pārskata izveide.<br />

Šajā logā no saraksta lodziľā Choose the table or query… jāizvēlas tabula<br />

vai vaicājums, uz kura balstīsies pārskats.<br />

Loga augšējā daļā vajadzētu izvēlēties AutoReport: Columnar vai<br />

AutoReport: Tabular un apstiprināt, noklikšķinot uz OK pogas. Tad MS Access<br />

automātiski izveidos jaunu formu. Izvēloties kādu no Wizards, atvērsies<br />

pārskatu veidotāja logs, atbildot uz veidotāja dialoga jautājumiem, izveidosies<br />

jauns pārskats.<br />

Piemēram, ir jāizveido jaunu pārskatu, balstoties uz iepriekš izveidoto<br />

vaicājumu _Klientu pasūtījumu summas. Pārskatā būs katras firmas pasūtījumu<br />

summas, gada kopējās summas un kopējais pasūtījumu apjoms.<br />

Izmantojot pēdējo pieminēto metodi:<br />

� datu <strong>bāzes</strong> loga Report nodaļā nospiež New pogu;<br />

152<br />

© Vladimirs Ivanovs, 2007


� New Report logā no tabulu un vaicājumu saraksta izvēlas _Klientu<br />

pasūtījumu summas, tad atzīmē Report Wizard un nospiež OK pogu;<br />

� Report Wizard pirmajā logā jānorāda pārskatā nepieciešamie lauki to<br />

secībā; lodziľā Selected Fields novieto visus vaicājuma laukus, tad<br />

nospiež Next pogu;<br />

� nākošajā Wizard logā jānorāda lauki, pēc kuriem grupēs datus;<br />

lodziľā pa labi novieto laukus Company Name un Order Date.<br />

Noklikšķinot pogu Grouping Options, tiek atvērts Grouping<br />

Intervals logs kurā jānorāda lauku grupēšanas veids, pēc kuriem<br />

iepriekšējā logā ir noteikta datu grupēšana. Laukam Company Name<br />

atstāj grupēšanas veidu Normal, laukam Order Date no saraksta<br />

izvēlas Year, ar OK apstiprina, tad nospiež Next pogu:<br />

18.2.att. Grouping Intervals logs.<br />

� nākošajā Wizard logā jānorāda lauki, pēc kuriem kārtos datus grupas<br />

iekšienē, un jānosaka, vai pēc šiem laukiem nepieciešams summēt,<br />

rēķināt vidējo vērtību u. c. Šajā logā šoreiz neko neaizpilda un<br />

nospiež Next pogu;<br />

� nākošajā Wizard logā jānorāda pārskata izkārtojums. Var atstāt jau<br />

iezīmēto pirmo izvēli. Jānorāda arī lapas orientācija. Piemēra<br />

pārskatā nebūs daudz lauku, tāpēc izvēlas Portrait. Citiem<br />

pārskatiem būtiski būtu atzīmēt Adjust the field width so all fields fit<br />

on a page (ja pārskatā ir daudz lauku un visiem vajadzētu ietilpt<br />

vienas lapas ietvaros), tad nospiež Next pogu;<br />

� nākošajā Wizard logā jānorāda pārskata stils, var atstāt MS Access<br />

piedāvāto;<br />

� pēdējā Wizard logā, izvēlas, vai caurskatīt pārskata datus (Preview<br />

the report), vai ķerties pie pārskata uzlabošanas veidošanas skatā<br />

(Modify the report’s design). Izvēloties pirmo, var apskatīt rezultātu.<br />

� Lai beigtu dialogu un MS Access izveidotu pārskatu, nospiež Finish<br />

pogu. MS Access atver jaunizveidoto pārskatu Print Preview –<br />

izdrukas priekšskatā.<br />

153<br />

© Vladimirs Ivanovs, 2007


18.2. Print Preview skats<br />

Print Preview ir pārskats – attēls uz ekrāna, kāds tas izskatīsies izdrukāts uz<br />

papīra, tāpēc nekādas darbības ar datiem šeit nav iespējamas.<br />

18.3.att. Print Preview skats.<br />

No pārskata veidošanas skata Print Preview skats ir atverams, izpildot<br />

File/Print Preview vai View/Print Preview vai klikšķinot uz attiecīgās ikonas<br />

.<br />

Print Preview ikonu josla ir atrodama gan View ikonu grupā, gan kā<br />

atsevišķa ikona.<br />

Print Preview skatā, klikšķinot uz Zoom ikonas vai vienkārši uz<br />

pārskata lapas attēla, var apskatīt palielinātu vai samazinātu pārskatu.<br />

Klikšķinot uz ikonām:<br />

� One Page,<br />

� Two Pages,<br />

� Multiple Pages<br />

pārskatu var apskatīt attiecīgi ik pa vienai vai divām lappusēm, vai ar norādītu<br />

lappušu skaitu.<br />

Izpildot File/Page Setup, parādās Page Setup logs, kurā var norādīt<br />

drukāšanas parametrus.<br />

Klikšķinot uz Print ikonas, uzreiz visu pārskatu var nosūtīt izdrukai.<br />

Izpildot File/Print, atvēras Print logs, un tikai pēc izdrukas apstiprināšanas ar<br />

OK pārskats vai pārskata daļu nosūta izdrukai.<br />

154<br />

© Vladimirs Ivanovs, 2007


Izpildot File/Close vai klikšķinot uz Close ikonas , vienkārši aizverot<br />

pārskata logu vai arī izpildot File/Print Preview, var aizvērt Print Preview skata<br />

logu.<br />

Izveidoto pārskatu var saglabāt, piem., ar nosaukumu _Klientu pasūtījumu<br />

summas.<br />

Design skatā var pilnveidot pārskata izskatu. Lai to izdarītu, datu <strong>bāzes</strong><br />

logā izvēlas pārskatu un nospiež Design pogu. MS Access atver veidošanas skata<br />

logu.<br />

18.3. Layout Preview skats<br />

Lai apskatītu, kā izskatās šis pats pārskats Layout Preview skatā, izpilda<br />

View/Layout Preview vai noklikšķina uz ikonas:<br />

18.4.att. Layout Preview skats.<br />

Layout Preview skats paredzēts, lai, veidojot pārskatu, ātri varētu<br />

pārslēgties un apskatīt pārskata vispārējo izskatu, fontus, lauku izvietojumu.<br />

Print Preview skatā vienmēr parāda visu pārskatu ar visiem datiem. Ja pārskats<br />

ir sarežģīts, tas var ilgt vairākas minūtes. Turpretī Layout Preview skata<br />

galvenais uzdevums ir parādīt pārskata izskatu ar visām sekcijām un ierakstu<br />

grupām, parādot tikai ierobežotu ierakstu daudzumu, vienu vai vairākus<br />

ierakstus katrai grupai.<br />

Layout Preview logs pieejams tikai no pārskata Design skata. Layout<br />

Preview logs līdzīgs Print Preview logam, tajā pieejamas tās pašas ikonas.<br />

Noklikšķinot uz Close Window ikonas, var atgriezties Design skatā.<br />

18.4. Pārskata veidošana – Design skats<br />

Pārskati izmanto tos pašus kontrolelementus kā formas, pārskata<br />

veidošanas (Design) logs izskatās līdzīgs formas veidošanas logam.<br />

155<br />

© Vladimirs Ivanovs, 2007


18.5.att. Pārskats Design skatā.<br />

MS Access izveidojis divus noderīgus Text Box elementus Page Footer<br />

sekcijā:<br />

� elements, kuram īpašība Control Source ir =Now( ), norāda uz<br />

pārskata izdrukas datumu un (atkarībā no Format īpašības) arī laiku;<br />

� elements, v īpašība Control Source ir ="Page " & [Page] & " of " &<br />

[Pages], norāda uz lappuses numuru izdrukā un kopējo lappušu<br />

skaitu.<br />

Bez jau zināmajām īpašībām Text Box elementiem pārskatos vēl var<br />

definēt:<br />

� Hide Duplicates – vai elementu padarīt neredzamu, ja tā vērtība ir<br />

tāda pati, kā iepriekšējam ierakstam;<br />

� Running Sum – vai elements summē un parāda lauka esošo vērtību<br />

summu. Iespējamās vērtības: No – elements uzrāda ieraksta vērtību,<br />

Over group – elements uzrāda esošo vērtību summu grupas ietvaros,<br />

Over All – elements uzrāda esošo summu visa pārskata garumā;<br />

� Can Grow, Can Shrink – vai elements var palielināties (Grow) vai<br />

samazināties (Shrink) vertikālā virzienā, lai viss teksts tajā būtu<br />

redzams pārskatā un lai nebūtu tukšu līniju. Palielinās tikai paša<br />

elementa izmēri, attālumi starp elementiem nemainās. Šo īpašību<br />

varēja definēt jau formās, taču tā attiecināma tikai uz formu izdruku.<br />

Pārskata elementiem nav Event Properties, jo pārskatā nav iespējams<br />

darboties ar datiem, noklikšķināt peli uz kāda pārskata elementa. Tomēr<br />

jāpiebilst, ka Event Properties var būt pašam pārskatam un tā sekcijām.<br />

Pārskata sekcijām ir šādas noderīgas īpašības:<br />

� Keep Together norāda, vai visai sekcijai jāatrodas uz vienas lapas;<br />

156<br />

© Vladimirs Ivanovs, 2007


� Force New Page nosaka, vai, sākot izdrukāt sekciju, ir nepieciešama<br />

jauna lapa. Atbilde pēc noklusēšanas ir None – sekcija nav jāatdala<br />

ar tukšu lapu.<br />

Pārskata veidošanas skatā ir pieejami tie paši palīglogi:<br />

� Field List – lauku saraksta logs;<br />

� Properties – īpašību logs;<br />

� Toolbox – rīku logs.<br />

18.5. Sorting and Grouping palīglogs<br />

Pārskata veidošanas skatā pieejams vēl viens palīglogs – Sorting and<br />

Grouping – kārtošanas un grupēšanas logs.<br />

Logu atver, izpildot View/Sorting and Grouping vai klikšķinot uz<br />

ikonas.<br />

Logā norāda, kā tiks sakārtoti un sagrupēti pārskata avota – tabulas vai<br />

vaicājuma – ieraksti. Ja kārtošanu norāda šeit, pārskatā, tad pārskata avota<br />

vaicājumam kārtošanu var neuzrādīt vispār.<br />

Sorting and Grouping logā jānorāda:<br />

� loga augšējā daļā – pēc kāda lauka vai izteiksmes ieraksti tiks grupēti<br />

un kādā secībā (Ascending vai Descending);<br />

� loga apakšējā daļā – vai izvēlētajam laukam vajadzīga Header un<br />

Footer sekcija, tajās atradīsies visai grupai kopējie virsraksti un<br />

starpsummas;<br />

� pie Group On jānorāda ierakstu grupēšanas veids. Visa datu tipa<br />

laukiem iespējams grupēt katru ierakstu ( Each Record). <strong>Datu</strong>ma tipa<br />

laukus iespējams grupēt pēc gada, kvartāla, mēneša, nedēļas, dienas,<br />

stundas, minūtes:<br />

18.6.att. Sorting and Grouping logs.<br />

157<br />

© Vladimirs Ivanovs, 2007


� skaitliskos laukus var grupēt pēc Interval (skaitļu intervāla), ko<br />

norāda zemāk pie Group Interval. Teksta laukus var grupēt pēc<br />

Prefix Characters (pēc viena vai vairākiem pirmajiem burtiem);<br />

� Keep Together norāda, vai visiem grupas ierakstiem uz papīra ir<br />

jāatrodas vienā lappusē.<br />

18.6. Grupu veidošanas piemēri<br />

Atskaišu priekšrocība ir iespēja dažādā veidā grupēt un kombinēt datus,<br />

sarēķināt datu grupām summas, maksimālās vērtības utt.<br />

Vispār summēšanas elementu izveidošanu varēja pieprasīt, darbojoties ar<br />

pārskata veidotāju. Taču arī tagad pārskatam var pievienot šādus elementus.<br />

Elementi, kas parāda kādas grupas summu, vidējo vērtību utt., ir jānovieto<br />

grupas Header vai Footer sekcijās.<br />

Piemēri:<br />

1. OrderDate Header sekcijā izveido jaunu Text Box elementu, kurā parādīsies<br />

pasūtījumu summas pa gadiem – šoreiz summa būs grupas sākumā. Ir dažādi<br />

veidi, kā OrderDate Header sekcijā izveidot jaunu Text Box elementu:<br />

� noklikšķina rīku logā uz Text Box ikonas, tad ieklikšķina pārskata<br />

OrderDate Header sekcijā, izveidojot jaunu elementu;<br />

� lauku saraksta (Field List) logā uzklikšķina laukam Summa, tad to<br />

pārvilkt uz OrderDate Header sekciju;<br />

� Detail sekcijā uzklikšķina Text Box elementam Summa un izpilda<br />

Edit/Duplicate. Elementu nokopēs, jauno nokopēto elementu pārvelk uz<br />

OrderDate Header sekciju.<br />

Jaunajam elementam īpašība Control Source ir jāieraksta =Sum([Summa]).<br />

Lai summa uz papīra parādītos piemērotā formātā, nosaka, ka īpašība Format ir<br />

Currency un īpašība Decimal Places ir 2.<br />

18.7.att. Grupu veidošana, Design skats.<br />

158<br />

© Vladimirs Ivanovs, 2007


Apskatot pārskatu Print Preview skatā:<br />

18.8.att. Grupu veidošana, PrintPreview skats.<br />

2. Summēšanas pa firmām pievienošana pārskatam.<br />

Vispirms atver Sorting and Grouping logu. Lauka CompanyName īpašība<br />

Group Header ir Yes, īpašība Group Footer ir No. Īpašību Group Footer<br />

nomainot uz Yes, pārskatā parādās jauna sekcija CompanyName Footer.<br />

Ar Edit/Duplicate nokopē un šajā sekcijā pārvelk Text Box elementa<br />

CompanyName kopiju no CompanyName Header sekcijas. Nokopē arī<br />

summēšanas Text Box elementu no OrderDate Header sekcijas, tā kopiju<br />

pārvelk uz sekciju CompanyName Footer.<br />

Apskatot pārskatu Print Preview skatā:<br />

18.9.att. Summēšana pa firmām, PrintPreview skats.<br />

3. Vēlreiz pārveidojot pārskatu. Piemēram, parādīsies tikai summas pa<br />

gadiem, bet atsevišķu pasūtījumu parādīšanu var atcelt.<br />

159<br />

© Vladimirs Ivanovs, 2007


Var pievienot datu grupēšanu pa valstīm. Lauka Country vaicājumā, uz ko<br />

pamatojas pārskats, pašlaik nav. Vispirms lauks Country ir jāpievieno pārskata<br />

avota vaicājumam. To var izdarīt divējādi:<br />

� pāriet uz datu <strong>bāzes</strong> logu, Query nodaļā izvēlēties vaicājumu<br />

_Klientu pasūtījumu summas, tad Design skatā QBE režģī pievienot<br />

tabulas Customers lauku Country. Vaicājumu aizvērt, to saglabājot,<br />

tad atgriezties pārskata veidošanas logā;<br />

� pārskata Design skatā, aizpildot Edit/Select Report vai ieklikšķinot<br />

pārskata veidošanas logā ārpus pārskata aizľemtā laukuma, vai<br />

noklikšķinot uz nelielā taisnstūra pārskata veidošanas loga augšējā<br />

kreisajā stūrī, izvēlēties pārskatu. Tad pārskata Properties logā<br />

Control Source īpašībai uzklikšķināt labajā pusē uz trīs punktu<br />

pogas – atvērsies Query Builder logs. Query Builder logā tāpat kā<br />

vaicājuma Design skatā pievienot tabulas Customers lauku Country.<br />

Query Builder logu aizvērt, vaicājumu saglabājot.<br />

Tagad Sorting and Grouping logs jāizmaina šādi:<br />

18.10.att. Sorting and Grouping logs.<br />

Pārskatam Country Footer sekcijā jāpievieno Text Box elements, kura<br />

Control Source ir Country. Grupas Country Footer sekcijā jānovieto arī<br />

elements =Sum([Summa]), nokopējot kādu no jau esošajiem summēšanas<br />

elementiem.<br />

18.11.att. Text Box elementa pievienošana.<br />

160<br />

© Vladimirs Ivanovs, 2007


Apskatot pārskatu Print Preview skatā:<br />

18.7. Apakšpārskati<br />

18.12.att. Print Preview skats.<br />

Tāpat kā formās, arī pārskatos var ievietot apakšpārskatus. Galvenais<br />

pārskats var saturēt vairākus apakšpārskatus. Iespējami 2 savstarpējās<br />

ievietošanas līmeľi: pārskats var saturēt apakšpārskatu, kuram savukārt var būt<br />

savs apakšpārskats. Kā apakšpārskatus galvenajā pārskatā var ievietot ne tikai<br />

pārskatus, bet arī formas.<br />

161<br />

© Vladimirs Ivanovs, 2007


19. Galvenie VBA operatori, pamatelementi<br />

19.1. Programmēšana VB<br />

Programmēšanu Access’ā nodrošina Visual Basic for Application (VBA).<br />

Pamatā programmēšanas valodas Access’ā, Excelī un VB ir vienādas, atšķiras<br />

tikai iebūvētās funkcijas, kas nodrošina katras programmas specifikas.<br />

Piemēram, Excelī ir Workbook objekti, Access’ā ir Recordset objekti utt. Arī<br />

katram objektam ir atbilstošās īpašības (properties) un metodes (methods), kas<br />

var mazliet atšķirties dažādās programmās (Access’ā, Excelī), bet pamatā ir<br />

Visual Basic ar vienādiem standartiem.<br />

Vienkāršas Access datu <strong>bāzes</strong> var uzrakstīt, lietojot makro komandas<br />

(macros). Makro komandas ir lietderīgi izmantot nelielās datu bāzēs ar<br />

standartfunkcijām, bet daudz sarežģītāku Access datu bāzu veidošanai jau<br />

nepieciešams zināt VBA programmēšanas valodu.<br />

VBA nodrošina iespēju darboties ar daudz sarežģītākām loģiskajām<br />

struktūrām (cikliem utt.), definēt mainīgos un konstantes, lietot funkcijas, kas<br />

nav pieejamas makro komandās, darboties ar ierakstu kopām (recordsets), radīt<br />

datu <strong>bāzes</strong> objektus, veikt atkļūdošanu utt.<br />

Daudzas darbības, ko var veikt gan ar makro komandām, gan ar VBA<br />

procedūrām, daudz efektīvāk tiek izpildītas lietojot VBA procedūras.<br />

Lai lietotājam atvieglotu pārēju no makro komandām uz VBA procedūrām,<br />

ir iespējams pārveidot jebkuru makro komandu par VBA procedūru:<br />

Iezīmējot makro un izvēloties<br />

File / Save As/Export… / iespēja Save as Visual Basic Module un OK.<br />

19.2. Mainīgie<br />

Mainīgais ir vieta atmiľā, kurai ir piešķirts nosaukums. Tā var saturēt<br />

datus, kuri programmas izpildes laikā var tikt mainīti. Mainīgajam var būt<br />

norādīts datu tips.<br />

Mainīgo deklarēšanai parasti izmanto komandu Dim.<br />

Dim as <br />

Lai deklarētu procedūras līmeľa mainīgo, komandu Dim iekļauj procedūrā,<br />

bet ja moduļa līmeľa – deklarāciju sekcijā. Piemērs teksta mainīgā Pazinojums<br />

deklarēšanai:<br />

Dim Pazinojums As String<br />

Vienā komandā var definēt vairākus mainīgos, katram mainīgajam norādot<br />

datu tipu, piemēram:<br />

Dim Pazinojums As String, Bridinajums As String<br />

Ja komandā Dim kādam mainīgajam datu tipu nenorāda, tam tiek piešķirts<br />

tips Variant (piemērā mainīgajam Bridinajums):<br />

162<br />

© Vladimirs Ivanovs, 2007


Dim Pazinojums As String, Bridinajums<br />

Procedūras privāto mainīgo definēšanai izmanto komandu Private, bet<br />

publisko – Public, piemēram:<br />

Private Pazinojums As String<br />

Public Bridinajums As String<br />

VBA datu tipi<br />

163<br />

19.1.tabula<br />

Nosaukums Lielums<br />

Vērtības Noklusētā<br />

(baitos)<br />

vērtība<br />

Byte 1 No 0 līdz 255 0<br />

Boolean 2 True or False False<br />

Integer 2 No -32,768 līdz 32,767 0<br />

Long 4 No -2,147,483,648 līdz 2,147,483,647 0<br />

Single 4 No - 3.402823E38 līdz 3.402823E38 0<br />

Double 8 No - 1.79769313E308 līdz 1.79769313E308 0<br />

Currency 8 No 922,337,203,685,477.5808 līdz 922,337,203,685,477.5807 0<br />

Date 8 No 100. gada 1. janvāra līdz 9999. gada 31. decembrim<br />

Object 4 Jebkurš objekts<br />

String No 0 līdz apmēram 2 miljoniem simbolu ""<br />

Mainīgie, kuri definēti procedūru iekšienē, ir šo procedūru lokālie<br />

mainīgie, globālus mainīgos var nodefinēt moduļu sākumā.<br />

Mainīgos var definēt tikai pa vienam, piemēram:<br />

Dim skaits, lielums as integer<br />

definē mainīgo skaits bez datu tipa un mainīgo lielums ar integer datu tipu.<br />

Ja gan skaits, gan lielums ir ar integer datu tipu, jāraksta<br />

Dim skaits as integer<br />

Dim lielums as integer<br />

19.3. Komentāri<br />

Komentāri VBA tiek pievienoti ar apostrofa palīdzību. Apostrofu var<br />

novietot gan rindas sākumā, gan jebkurā vietā rindā. Viss, kas ir pēc apostrofa<br />

tiek uzskatīts par komentāru.<br />

' Mainīgo definēšana<br />

Dim lielums as integer 'definē mainīgo lielums kā integer tipa<br />

mainīgo<br />

© Vladimirs Ivanovs, 2007


19.4. Rindiņas turpinājums<br />

Lai procedūras būtu pārskatāmas, garas rindiľas izdevīgi sadalīt vairākās ar<br />

rindiľas turpinājuma simbolu, kas VBA ir pasvītrojums ( _ ).<br />

MsgBox "Šis ir ziņojuma sākums " _<br />

& "un šis ir tā turpinājums!"<br />

19.5. Salīdzināšanas un loģiskie operatori<br />

Šajā tabulā ir apkopoti galvenie Visual Basic operatori.<br />

Galvenie Visual Basic operatori<br />

164<br />

19.2.tabula<br />

Operators Paskaidrojums<br />

< Mazāks<br />

Lielāks<br />

>= Lielāks vai vienāds<br />

= Vienāds<br />

Nav vienāds<br />

And Un - apvieno divas izteiksmes. Katrai izteiksmei jābūt patiesai, lai kopējā izteiksme<br />

būtu patiesa.<br />

Or Vai - apvieno divas izteiksmes. Ja kāda no izteiksmēm ir patiesa, tad kopējā izteiksme<br />

ir patiesa.<br />

Not Vienas izteiksmes noliegums.<br />

Eqv Ekvivalents - apvieno divas izteiksmes. Abām izteiksmēm ir jābūt patiesām vai abām<br />

jābūt aplamām, lai kopējā izteiksme būtu patiesa.<br />

Kad VBA salīdzina divas izteiksmes, tas atgriež vienu no divām vērtībām:<br />

True (patiess) vai False (aplams). Var lietot arī skaitļus: False = 0 un True = -1.<br />

19.6. Mijiedarbība ar lietotāju<br />

MsgBox funkcijas lietošana<br />

Paziľojuma logs (Message Box) ir vienkāršs un ātrs veids, kā kaut ko<br />

pajautāt lietotājam, vai ļaut viľam izvēlēties turpmāko programmas gaitu.<br />

Paziľojuma logs parāda paziľojuma tekstu un piedāvā komandpogas, ar kurām<br />

lietotājs var atbildēt.<br />

Šajā attēlā redzams paziľojuma loga piemērs, kas ir ģenerēts ar MsgBox<br />

funkciju:<br />

19.1.att. Paziľojuma loga piemērs.<br />

© Vladimirs Ivanovs, 2007


Logu ģenerē ar šādu kodu:<br />

MsgBox "Pieeja liegta!," _<br />

& vbCrLf & "Jums tas nav atļauts darīt.", _<br />

vbExclamation, "Paziņojums"<br />

Lai noteiktu paziľojuma loga izskatu, ar argumentu palīdzību, nodod<br />

informāciju MsgBox funkcijai. MsgBox funkcijai ir šāda sintakse:<br />

MsgBox( prompt [, buttons] [, title])<br />

MsgBox funkcijas argumenti<br />

165<br />

19.3.tabula<br />

Arguments Paskaidrojums<br />

prompt Lietotājam adresētā paziľojuma teksts.<br />

buttons Nosaka komandpogu skaitu un daudzumu, kā arī tipu ikonai, kas parādās<br />

paziľojuma laukā. Šie iestādījumi tiek veidoti summējot atbilstošas VBA<br />

konstantes.<br />

title Teksts, kas parādās paziľojuma loga virsraksta joslā.<br />

Paziľojuma logu parasti lieto, lai saľemtu informāciju, kura programmai<br />

nepieciešama darba turpināšanai. Lai šo informāciju izmantotu, piešķir funkcijas<br />

atgriezto vērtību mainīgajam un uzraksta kodu, kurš apstrādā saľemto atbildi.<br />

Dots koda piemērs, kurš attēlo paziľojuma logu un pēc tam veic vienu no<br />

divām iespējamām darbībām, balstoties uz lietotāja atbildi. Paziľojuma logs<br />

brīdina lietotāju, ka izmaiľas failā nav saglabātas un piedāvā tās saglabāt.<br />

Msg = "Vai saglabāt atvērto failu?"<br />

Style = vbYesNo + vbExclamation + vbDefaultButton2<br />

Title = "Izmaiņas nav saglabātas!"<br />

Atbilde = MsgBox(Msg, Style, Title)<br />

If Atbilde = vbYes Then 'Lietotājs izvēlējies Yes.<br />

Msgbox "Yes" 'Veic kādu darbību.<br />

Else 'Lietotājs izvēlējies No komandpogu.<br />

MsgBox "No" 'Veic kādu darbību.<br />

End If<br />

Šajā kodā Style mainīgais kombinē VBA konstantes, lai noteiktu attēlojamā<br />

paziľojuma loga izskatu. VBA konstantes izmantotas, apstrādājot lietotāja<br />

atbildes.<br />

InputBox funkcijas lietošana<br />

Ievada logs (input box) ir ērts risinājums, ja nepieciešams saľemt<br />

informāciju, kuru nevar iegūt vienkārši noklikšķinot uz komandpogas. Ievada<br />

logu ģenerē InputBox funkcija, kurai ir šāda sintakse:<br />

InputBox( prompt[, title] [, default] [, xPos] [, yPos])<br />

© Vladimirs Ivanovs, 2007


MsgBox funkcijas argumenti<br />

166<br />

19.4.tabula<br />

Arguments Paskaidrojums<br />

prompt Lietotājam adresētā paziľojuma teksts.<br />

title Teksts, kas parādās paziľojuma loga virsraksta joslā.<br />

default Teksts, kas tiek ierakstīts pēc noklusēšanas.<br />

xPos Loga kreisā augšēja stūra x (horizontālā) koordināte.<br />

yPos Loga kreisā augšēja stūra y (vertikālā) koordināte.<br />

Piemērs un ievada logs:<br />

FileName = InputBox("Ievadiet faila nosaukumu:", "File<br />

Open")<br />

19.7. VBA konstrukcijas<br />

19.2.att. Ievada logs.<br />

Tāpat kā vairums programmēšanas valodu, VBA piedāvā dažādus veidus,<br />

kā vadīt programmas izpildi. Nosacījumu konstrukcijas ļauj programmai<br />

izvēlēties, kuru darbību veikt, balstoties uz pieejamajām vērtībām. Cikli ļauj<br />

koda blokus izpildīt vairākkārt konstantu vai mainīgu reižu skaitu.<br />

Nosacījumu konstrukcijas ļauj VBA aplikācijām dažādi reaģēt uz dažādām<br />

situācijām, atkarībā no nosacījuma pārbaudes rezultāta. Nosacījums var būt<br />

salīdzināšana vai jebkura izteiksme ar skaitlisku vērtību.<br />

Ir šādas nosacījuma konstrukcijas:<br />

� If...Then<br />

� If...Then...Else<br />

� If...Then...ElseIf<br />

� Select Case<br />

If…Then Konstrukcija<br />

If…Then komanda pārbauda, vai nosacījums ir patiess. Ja patiess, izpilda<br />

norādītās komandas, ja ne, izpilda nākamo komandu pēc If…Then<br />

konstrukcijas. Šai konstrukcijai ir divu veidu sintakses.<br />

© Vladimirs Ivanovs, 2007


Vienai rindai:<br />

If Then <br />

Vairākām rindām:<br />

If Then<br />

<br />

End if<br />

Neatkarīgi no sintakses, galvenais princips šāds: “Ja šis nosacījums ir<br />

patiess, tad jādara tas …”. Piemēram:<br />

If intSkaits > 20 Then MsgBox “Skaits ir lielāks par<br />

20!”<br />

Sajā piemērā mainīgā intSkaits vērtību salīdzina ar 20. Ja vērtība ir lielāka<br />

par 20, tad to parāda paziľojumā. Ja mainīgā vērtība ir mazāka, komandu pēc<br />

Then ignorē un paziľojums neparādās.<br />

If…Then…Else Konstrukcija<br />

If…Then…Else konstrukcija papildina If…Then konstrukciju. Var norādīt<br />

divus koda blokus. Atkarībā no nosacījuma vērtības, izpildīsies viens no viľiem.<br />

Sintakse šāda:<br />

If Then<br />

<br />

Else<br />

<br />

Endif<br />

Piemērā pārbauda, vai intSkaits ir lielāks vai mazāks par 20. Ja tas ir<br />

lielāks, tad lietotājs saľem pirmo paziľojumu, ja nav lielāks, lietotājs saľem otro<br />

paziľojumu.<br />

If intSkaits > 20 Then<br />

MsgBox “Skaits ir lielāks par 20!”<br />

Else<br />

MsgBox “Skaits ir mazāks vai vienāds ar 20!”<br />

End if<br />

If…Then…ElseIf Konstrukcija<br />

If…Then…ElseIf ir līdzīga If…Then…Else ar to atšķirību, ka var atļaut<br />

programmai izvēlēties starp vairāk nekā divām alternatīvām. Sintakse šāda:<br />

167<br />

© Vladimirs Ivanovs, 2007


If Then<br />

<br />

ElseIf Then<br />

<br />

Else<br />

<br />

End if<br />

Piemērā pārbaudīta vai mainīgais intSkaits ir lielāks par 20, starp 10 un 20<br />

vai arī mazāks par 10.<br />

If intSkaits > 20 Then<br />

MsgBox “Skaits ir lielāks par 20!”<br />

ElseIf intSkaits >= 10 Then<br />

MsgBox “Skaits ir starp 10 un 20!”<br />

Else<br />

MsgBox “Skaits ir mazāks par 10!”<br />

End if<br />

Select Case Konstrukcija<br />

Select Case konstrukcija līdzīga If…Then…Else konstrukcijai tajā ziľā, ka<br />

ļauj programmai izvēlēties starp vairākām iespējām. Šī konstrukcija var būt<br />

efektīvāka, jo nosacījuma izteiksmes vērtību aprēķina vienreiz. Iegūto vērtību<br />

salīdzina ar piedāvātajām vērtībām, kurām atbilst koda bloki.<br />

Dota Select Case sintakse. Tiks izpildīts viens no vairākiem komandu<br />

blokiem, balstoties uz nosacījuma izteiksmes vērtību.<br />

Select Case <br />

<br />

...<br />

[Case izteiksme2]<br />

...<br />

.......<br />

<br />

<br />

End Select<br />

Piemērā tiek noskaidrota simbolu virknes strSkaits vērtība. To salīdzina ar<br />

dažādām Case vērtībām.<br />

Select Case strSkaits<br />

Case "Viens"<br />

[darbības, ja strSkaits = "Viens"]<br />

Case "Divi"<br />

[darbības, ja strSkaits = "Divi"]<br />

Case "Trīs"<br />

[darbības, ja strSkaits = "Trīs"]<br />

End Select<br />

168<br />

© Vladimirs Ivanovs, 2007


Cikli ļauj norādīt nosacījumus, kuriem izpildoties, programma kādu koda<br />

daļu izpildīs atkārtoti.<br />

Do…Loop konstrukcijas<br />

Do…Loop konstrukcija ļauj izpildīt koda bloku nenoteiktu skaitu reižu.<br />

Visi Do cikli iedalās divās grupās: cikli, kur nosacījuma izteiksmi pārbauda<br />

cikla beigās, un cikli, kur nosacījuma izteiksmi pārbauda cikla sākumā. Pirmajā<br />

grupā koda komandas tiks izpildītas vismaz vienu reizi, otrajā grupā koda<br />

komandas var vispār netikt izpildītas.<br />

Cikli, kas nosacījumu pārbauda beigās:<br />

Do…Loop While Atkārto kodu, kamēr nosacījuma izteiksmes vērtība ir<br />

True.<br />

Do…Loop Until Atkārto kodu, kamēr nosacījuma izteiksmes vērtība ir<br />

False.<br />

Cikli, kas nosacījumu pārbauda sākumā:<br />

Do While…Loop Pārbauda nosacījuma izteiksmi. Ja patiesa (True),<br />

atkārto kodu, līdz izteiksmes vērtība kļūst False.<br />

Do Until…Loop Pārbauda nosacījuma izteiksmi. Ja aplama (False),<br />

atkārto kodu līdz izteiksmes vērtība kļūst True.<br />

Jālieto Do ciklus tad, kad nav zināms precīzs izpildāmo reižu skaits, bet ir<br />

zināms nosacījums, pie kura cikla izpildīšana jāaptur.<br />

Do..Loop While cikls nosacījumu pārbauda pēc koda izpildīšanas. Kods<br />

tiek atkārtoti izpildīts visu laiku, kamēr nosacījuma vērtība ir True. Cikla<br />

sintakse:<br />

Do<br />

<br />

Loop While <br />

Piemēram, cikls turpināsies, līdz tiks ievadīta pareiza parole (Zilonis):<br />

Do<br />

strPassword = InputBox("Ievadiet Jūsu paroli")<br />

Loop While strPassword "Zilonis"<br />

Do..Loop While cikls nosacījumu pārbauda pēc koda izpildīšanas. Kods<br />

tiek atkārtoti izpildīts visu laiku, kamēr nosacījuma vērtība ir False. Cikla<br />

sintakse:<br />

Do<br />

<br />

Loop Until <br />

169<br />

© Vladimirs Ivanovs, 2007


Piemēram, cikls turpināsies, kamēr paziľojuma logā netiks nospiesta No<br />

poga:<br />

Do<br />

LoopCount = LoopCount + 1<br />

Loop Until MsgBox("Loop?", vbYesNo) = vbNo<br />

Do While…Loop ciklā nosacījums pārbaudīts pirms koda izpildes. Kods<br />

ciklā tiek izpildīts tikai tad, ja nosacījuma izteiksmes vērtība ir True. Ja<br />

izteiksmes vērtība ir False, kodu neizpilda.<br />

Do While <br />

<br />

Loop<br />

Do While…Loop ciklā nosacījums tiek pārbaudīts pirms koda izpildes.<br />

Kods ciklā tiek izpildīts tikai tad, ja nosacījuma izteiksmes vērtība ir False. Ja<br />

izteiksmes vērtība ir True, kodu neizpilda. Cikla sintakse:<br />

Do Until <br />

<br />

Loop<br />

For…Next Konstrukcija<br />

Ja ir zināms, cik reizes koda bloku ir jāizpilda, ir ērtāk izmantot For…Next<br />

cikla konstrukciju. Šis cikls izpilda kodu noteiktu reižu skaitu. Sintakse:<br />

For = To []<br />

<br />

Next <br />

Piemēram, kods pieprasa no lietotāja ievadīt skaitu, tad izpilda ciklu<br />

ievadīto skaitu reizes – paprasa ievadīt skaitļus un beigās parāda summu:<br />

intSkaits = InputBox( prompt:="Cik skaitļu?")<br />

For i = 1 To intSkaits<br />

intSkaitlis = InputBox (prompt:= "Ievadiet skaitli"))<br />

intSumma = intSumma + intSkaitlis<br />

Next i<br />

MsgBox intSumma<br />

Iziešana no cikliem<br />

Ar Exit komandu var uzreiz iziet no For un Do cikliem, Sub un Function<br />

procedūrām. Exit komandas sintakse ir ļoti vienkārša: Exit For var parādīties,<br />

cik reižu nepieciešams For cikla iekšienē un Exit Do var parādīties, cik reižu<br />

nepieciešams Do cikla iekšienē:<br />

170<br />

© Vladimirs Ivanovs, 2007


Do Until <br />

<br />

If Then<br />

Exit Do<br />

End If<br />

Loop<br />

Exit Do komanda strādā ar visām Do cikla sintaksēm.<br />

Exit Do un Exit For var būt noderīgas, jo dažkārt ir nepieciešams iziet no<br />

cikla nekavējoties, neveicot vairāk nekādas darbības ciklā.<br />

19.8. Darbs ar datumu un laiku<br />

Visual Basic iekšēji datumu un laiku glabā kā skaitļus. Skaitļa veselā daļa<br />

parāda datumu starp 100. gada 1. janvāri un 9999. gada 31. decembri ieskaitot,<br />

katra diena palielina šo skaitli par vienu. Skaitļa daļveida daļa attēlo laiku<br />

(dienas daļu) starp 0:00:00 un 23:59:59 ieskaitot.<br />

Tā kā datumi ir skaitļi, tad ir iespējams veikt aprēķinus, izmantojot<br />

datumus, piemēram:<br />

Dim dtJaunais<strong>Datu</strong>ms As Date<br />

dtJaunais<strong>Datu</strong>ms = dt<strong>Datu</strong>ms +3<br />

VBA ir funkcijas, kas atgriež sistēmas datumu un tā daļas.<br />

MsgBox “Pareizs datums un laiks ir “ & Now<br />

MsgBox “<strong>Datu</strong>ms ir “ & Date<br />

MsgBox “Laiks ir “& Time<br />

Visual Basic piedāvā funkcijas, kuras no datuma atgriež kādu daļu:<br />

(Sistēmas laiks ir 10.04.2000 13:34:45)<br />

Funkcijas darbam ar datumiem.<br />

19.4.tabula<br />

Funkcija Piemērs Vērtība<br />

Year() Year(Now) 2000<br />

Month() Month(Now) 4<br />

Day() Day(Now) 10<br />

Weekday() Weekday(Now) 2<br />

Hour() Hour(Now) 13<br />

Minute() Minute(Now) 34<br />

Second() Second(Now) 45<br />

Ir funkcijas, kas rēķina un konvertē datumus:<br />

171<br />

© Vladimirs Ivanovs, 2007


Funkcijas datuma konvertēšanai.<br />

172<br />

19.5.tabula<br />

Funkcija Darbība<br />

DateSerial Atgriež datumu no ievadītajām vērtībām (gads, mēnesis, diena)<br />

TimeSerial Atgriež laiku no ievadītajām vērtību (stunda, minūte, sekunde)<br />

DateValue Konvertē String par datumu (Date)<br />

TimeValue Konvertē String par laiku (Time)<br />

DateAdd Atgriež datumu, kuram pieskaitīts dotais laika intervāls<br />

DateDiff Atgriež skaitli, kas ir intervāls starp diviem datumiem<br />

DatePart Atgriež skaitli, kas satur dotā datuma specificēto daļu<br />

19.9. Funkcija Format<br />

Funkcija Format atļauj noformatēt skaitļus un datumu/laiku<br />

nepieciešamajā izskatā pirms to izdrukāšanas. Tas ir nepieciešams, jo ir dažādi<br />

skaitļu un datumu pieraksta veidi, piemēram, 04.10.2000; 10.04.2000; 2000.<br />

gada 10. aprīlis.<br />

Format sintakse:<br />

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])<br />

Daži piemēri datumu izvadam.<br />

<strong>Datu</strong>mu izvada funkcijas.<br />

19.6.tabula<br />

Sintakse Rezultāts<br />

Format(Now, “m/d/yy”) 10/4/2000<br />

Format(Now, “dddd, mmmm dd”) Pirmdiena, Aprīlis 10<br />

Format(Now, “d-mmm”) 10-Apr<br />

Format(Now, “mmmm-yy”) Aprīlis-00<br />

Format(Now, “hh:mm AM/PM”) 01:34 PM<br />

Format(Now, “h:mm:ss a/p”) 1:34:45 p<br />

Format(Now, “d-mmmm h:mm”) 10-Aprīlis 13:34<br />

Format(Now, “ddddd") <strong>Datu</strong>ms formātā, kurš nodefinēts Control Panel<br />

Format(Now, “ttttt”) Laiks formātā, kurš nodefinēts Control Panel<br />

Eksistē vairāki formāti, kuriem ir nosaukums, un Format funkcijā var lietot<br />

šos nosaukums. Formāta vārds, izsaucot funkciju Format, ir jāievieto<br />

dubultpēdiľās (“”). Piemēram:<br />

MsgBox Format(80000, “Currency”) 'izdrukā 80 000.00 Ls<br />

MsgBox Format(Now, "General date") 'izdrukā 10.04.2000<br />

13:34:45<br />

19.10. Darbības ar tekstu<br />

Bieži vien ir nepieciešams veikt kaut kādas manipulācijas ar tekstuāliem<br />

datiem. VBA satur vairākas funkcijas, kuras veic dažādas manipulācijas ar<br />

šādiem datiem.<br />

© Vladimirs Ivanovs, 2007


Funkcijas darbam ar tekstu.<br />

173<br />

19.7.tabula<br />

Funkcija Veicamā darbība<br />

StrComp Salīdzināt divus tekstus<br />

LCase, Ucase Konvertēt uz lielajiem vai mazajiem burtiem<br />

Space, String Izveidot tekstu, kas sastāv no kāda simbola atkārtota vairākas reizes<br />

Len Atrast teksta garumu<br />

Format Formatēt tekstu<br />

Instr, Left, Ltrim, Mid, Right, Rtrim,<br />

Trim<br />

Manipulēt ar tekstu<br />

StrConv Konvertēt tekstu<br />

Dots piemērs, kas atrod tekstā pēdējo vārdu un novieto to teksta sākumā:<br />

Private Sub cmdReverse_Click()<br />

Dim strFirst As String<br />

Dim strLast As String<br />

Dim intSpace As Integer<br />

Dim intLastSpace As Integer<br />

Dim strName As String<br />

strName = InputBox(prompt:= "Ievadiet tekstu:")<br />

'atrod pēdējo tukšumu<br />

intSpace = 0<br />

Do<br />

intLastSpace = intSpace<br />

intSpace = InStr(intLastSpace + 1, strName, " ")<br />

Loop While intSpace 0<br />

'atdala pēdējo vārdu<br />

strFirst = Left(strName, intLastSpace - 1)<br />

strLast = Right(strName, Len(strName) - intLastSpace)<br />

'uzraksta pēdējo vārdu pirmo<br />

MsgBox strLast & " " & strFirst<br />

End Sub<br />

© Vladimirs Ivanovs, 2007


20.1. Moduļi<br />

20. VBA programēšanas pamati<br />

Visas VBA procedūras un funkcijas glabājas moduļos. Moduļi var būt<br />

globāli vai arī piesaistīti konkrētai formai vai atskaitei.<br />

Globālie moduļi tiek dēvēti par Access moduļiem, tie tiek veidoti datu<br />

<strong>bāzes</strong> veidošanas logā lapā Moduļi (Modules):<br />

20.1.att. Moduļu logs.<br />

Formu un atskaišu moduļi glabājas kopā ar formām un atskaitēm.<br />

Procedūras, kas atrodas formu un atskaišu moduļos, tiek radītas un saglabātas<br />

kopā ar formu un atskaiti un tiek piesaistīti konkrētu objektu notikumiem.<br />

Moduļos var būt funkcijas un procedūras. Funkcijas var atgriezt vērtības.<br />

Katram modulim ir General Declaration daļa (pašā sākumā). Uzbraucot uz<br />

šīs sadaļas augšējos kombobokšos parādās uzraksti (General) un<br />

(Declarations). Šajā daļā paredzēts definēt mainīgos, kas būs pieejami visā<br />

modulī. Parasti šajā daļā ir divas rindiľas:<br />

21.1.att. Moduļu veidošanas logs.<br />

174<br />

© Vladimirs Ivanovs, 2007


Option Compare ... – norāda kārtošanas veidu: Binary, Text,<br />

Database.<br />

Option Explicit- norāda, ka visi funkcijās lietotie mainīgie būs jādefinē.<br />

Tālāk seko lietotāja izveidotās procedūras un funkcijas.<br />

Procedūras uzbūve ir:<br />

Sub ()<br />

<br />

End Sub<br />

Funkcijas veido tāpat, tikai Sub vietā lieto Function.<br />

Procedūra cmdAizvert_Click() aizver aktīvo formu. Šī procedūra piesaistīta<br />

pogai cmdAizvert notikumam OnClick. Uzbraucot uz šīs procedūras, augšējos<br />

kombobokšos parādās uzraksti cmdAizvert un Click, kas norāda šīs procedūras<br />

piederību.<br />

Šādas procedūras var veidot formu un atskaišu veidošanas logā konkrēta<br />

objekta (pogai cmdAizvert) īpašību (properties) Event lapā notikumam (On<br />

click), nospiežot pogu ar trīs punktiem un izvēloties Code Builder.<br />

Procedūras var veidot arī ar ikonas Code palīdzību .<br />

Procedūra sveiks() parāda paziľojumu "Sveiks!". Šī procedūra ir neatkarīga,<br />

tā nav piesaistīta konkrētam objektam. Uzbraucot uz šīs procedūras augšējos<br />

kombobokšos parādās uzraksti (General) un Sveiks.<br />

Access moduļos raksta tikai neatkarīgas procedūras un funkcijas, bet formu<br />

un atskaišu moduļos var rakstīt gan neatkarīgas procedūras, gan procedūras, kas<br />

ir piesaistītas notikumiem (notikumu procedūras). Access moduļus var veidot<br />

datu <strong>bāzes</strong> veidošanas logā Moduļu lapā nospiežot pogu New.<br />

Notikumu procedūras tiek automātiski aktivzētas, kad notiek šis notikums.<br />

Procedūra cmdAizvert_Click() automātiski tiek palaista, kad lietotājs nospiež<br />

pogu cmdAizvert.<br />

Lai aktivzētu procedūru sveiks(), jālieto komanda<br />

Call sveiks()<br />

Procedūras var būt dažādas – procedūras, ko var lietot tikai formas iekšienē<br />

–lokālas (private) vai visā datu bāzē - globālas (public). To norāda pirms Sub<br />

vārda, procedūra cmdAizvert_Click() ir lokāla, lietojama tikai formas iekšienē.<br />

175<br />

© Vladimirs Ivanovs, 2007


21. Koda saistīšana ar notikumiem formās un pārskatos<br />

21.1. Objektu nosaukumu veidošana<br />

Veidojot datu <strong>bāzes</strong> ar daudzām formām, atskaitēm un pieprasījumiem ir<br />

sarežģīti atcerēties visu objektu nosaukumus. Lai labāk varētu orientēties<br />

izstrādātā datu bāzē, jau pašā sākumā vajadzētu vienoties par objektu<br />

nosaukšanu, lai pēc tam būtu vieglāk atrast vajadzīgo.<br />

Objektu nosaukumu veido: .<br />

norāda objekta tipu. Galvenajiem Access objektiem ir<br />

šādi prefiksi:<br />

Objektu prefiksi.<br />

21.1.tabula<br />

Tabula tbl<br />

Pieprasījums qry<br />

Forma frm<br />

Apakšforma (subform) fsub<br />

Atskaite (reports) rpt<br />

Apakšatskaite (subreport) rsub<br />

Makro mcr<br />

Modulis mdl<br />

raksta ar maziem burtiem nosaukuma sākumā (piemēram,<br />

tblSkolens, frmIevads).<br />

Formas un atskaišu objektu ir:<br />

Formas un atskaišu objektu prefiksi.<br />

21.2.tabula<br />

Rāmītis (bound object frame) frb<br />

Čekbosksis chk<br />

Komboboksis cbo<br />

Poga cmd<br />

Bildīte img<br />

Labelis lbl<br />

Listboksis lst<br />

Radiopoga opt<br />

Apakš (sub) sub<br />

Tabulators tab<br />

Teksta lauks txt<br />

norāda objekta būtību. Veidojot nosaukumu, vajadzētu<br />

ievērot noteikumus:<br />

� neizmantot nosaukumos tukšumus (ja nepieciešams, aizstājot ar<br />

pasvītrojumu);<br />

� nosaukums drīkst saturēt tikai burtus, skaitļus un pasvītrojumu;<br />

� izmantot gan lielos, gan mazos burtus, lai atvieglotu nosaukuma<br />

uztveršanu (piemēram, cboSkolSaraksts);<br />

176<br />

© Vladimirs Ivanovs, 2007


� izmantot vārdus vienskaitlī;<br />

� nosaukums nav garāks par 15 simboliem (visās vietās būts redzams<br />

pilns nosaukums).<br />

Nosaukumu veidošana nav obligāti jāveic pēc dotās metodes, bet šo<br />

nosacījumu ievērošana atvieglo darbu ar datu bāzi izstrādes laikā, kā arī vēlāk,<br />

veicot labojumus.<br />

21.2. Darbības ar objektiem<br />

VBA objekts ir koda un datu apvienojums, kas var tikt aplūkots un<br />

kontrolēts kā viena atsevišķa vienība. Čekboksis, komandpogas un citi formas<br />

kontroļi ir atsevišķi objekti. Arī tabulas, formas un atskaites ir atsevišķs objekts.<br />

Objekti var saturēt citus objektus, piemēram, forma var saturēt<br />

komandpogas, teksta laukus u.c.<br />

Kad izveido jaunu objektu, tam iedod noklusējuma vārdu, balstoties uz<br />

objekta tipu, piemēram, Combo1, Command2, Text3. Ir lietderīgi nekavējoties<br />

nomainīt katra objekta īpašības Name (nosaukums) vērtību uz vārdu, kas<br />

paskaidro kontroļa jēgu, lai programmas kods kļūst vieglāk saprotams un<br />

labojams. To ieteicams izdarīt uzreiz, jo kods tiek piekārtots objektam, balstoties<br />

uz objekta vārdu, ja mainīsiet objekta vārdu pēc tam, kad būs uzrakstīts kods,<br />

tad kods zaudēs saiti ar objektu un netiks izpildīts.<br />

Objektam var dot jebkuru vārdu, bet labāk vārdu dod pēc, ieteikumiem kas<br />

doti nodaļā Objektu nosaukumu veidošana.<br />

VBA ir trīs veidi, kā atsaukties uz objektu. Piemēram, ja vēlas darboties ar<br />

formu frmIevads, tad var lietot šādus pierakstus:<br />

Forms!frmIevads<br />

Forms("frmIevads")<br />

Forms(0)<br />

Lai lietotu pierakstu Forms(0), formai frmIevads jābūt atvērtai pirmajai.<br />

Pirmajai formai numurs ir 0, tālāk 1, utt.<br />

Darbojoties ar kontroļiem formā, sākumā jānorāda forma un pēc tam<br />

kontrolis:<br />

Forms!frmIevads!cboSkolens<br />

Forms!frmIevads!txtVards<br />

Kontroļi atskaitē:<br />

Reports!repAtskaite!txtNosaukums<br />

Lai katru reizi, atsaucoties uz kādu no objektiem, formā nav jālieto garais<br />

pieraksts var lietot vārdu Me:<br />

Me!cboSkolens<br />

Me!txtVards<br />

177<br />

© Vladimirs Ivanovs, 2007


Me attiecas uz formu vai atskaiti, no kuras ir izsaukta procedūra, ja vēlas<br />

darboties ar objektiem citā formā vai atskaitē jālieto pilnais pieraksts.<br />

Lai kontrolētu objektu, lieto tā īpašības, metodes un notikumus. Īpašības ir<br />

objekta dati, iestādījumi un atribūti. Metodes ir procedūras, kuras rīkojas ar<br />

objektu vai procedūras, kuras objekts veic ar datiem. Notikumi tiek izraisīti, kad<br />

tiek izmainīts kāds no objekta aspektiem.<br />

Īpašības<br />

Īpašības nosaka, kā objekts izskatās un uzvedas. Text, Caption, Name ir<br />

tipiski īpašību piemēri.<br />

Lielāko daļu īpašību iespējams uzstādīt gan izstrādes, gan izpildes laikā.<br />

Izstrādes laikā īpašības var uzstādīt Properties logā.<br />

21.1.att. Objektu īpašību logs.<br />

Lai uzstādītu objekta īpašību izpildes laikā, jāzmanto koda rindu ar šādu<br />

sintaksi:<br />

Objekts.Īpašība = Izteiksme<br />

Piemēram:<br />

Forms!frmIevads!cboKlase.Width = 5<br />

Forms!frmIevads!cboKlase.RowSource = "tblKlase"<br />

178<br />

© Vladimirs Ivanovs, 2007


Dažām īpašībām jāpiešķir noteiktas vērtības, lai sasniegtu gaidīto rezultātu.<br />

Piemēram, komboboksim izskatu var mainīt ar īpašības SpecialEffect palīdzību.<br />

Šai īpašībai ir šādas vērtības: Flat, Raised, Sunken, Etched, Shadowed un<br />

Chiseled (īpašību logā). Lai šo īpašību uzstādītu izpildes laikā uz Raised<br />

(pacelts), jāraksta:<br />

cboKlase.SpecialEffect = 1<br />

Attiecīgi:<br />

Flat - 0, Raised - 1, Sunken - 2, Etched - 3, Shadowed – 4, Chiseled – 5.<br />

Dažreiz ir nepieciešams zināt objekta īpašības vērtību, lai veiktu<br />

skaitļošanu vai kādu citu darbību programmā. Ja ir nepieciešams uzzināt objekta<br />

īpašības vērtību, jālieto šādu sintaksi, lai mainīgajam piešķirtu īpašības vērtību:<br />

Mainīgais = Objekts.Īpašība<br />

Piemērā vienas īpašības vērtību lieto, lai piešķirtu vērtību otrai īpašībai<br />

(komboksis tiek uzstādīts divas reizes platāks par teksta lauku txtSkolens):<br />

cboKlase.Width = txtSkolens.Width * 2<br />

Lai nodefinētu kādu objektu, sākumā jānodefinē objekta mainīgais un pēc<br />

tam jāpiešķir šim mainīgajam objektu.<br />

Dim kaste As ComboBox<br />

Set kaste = Me!cboKlase<br />

MsgBox kaste.Value<br />

Objektu mainīgajam objekta piešķiršana notiek ar Set. Šī definēšana<br />

atšķiras no parastajiem mainīgajiem, jo objekta mainīgajam var gan nolasīt<br />

īpašības, gan izmainīt īpašības:<br />

Kaste.Value = 1<br />

Lai iznīcinātu objektu mainīgo, jālieto pieraksts:<br />

Set kaste = Nothing<br />

Metodes<br />

Metodes liek objektam veikt darbību vai uzdevumu. Move un SetFocus ir<br />

tipiski metožu piemēri. Tāpat kā īpašības, metodes ir objekta daļa. Vispārinot,<br />

metodes ir darbības, kuras var veikt ar objektu, kamēr īpašības ir atribūti, kurus<br />

var uzstādīt vai nolasīt.<br />

179<br />

© Vladimirs Ivanovs, 2007


Metodes var mainīt īpašību vērtības. Var izsaukt metodes vairākos veidos.<br />

Izsaukšanas sintakse atkarīga no tā, vai metode atgriež vērtību un vai aplikācija<br />

atgriezto vērtību izmantos.<br />

Šo sintaksi lieto, ja metode neatgriež vērtību vai ja atgriezto vērtību nevēlas<br />

izmantot:<br />

Objekts.Metode [arg1, arg2, …]<br />

Var ielikt argumentus iekavās, ja vēlas izmantot metodes atgriezto vērtību.<br />

Vispārinot iekavas, jālieto katru reizi, kad metode parādās vienādības zīmei<br />

labajā pusē:<br />

Mainīgais = Objekts.Metode ( [arg1, arg2, …] )<br />

Formai visbiežāk pielietotās metodes ir Requery, Close,<br />

Repaint:<br />

Me.Close 'Aizver formu<br />

Forms!frmIevads.Requery 'Atjauno formas frmIevads datu avotu<br />

Me.Repaint 'Pārzīmē formu<br />

Notikumi (Events)<br />

Notikums ir darbība, kuru atpazīst objekts (forma, kontroļi, utt.). Notikumi,<br />

piemēram, ir peles klikšķis, taustiľa nospiešana, formas aizvēršana. Katram<br />

notikumam var ierakstīt modulī kodu, ko izpildīs ikreiz, kad šis notikums tiks<br />

izraisīts. Jebkuru darbību var piesaistīt VBA notikumam, dodot pilnīgu kontroli<br />

pār aplikāciju, nosakot, kā tā reaģēs uz katru darbību.<br />

Notikumi tiek izraisīti, kad izmainās kāds no objekta aspektiem. Piemēram,<br />

mainot formas izmēru, tiek izraisīts notikums OnResize.<br />

Katram objektam ir notikumu kopums, kurus tas atpazīst. Visus tos var<br />

apskatīties objekta īpašību logā lapā Events:<br />

21.2. att. Notikumu Events logs.<br />

180<br />

© Vladimirs Ivanovs, 2007


Teksts [Event Procedure] notikumam AfterUpdate nozīmē, ka šim<br />

objektam (cboKlase) notikuma AfterUpdate ir uzrakstīta procedūra.<br />

21.3. Docmd objekts<br />

Lai atvieglotu pāreju no makro rakstīšanas uz VBA procedūru rakstīšanas,<br />

Access’ā ir Docmd objekts ar kura palīdzību var izpildīt Access darbības, kuras<br />

ir pieejamas veidojot makro:<br />

DoCmd.OpenForm "frmKlase", , , "Klase_id = 2"<br />

Ja kādu no argumentiem neraksta, atstāj tukšu vietu, lietojot komatus.<br />

Metodei OpenForm ir šādi atribūti: formas nosaukums, skats, filtrs,<br />

nosacījums, datu veids, loga veids, arguments. Ja izlaiž atribūtus beigās, komati<br />

nav jālieto.<br />

Lai nevajadzētu mācīties visu metožu argumentus un šo argumentu<br />

vērtības, Access moduļu logā uzreiz piedāvā izvēlētās metodes sintaksi:<br />

21.4. Makro veidošanas logs<br />

21.3.att. Metodes sintakses izvēle.<br />

Makrokomandu jeb vienkārši makro veidošanai veidotājs Wizard nav<br />

paredzēts.<br />

Lai apskatītu makro piemērus, atver Northwind standarta datu <strong>bāzes</strong> makro<br />

ar nosaukumu Customer Labels Dialog. <strong>Datu</strong> <strong>bāzes</strong> loga Macro nodaļā<br />

noklikšķina uz pogas Design.<br />

Nodaļā Macro redzamās makro, kā, piemēram, Customer Labels Dialog,<br />

īstenībā ir makrokomandu grupas. Katra grupa var saturēt vairākas<br />

makrokomandas, šeit tās ir četras – Enable SelectCountry, Preview, Print un<br />

Cancel. Katra makro sākas ar rindu, kurā ir šīs makro nosaukums (Macro<br />

181<br />

© Vladimirs Ivanovs, 2007


Name), un beidzas pirms rindas ar nākošās makro nosaukumu. Makro grupā var<br />

būt arī tikai viena makro bez sava nosaukuma.<br />

Lai parādītu vai noslēptu makro nosaukumu, jāizpilda View/Macro Names<br />

vai jāklikšķina uz ikonas.<br />

Tātad makro pieraksts, var būt viena vai vairākās rindas ar komandām,<br />

MS Access terminoloģijā makro darbībām – macro actions.<br />

Izpildot View/Conditions vai klikšķinot uz ikonas, var izsaukt vai<br />

noslēpt nosacījumu kolonnu, Conditions, kurā var rakstīt nosacījumu izteiksmes.<br />

Ja izteiksme ir patiesa, attiecīgā makro darbība tiek izpildīta.<br />

Action kolonnā norāda makro darbību. Izvēle iespējama tikai no piedāvātā<br />

saraksta, ārpus šī saraksta neko izveidot nav iespējams. Atbilstoši izvēlētajai<br />

darbībai loga apakšējā daļā parādās darbības argumentu rindas, katrai darbībai<br />

šie argumenti var būt atšķirīgi.<br />

Kolonna Comments (komentāri) paredzēta tikai piezīmēm, nekādas<br />

ietekmes uz makro izpildi tai nav.<br />

Lai aktivizētu makro, kas nav sadalīta grupās, makro veidošanas logā<br />

jāizpilda Run/Run vai jāklikšķina ikona.<br />

No datu <strong>bāzes</strong> loga makro var aktivizēt, izvēloties makro un nospiežot Run<br />

pogu vai izpildot Tools/Macro/Run Macro. Pēdējais veids vienīgais ļauj tiešā<br />

veidā aktivizēt makro, ja tā sadalīta grupās.<br />

Parasti tiešā veidā makro aktivizē, tikai tās testējot. Gatavas, pārbaudītas<br />

makro aktivizē no formām vai pārskatiem, tām reaģējot uz kādu notikumu<br />

(Event). Tad makro izpilde tiek definēta formas vai pārskata elementu notikumu<br />

īpašībās (Event Properties).<br />

Izpildot Run/Single Step vai klikšķinot ikonu, tiek ieslēgts makro<br />

izpildes viena soļa režīms. Šajā režīmā var pārbaudīt garāku makro izpildi, kas<br />

sastāv no vairākām darbībām.<br />

Lai par to pārliecinātos, aktivizē makro no makro grupas Suppliers ar<br />

nosaukumu Close:<br />

Izpildot Tools/Macro/Run Macro, atveras Run Macro logs:<br />

21.4.att. Run Macro logs.<br />

182<br />

© Vladimirs Ivanovs, 2007


No makro saraksta izvēlas Suppliers.Close, tad klikšķina OK. Atveras<br />

Macro Single Step dialoga logs:<br />

21.25.att. Macro Single Step logs.<br />

Makro tiks izpildīta soli pa solim, pirms katras darbības izpildes parādoties<br />

dialoga logam. Dialoga logā ir katras darbības parametri un izpildes pogas.<br />

� Noklikšķinot Step, tiks izpildīts makro nākošais solis.<br />

� Noklikšķinot Halt, makro izpilde tiks apturēta.<br />

� Noklikšķinot Continue, tiks izpildīta makro atlikusī daļa līdz galam<br />

bez tālākā dialoga.<br />

Visas makro strādās viena soļa izpildes režīmā neatkarīgi no tā, kā tās tiks<br />

aktivizētas, kamēr viena soļa režīms, atkal izpildot Run/Single Step, tiks izslēgts.<br />

Viena soļa režīms tiek izslēgts arī tad, ja kādas makro izpilde beidzas ar kļūdu.<br />

Mūsu piemērā makro Suppliers.Close izpilde nekādas redzamas izmaiľas<br />

neizraisīs, jo šī ir formu aizvēršanas makro.<br />

21.5. Makro saraksts<br />

� AddMenu<br />

� SetMenuItem<br />

AddMenu ievieto izvēlľu joslu MS Access globālās izvēlľu joslas vietā vai<br />

pievieno lietotāja definētu izvēlľu joslu formā vai pārskatā.<br />

Ja izvēlľu josla ir izveidota ar AddMenu makro, tad, izmantojot<br />

SetMenuItem, makro var norādīt, vai šīs izvēlľu joslas komandas ir izpildāmas<br />

vai nav.<br />

Īstenībā šīs makro tika lietotas MS Access iepriekšējās versijās, un tāpēc arī<br />

MS Access 97 tās ir saglabātas. Tomēr ieteicams izvēlľu joslas veidot Customize<br />

dialoga logā, kas tiek atvērts, izpildot View/Tololbars/Customize.<br />

183<br />

© Vladimirs Ivanovs, 2007


� ApplyFilter<br />

Pielieto filtru vai vaicājumu, vai SQL WHERE izteiksmi tabulai, formai vai<br />

pārskatam (t. i., tabulai vai vaicājumam, kas ir formas vai pārskata pamatā), lai<br />

ierobežotu vai sakārtotu ierakstus.<br />

Noteikti jāuzrāda filtra vai vaicājuma nosaukums, vai arī Where Condition<br />

argumenta lodziľā jāieraksta WHERE izteiksme.<br />

� Beep<br />

Liek datora skaļrunī atskanēt skaľai.<br />

Parasti izmanto, lai paziľotu par lietotāja kļūdām, piemēram, nepareizu<br />

datu ievadi kādā formas elementā, lai pievērstu uzmanību tam, ka ir izpildīts<br />

noteikts uzdevums, piemēram, pabeigta makro izpilde.<br />

� CancelEvent<br />

Atceļ notikumu, kas izsauca šīs makro darbību. Šāda veida makro parasti<br />

piesaista BeforeUpdate, OnOpen, OnUnload, vai OnPrint notikumiem.<br />

Lietojuma piemērs:<br />

Formā CancelEvent darbība tiek piesaistīta BeforeUpdate notikumam un<br />

veic datu likumības pārbaudi. Kad lietotājs ievada datus formas elementā,<br />

MS Access aktivizē pārbaudes makro pirms datu pievienošanas. Ja dati neatbilst<br />

nosacījumam, kas ir norādīts makro, CancelEvent darbība atceļ datu ievadīšanu.<br />

Bieži vien šī darbība ir saistīta ar MsgBox darbību attiecīga paziľojuma<br />

parādīšanai uz ekrāna.<br />

� Close<br />

Aizver MS Access logu, kas tiek norādīts argumentos, vai aktīvo logu, ja<br />

argumentos nekas netiek norādīts.<br />

Būtībā darbojas tāpat, kā File/Close komanda.<br />

� CopyObject<br />

Iekopē makro argumentos norādīto datu <strong>bāzes</strong> objektu citā MS Access datu<br />

bāzē vai arī aktīvajā datu bāzē ar citu nosaukumu.<br />

Ja kopēšana notiek uz citu datu bāzi, argumentos ir jāuzrāda šīs datu <strong>bāzes</strong><br />

nosaukums un ceļš uz to. Ja kopēts tiek aktīvajā datu bāzē, šis arguments jāatstāj<br />

tukšs, toties noteikti jānorāda objekta jaunais nosaukums.<br />

Būtībā darbojas tāpat, kā datu <strong>bāzes</strong> logā izvēlētam objektam pielietojot<br />

Edit/Copy un Edit/Paste komandas.<br />

� DeleteObject<br />

Dzēš norādīto datu <strong>bāzes</strong> objektu.<br />

Ja šai makro nenorāda Object Type un Object Name argumentus,<br />

MS Access bez jebkāda brīdinājuma dzēš objektu, kas tajā brīdī ir iezīmēts datu<br />

<strong>bāzes</strong> logā!<br />

Būtībā darbojas tāpat, kā datu <strong>bāzes</strong> logā izvēlētam objektam pielietojot<br />

Edit/Delete.<br />

� Echo<br />

Norāda, vai makro izpildei jāparādās uz datora displeja (Yes), vai nē (No).<br />

Ja Echo ir izslēgts (No), var lietot Hourglass darbību, lai vizuāli būtu<br />

redzams, ka makro tiek izpildīta.<br />

184<br />

© Vladimirs Ivanovs, 2007


� FindNext<br />

� FindRecord<br />

FindRecord formā vai datulapā atrod ierakstu, kas atbilst argumentos<br />

norādītajam kritērijam.<br />

FindNext atrod nākošo ierakstu, kas atbilst makro darbībai FindRecord vai<br />

Find dialoga logā norādītajam kritērijam.<br />

Parasti ar FindRecord darbību definē ieraksta atrašanas kritērijus un atrod<br />

pirmo ierakstu no datulapas sākuma vai no ieraksta, kur atrodas kursors. Pēc<br />

tam, atkārtoti izmantojot FindNext, atrod visus kritērijam atbilstošos ierakstus.<br />

Būtībā darbojas tāpat kā Edit/Find.<br />

� GoToControl<br />

Novieto kursoru argumentos norādītajā elementā vai laukā, formas vai<br />

datulapas skatā.<br />

Ja objekts ir datulapas skatā, kursors pārvieto esošajā ierakstā uz norādīto<br />

lauku.<br />

Šo darbību var izmatot, lai formas skatā novietotu kursoru uz apakšformas,<br />

kas arī ir elementa tips. Pēc tam var lietot GoToRecord darbību, lai nokļūtu uz<br />

vajadzīgo apakšformas ierakstu.<br />

� GoToPage<br />

Novieto kursoru argumentos norādītās lappuses pirmajā elementā.<br />

Šo darbību var izmantot, ja ir radīta forma ar vairākām lappusēm,<br />

piemēram, informācijas grupēšanai.<br />

� GoToRecord<br />

Norādīto ierakstu padara aktīvu formas argumentos, vaicājuma vai tabulas<br />

datulapā.<br />

Ja argumentos netiek norādīts Object Type un Object Name, ieraksts tiek<br />

fiksēts pašlaik aktīvajā datu <strong>bāzes</strong> objektā.<br />

Ar argumentiem Record un Offset tiek norādīts konkrētais ieraksts:<br />

o ja argumenta Record vērtība ir Next vai Previous, MS Access<br />

pārvieto kursoru uz priekšu vai atpakaļ par argumentā Offset<br />

minēto ierakstu skaitu;<br />

o ja argumenta Record vērtība ir Go To, MS Access pārvieto<br />

kursoru uz ierakstu, kura kārtas numurs ir norādīts argumentā<br />

Offset.<br />

� Hourglass<br />

Piešķir kursoram smilšu pulksteľa izskatu, kamēr notiek kādas<br />

makrokomandas izpilde, t. i., tādā veidā parāda, ka tiek izpildīta makrokomanda.<br />

� Maximize<br />

� Minimize<br />

� Restore<br />

Maksimizē vai minimizē aktīvo logu, piešķir maksimizētam vai<br />

minimizētam logam sākotnējos izmērus.<br />

Būtībā darbojas tāpat kā Maximize, Minimize vai Restore pogu (loga<br />

augšējā kreisajā stūrī) nospiešana.<br />

185<br />

© Vladimirs Ivanovs, 2007


Pirms šīm darbībām var būt vajadzīga SelectObject darbība, lai norādītu<br />

aktīvo logu.<br />

� MoveSize<br />

Pārvieto vai maina aktīvā loga izmērus.<br />

Argumentos jāuzrāda, kādus izmērus piešķirs logam:<br />

Right – attālums no kreisās malas;<br />

Down – attālums no augšas;<br />

Width – platums;<br />

Height – augstums.<br />

Ja kāds arguments netiek norādīts, MS Access atstāj attiecīgos izmērus<br />

neizmainītus.<br />

Izmēru mērvienība – collas vai centimetri, – nosaka Microsoft Windows<br />

Control Panel.<br />

� MsgBox<br />

Parāda uz ekrāna paziľojumu ar brīdinājumu vai informāciju.<br />

Ziľojums var saturēt 255 rakstu zīmes un brīdinājuma ikonu.<br />

Argumentā Title var ierakstīt ziľojuma virsrakstu. Ja netiek ierakstīts<br />

nekāds virsraksts, kā virsrakstu parāda "Microsoft MS Access".<br />

� OpenForm<br />

� OpenModule<br />

� OpenQuery<br />

� OpenReport<br />

� OpenTable<br />

Atver formu, moduli, vaicājumu, pārskatu vai tabulu Form view, Design<br />

view, Print Preview vai Datasheet view skatā – atkarībā no tā, kādi skati<br />

konkrētajam objektam ir pieejami.<br />

Argumentos noteikti jāuzrāda objekta nosaukums. OpenModule darbībai<br />

jāuzrāda arī procedūras nosaukums.<br />

Darbības argumenti ir atkarīgi no atveramā objekta tipa.<br />

Argumentam View no saraksta jāizvēlas skats, kādā objekts tiks atvērts.<br />

Piemēram, forma var tikt atvērta Form view, Design view, Print Preview vai<br />

Datasheet view skatos.<br />

Atverot formas un pārskatus, var uzrādīt arī Filter Name – filtra<br />

nosaukumu vai Where Condition – SQL WHERE izteiksmi (bez vārda WHERE),<br />

lai atlasītu vai sakārtotu ierakstus.<br />

Argumentam Data Mode no saraksta jāizvēlas datu ievada režīms: Add<br />

(lietotājs var pievienot jaunus, bet nevar labot jau esošos ierakstus), Edit<br />

(lietotājs var pievienot jaunus un labot jau esošos ierakstus) vai Read Only<br />

(lietotājs var tikai apskatīt ierakstus).<br />

Formām argumentam Window Mode no saraksta jāizvēlas režīms, kādā<br />

logs tiks atvērts: Normal (parastais darba režīms), Hidden (forma ir noslēpta),<br />

Icon (forma tiek atvērta kā ikona) vai Dialog (formas īpašības Modal un PopUp<br />

tiek norādīta Yes).<br />

186<br />

© Vladimirs Ivanovs, 2007


Būtībā darbojas tāpat, kā Open vai Design pogu nospiešana datu <strong>bāzes</strong><br />

logā.<br />

� OutputTo<br />

Exportē argumentos norādīto datu <strong>bāzes</strong> objektu (izľemot makro) uz<br />

šādiem failu formātiem:<br />

21.26.att. OutputTo formāti.<br />

Ja tiks eksportēts aktīvais objekts, ir jānorāda tā tips – Object Type<br />

arguments, bet jāatstāj tukša argumenta Object Name rinda.<br />

Argumentā Output File jānorāda faila nosaukums un ceļš uz to.<br />

Argumentu Auto Start norādot kā Yes, pēc objekta eksporta automātiski<br />

tiek sākta attiecīgā programma, piemēram, Microsoft Excel (.XLS failiem) vai<br />

Microsoft Word (.RTF failiem).<br />

Apakšformas un apakšpārskati eksportētajos failos netiek iekļauti.<br />

Būtībā darbojas tāpat, kā File/Save As/Export, norādot To an External File<br />

or Database.<br />

� PrintOut<br />

Izdrukā aktīvo datu <strong>bāzes</strong> objektu. Var drukāt datulapas, pārskatus un<br />

formas.<br />

Būtībā darbojas tāpat, kā datu <strong>bāzes</strong> logā izvēlētam objektam pielietojot<br />

File/Print.<br />

� Quit<br />

Beidz MS Access darbu un aizver to.<br />

Arguments Options nosaka, kas notiks ar iepriekš nesaglabātiem objektiem:<br />

Save All – visi objekti tiks saglabāti, Exit – objekti netiks saglabāti, Select<br />

Prompt – MS Access dialoga logā pajautās, ko darīt.<br />

Būtībā darbojas tāpat, kā File/Exit.<br />

� Rename<br />

Pārdēvē argumentos norādīto datu <strong>bāzes</strong> objektu.<br />

Kā arguments New Name noteikti jāieraksta jaunais nosaukums.<br />

Ja netiek norādīti argumenti Object Type un Old Name, pārdēvēts tiek datu<br />

<strong>bāzes</strong> logā izvēlētais objekts.<br />

Nav iespējams pārdēvēt atvērtu objektu.<br />

Būtībā darbojas tāpat, kā datu <strong>bāzes</strong> logā izvēlētam objektam pielietojot<br />

Edit/Rename.<br />

� RepaintObject<br />

Izpilda argumentos norādītā objekta ekrāna atjaunošanu.<br />

187<br />

© Vladimirs Ivanovs, 2007


Ja, piemēram, notiek vairāku objekta elementu vērtību pārrēķins, jaunās<br />

elementu vērtības MS Access parāda tikai aprēķina beigās. Lai elementa vērtību<br />

parādītu nekavējoties, lieto RepaintObject.<br />

Ja objekts norādīts netiek, tiek atjaunots aktīvais objekts.<br />

� Requery<br />

Tiek atjaunoti norādītā objekta vai elementa dati.<br />

Izmanto, lai aktīvais objekts jeb elements parādītu tikko notikušās izmaiľas<br />

datos.<br />

Ja argumentam Control Name ieraksta elementa nosaukumu (ir jāraksta<br />

vienkārši elementa nosaukums, nevis pilnā sintakse – Forms![formas<br />

nosaukums]![elementa nosaukums]), tiek atjaunota elementa vērtība.<br />

Ja argumentu atstāj tukšu, tiek atjaunoti aktīvā objekta dati.<br />

<strong>Datu</strong> atjaunošana notiek:<br />

o kad no jauna tiek izpildīts vaicājums, uz ko balstās objekts vai<br />

elements;<br />

o kad tabulā, uz ko balstās objekts vai elements, tiek parādīti<br />

tikko izmainītie vai pievienotie ieraksti.<br />

Elementi, kuru avots ir tabula vai vaicājums, ir List Box, Combo Box,<br />

apakšforma, OLE objekti.<br />

Pārējiem elementiem šī darbība izsauc atkārtotu elementa aprēķinu.<br />

Būtībā darbojas tāpat, kā taustiľu Shift + F9 nospiešana, kad kursors ir<br />

elementā.<br />

� RunApp<br />

No MS Access aktivizē Microsoft Windows vai MS-DOS programmu,<br />

piemēram, Microsoft Excel, Microsoft Word, Microsoft PowerPoint.<br />

Argumentā Command Line obligāti jāuzrāda izpildes faila nosaukums un<br />

ceļš uz to, kā arī vajadzīgie parametri.<br />

� RunCode<br />

Izpilda norādīto MS Access Basic funkciju, kuru glabā kādā no moduļiem.<br />

� RunCommand<br />

Izpilda kādu no MS Access izvēles rindā pieejamām komandām.<br />

Makro var tikt izpildīta tikai tad, ja šī komanda ir pieejama aktīvā loga<br />

skatā. Piemēram, makro nevar izpildīt nevienu no izvēlnes Records komandām,<br />

ja aktīvais objekts ir Design skatā.<br />

� RunMacro<br />

Izpilda norādīto makro vai makro grupu – pirmo makro no makro grupas.<br />

Ar argumentu Repeat Count var norādīt, cik reizes makro izpilde ir<br />

jāatkārto.<br />

Makro izpildes atkārtošanu var noteikt arī ar argumentu Repeat Expression.<br />

Makro izpilde tiek apturēta, ja šeit norādītais nosacījums netiek izpildīts (tā<br />

vērtība ir False).<br />

Būtībā darbojas tāpat, kā Tools/Macro/Run Macro.<br />

188<br />

© Vladimirs Ivanovs, 2007


� RunSQL<br />

Izpilda MS Access darbības vaicājumu (action query), izmantojot SQL<br />

izteiksmi (nevis saglabāta vaicājuma nosaukumu).<br />

� Save<br />

Saglabā MS Access objektu, kas tiek norādīts argumentos, vai aktīvo<br />

objektu, ja argumentos nekas netiek norādīts.<br />

Būtībā darbojas tāpat, kā File/Save komanda.<br />

� SelectObject<br />

Izvēlas norādīto datu <strong>bāzes</strong> objektu un aktivizē to.<br />

Arguments In Database Window – Yes nozīmē, ka objekts izvēlēts datu<br />

<strong>bāzes</strong> logā, t. i., tas nav atvērts. Ja šis arguments ir No – un objekts nav atvērts,<br />

MS Access paziľo par kļūdu.<br />

Parasti šo darbību lieto, lai izvēlētos objektu, ar kuru pēc tam veic citas<br />

darbības, piemēram, Restore, Maximize vai GoToControl.<br />

� SendKeys<br />

Nosūta taustiľu kombināciju MS Access vai aktīvai Microsoft Windows<br />

aplikācijai.<br />

MS Access reaģē uz taustiľu kombināciju tieši tāpat, it kā tā būtu ierakstīta<br />

tieši kādā MS Access logā.<br />

Parasti šo darbību izmanto, lai ievadītu informāciju dialoga logā un lai<br />

nepārtrauktu kādas makro darbību, kad jāatbild uz dialoga loga jautājumu<br />

(piemēram, Save As loga).<br />

� SendObject<br />

Ievieto norādīto MS Access datulapu, formu, pārskatu vai moduli<br />

elektroniskā pasta vēstulē, kur to var apskatīt un nosūtīt. MS Access objekti var<br />

tikt ievietoti Microsoft Excel (.XLS), HTML (.html) un teksta formātos – richtext<br />

(.RTF) vai MS-DOS Text (.TXT), ar kuriem strādā Microsoft Exchange,<br />

Microsoft Mail vai cita elektroniskā pasta sistēma.<br />

� SetValue<br />

Ievieto lauka, elementa vai īpašības vērtību formā, formas datulapā vai<br />

pārskatā.<br />

Vērtību nevar piešķirt aprēķinātiem elementiem.<br />

Darbībai ir jāuzrāda abi argumenti:<br />

o Item – lauka, elementa vai īpašības nosaukums, kam tiks ievietota<br />

vērtība. Ja makro tiek aktivizēta no citas formas, jālieto pilna<br />

sintakse: Forms![formas nosaukums]![elementa<br />

nosaukums];<br />

o Expression – izteiksme, kas nosaka ievietojamo vērtību,<br />

vienkāršākajā gadījumā cita elementa nosaukums. Vienmēr jālieto<br />

pilna sintakse.<br />

� SetWarnings<br />

Nosaka, vai makro izpildes laikā jāparādās sistēmas paziľojumiem.<br />

Paziľojumi par kļūdām parādīsies jebkurā gadījumā.<br />

189<br />

© Vladimirs Ivanovs, 2007


Būtībā darbojas tāpat, kā Enter taustiľa nospiešana ikreiz, kad MS Access<br />

parāda ziľojumu vai brīdinājumu, t. i., noklusēto pogu (parasti OK vai Yes)<br />

izvēle.<br />

Kad attiecīgā makro beidzas, MS Access automātiski no jauna ieslēdz<br />

sistēmas ziľojumu uzrādīšanu.<br />

� ShowAllRecords<br />

Atceļ jebkuru aktīvās tabulas, vaicājuma vai formas filtru un parāda visus<br />

ierakstus.<br />

Būtībā darbojas tāpat, kā Form view vai Datasheet view skatā pielietota<br />

Records/Remove Filter/Sort komanda.<br />

� ShowToolbar<br />

Parāda vai noslēpj kādu no MS Access rīku joslām vai lietotāja radītu rīku<br />

joslu.<br />

Rīku josla jāizvēlas no saraksta, kur vispirms ir MS Access rīku joslas, bet<br />

saraksta galā ir lietotāja radītās joslas.<br />

Būtībā darbojas tāpat View/Toolbars komanda ar rīku joslas norādi.<br />

� StopAllMacros<br />

� StopMacro<br />

Pārtrauc visu makrokomandu vai esošās makro izpildi.<br />

Parasti lieto kopā ar kādu nosacījumu, kuram izpildoties, tiek pārtraukta<br />

jebkuras vai esošās makro izpilde.<br />

� TransferDatabase<br />

� TransferSpreadsheet<br />

� TransferText<br />

Importē vai eksportē datus no esošās MS Access datu <strong>bāzes</strong> uz citu datu<br />

bāzi, elektronisko tabulu, teksta failu, kā arī pievieno citas datu <strong>bāzes</strong> tabulu.<br />

Ir iespējams eksportēt select tipa vaicājumu datus, ja vien tie nav vaicājumi<br />

ar parametriem. MS Access eksportē vaicājuma datulapu, it kā tā būtu tabula.<br />

Būtībā darbojas tāpat, kā File/Get External Data vai File/Save As/Export<br />

komandas.<br />

21.6. Makro piemēri<br />

Kā makro paraugs Northwind datu bāzē ir uzskatāma makro grupa<br />

Suppliers. Atverot to veidošanas skatā, loga pirmās rindas komentāros ir teikts,<br />

ka šīs grupas makro var izmantot formā Suppliers, nomainot Visual Basic<br />

programmēšanas valodas kodus, kas pašlaik nodrošina formas darbību.<br />

Tātad, nopietnās un rūpīgi izstrādātās datu bāzēs, kurām jāveic diezgan<br />

sarežģīti uzdevumi un kurām jāspēj adekvāti reaģēt uz datu <strong>bāzes</strong> lietotāja<br />

neprognozējamo rīcību, lieto nevis makro, bet programmu kodus. Kodi tiek<br />

izpildīti ātrāk nekā makro, kaut gan vienkāršā datu bāzē lietotājs to praktiski<br />

nejūt.<br />

Kaut arī MS Access piedāvā iespēju lietotāja vietā uzrakstīt vienkāršākos<br />

kodus, tomēr programmu kodu lietošana prasa no datu <strong>bāzes</strong> veidotāja vismaz<br />

elementāras Visual Basic zināšanas. Makro apgūšana ir vienkāršāka.<br />

190<br />

© Vladimirs Ivanovs, 2007


Makro Suppliers logs veidošanas skatā:<br />

21.27.att. Suppliers makro.<br />

� Viens no izplatītākajiem makro lietošanas piemēriem formā ir makro<br />

piekārtošana kādai pogai. Nospiežot šo pogu, piekārtotā makro atver<br />

citu formu.<br />

Add Products makro var tikt piekārtota formas Suppliers pogai Add<br />

Products. Atverot formu veidošanas skatā un noklikšķinot uz pogas Add<br />

Products, īpašību loga nodaļā Event šobrīd notikuma īpašībai OnClick ir<br />

piekārtoti [Event Procedure] programmas kodi. Tātad, skatā Form View,<br />

noklikšķinot uz šīs pogas, tiek izpildīti programmas kodi. Taču kodu vietā<br />

īpašībai OnClick varētu tikt piekārtota Add Products makro:<br />

21.28.att. Suppliers forma.<br />

191<br />

© Vladimirs Ivanovs, 2007


Makro Add Products darbības:<br />

� darbība Echo novērš ekrāna ľirbēšanu makro izpildes laikā;<br />

� darbība Close aizver formu Product List;<br />

� darbība OpenForm atver formu Products režīmā Add, kad ir<br />

iespējama tikai jaunu ierakstu pievienošana;<br />

� darbība SetValue ievieto formas Suppliers lauka SupplierID vērtību<br />

formas Products laukā SupplierID;<br />

� darbība GoToControl novieto kursoru kontrolelementā CategoryID.<br />

Show Related Products makro var tikt piekārtota formas Suppliers<br />

notikuma īpašībai OnCurrent. Formas Suppliers īpašību loga nodaļā Event<br />

šobrīd notikuma īpašībai OnCurrent ir piekārtoti [Event Procedure]<br />

programmas kodi. Taču kodu vietā īpašībai OnCurrent varētu tikt piekārtota<br />

Show Related Products makro:<br />

21.29.att. Formas īpašība On Current.<br />

Arī notikumu īpašībām BeforeUpdate un OnClose ir piekārtotas [Event<br />

Procedure] – tās var tikt aizvietotas ar makro Validate Postal Codes un Close.<br />

Makro Show Related Products darbības:<br />

� darbība StopMacro apstādina makro izpildi, ja Suppliers formā nav<br />

norādīts piegādātājs – lauka SuppliersID vērtība ir Null;<br />

� darbība OpenForm priekšplānā novieto formu Product List, ja tā jau<br />

ir atvērta, un parāda ierakstus, kas attiecas uz piegādātāju, kurš<br />

šobrīd ir izvēlēts Suppliers formā.<br />

21.7. AutoExec makro un Startup logs<br />

Ir iespējams izveidot speciālu makro, kas automātiski izpildās, kad atver<br />

MS Access datu bāzi. Piemēram, atverot datu bāzi, vienmēr var tikt atvērta<br />

izvēles forma, kurā var izvēlēties tālākās darbības.<br />

192<br />

© Vladimirs Ivanovs, 2007


Lai izveidotu šādu makro:<br />

� jāizveido jauna makro;<br />

� jādefinē darbības, kas šai makro jāizpilda;<br />

� jāsaglabā šī makro ar nosaukumu AutoExec.<br />

Startup dialoga logā papildus Auto Exec var nodefinēt arī darbības, kuras<br />

MS Access būtu jāizpilda, atverot datu bāzi. AutoExec makro tiek izpildīta pēc<br />

tam, kad ir izpildīti Startup logā norādītie nosacījumi.<br />

Lai atvērtu Startup logu, jāizpilda Tools/Startup.<br />

Startup definīcijas un AutoExec makro attiecas tikai uz esošo datu bāzi.<br />

Lai atvērtu datu bāzi, kurā ir AutoExec makro vai Startup definīcijas, bez to<br />

izpildes, atverot datu bāzi, jātur nospiests Shift taustiľš.<br />

193<br />

© Vladimirs Ivanovs, 2007


22.1. SQL<br />

22. SQL valodas pamati<br />

Šajā nodaļā aplūkota valoda SQL (Structured Query Language –<br />

strukturizētu pieprasījumu valoda), tās pielietojums, konstrukcijas un sintakse,<br />

apskatot SQL vispārīgos un arī specifiskos SQL pielietojumus Access datu<br />

bāzēs. SQL zināšanas lietotājam ļaus vieglāk izprast pieprasījuma izpildi un<br />

veidot daudz jaunus un sarežģītākus pieprasījumus, kurus būtu problemātiski<br />

realizēt ar iepriekš aplūkotajām metodēm (pieprasījumu veido tikai grafiskajā<br />

vidē). SQL zināšanas ir nepieciešamas arī Access pielikumos, kas tiek realizēti<br />

ar VBA koda palīdzību.<br />

Valoda SQL – tā ir visizplatītākā datu bāzu vadības valoda. SQL ir valoda,<br />

kas lietotājam ļauj “sarunāties” ar datu bāzi un iegūt no tās noderīgu<br />

informāciju. Ar SQL lietotājs var lasīt, rakstīt un mainīt informāciju datu bāzē.<br />

Pirmais SQL standarts radās 1986. gadā ar nosaukumu ANSI X3.135-1986.<br />

Jaunākā ANSI X3.135-1992 versija ir ieguvusi saīsinātu nosaukumu SQL-92.<br />

SQL galvenā priekšrocība ir tās izmantojamībā visās datu bāzu vadības<br />

sistēmās, kuras atbalsta SQL valodas pielietojumu. SQL sintakse ir tik<br />

universāla, ka nav principiālu atšķirību vai SQL pielietots Access, FoxPro vai<br />

kādā jau daudz sarežģītākā datu bāzu vadības sistēmā.<br />

Tomēr ir zināmas nianses, tāpēc aplūkojot SQL vairāk tiks aplūkots Jet<br />

SQL. Jet SQL (pilnā nosaukumā Microsoft Jet Database Engine SQL) ir SQL<br />

paveids, kas specializēts Access vajadzībām.<br />

SQL ir praktiski pielietojama valoda relāciju datu bāzēs. SQL nepieder ne<br />

pie vienas no sistēmu vai programmēšanas valodu grupām. SQL ir kopuorientēta<br />

valoda, tāpēc tajā nav līdzekļu programmas plūsmu organizēšanai<br />

(koka struktūras un cikli), nav arī interfeisa organizēšanas līdzekļu, piemēram,<br />

atslēgas vārdi, kas nodrošinātu formu un atskaišu ģenerēšanu. Protams, ir arī<br />

specifiski izľēmumi – Transact-SQL, ko pielieto Microsoft SQL Server, ir<br />

pievienoti specifiski operatori plūsmu kontrolei (IF…ELSE, WHILE).<br />

SQL darbības pamatā ir pieprasījumi – SQL teikumi. Aktivizējot šādu<br />

pieprasījumu, tas vēršas pie datu <strong>bāzes</strong> un veic tam uzdotās funkcijas, atkarībā<br />

no pielietotājām komandām.<br />

Visus SQL (ANSI SQL) pieprasījumus var iedalīt sešās grupās:<br />

� <strong>Datu</strong> definēšana;<br />

� <strong>Datu</strong> pieprasījumi;<br />

� Darbības ar datiem;<br />

� Kursoru vadība;<br />

� Transakciju apstrāde;<br />

� Administrēšana un kontrole.<br />

194<br />

© Vladimirs Ivanovs, 2007


Aplūkosim tikai pirmus trīs SQL pielietojumus, pārējie trīs jau ir<br />

komplicētāki un arī daļēji nav pielietojami Jet SQL (piemēram, Access<br />

administrēšana un kontrole nav iespējama ar SQL palīdzību).<br />

Katrs SQL pieprasījums sastāv no atsevišķām komponentēm (atslēgas<br />

vārdiem):<br />

� Komandas ir SQL pieprasījumu pamatkomponentes. Tās izsaka<br />

pieprasījuma pamatdarbību un kategoriju. Vissaizplatītākā SQL<br />

komanda ir SELECT – datu atlasīšanas pamatkomanda.<br />

� Nosacījumi nosaka pieprasījuma darbības diapazonu un parametrus,<br />

piemēram – nosacījums komanda WHERE.<br />

� Modifikatori nosaka izmaiľas pieprasījumā, piemēram – ORDER BY<br />

� Operatori. Tādi operatori, kā “=”, “”, tiek pielietoti<br />

salīdzināšanai vai starptabulu saišu definēšanai. Pie operatoriem pieder<br />

arī loģiskie operatori AND, OR un NOT .<br />

� Statiskās funkcijas atgriež vērtību, kas ir rezultāts funkcijai, kas ir<br />

pielietota pamatdatiem (lauku vērtībām). Piemēram Sum() – lauku<br />

summa.<br />

SQL pieprasījumu pierakstā nav svarīgi lielie un mazie burti. Bet ieteicams<br />

atslēgas vārdus rakstīt ar lielajiem burtiem.<br />

Pieprasījumi sastāv no iepriekš minētajiem atslēgas vārdiem, objektu<br />

nosaukumiem un speciālajiem simboliem:<br />

� Punktu (.) lieto tabulas nosaukuma un lauka nosaukuma saistīšanai.<br />

Piemērs: tblSkolens.Vards<br />

� Kvadrātiskās iekavas ([ ]) lieto tikai gadījumos, ja ir jāatsaucas uz<br />

objekta nosaukumu, kas sastāv no vairākiem vārdiem, kas ir atdalīti ar<br />

atstarpēm.<br />

Piemērs: [tblAtlasitie skoleni]<br />

� Komats (,) – lieto līdzīgu objektu nosaukumu atdalīšanai.<br />

Piemērs: vards, uzvards, adrese<br />

� Pēdiņas (') & (“) – lieto simboliskajiem mainīgajiem. Jet SQL var lietot<br />

gan vienkāršās, gan dubultās pēdiľas, vienkāršās ieteicams lietot Access<br />

VBA koda SQL sintaksei.<br />

Piemērs: WHERE tblSkolens.Vards = "jānis"<br />

195<br />

© Vladimirs Ivanovs, 2007


� Zvaigznīte (*), jautājuma zīme (?), izsaukuma zīme (!). Šos simbolus<br />

izmanto simboliskajos mainīgajos un salīdzināšanai.<br />

SQL pieprasījumu pierakstā nav svarīgi lielie un mazie burti. Bet ieteicams<br />

atslēgas vārdus rakstīt ar lielajiem burtiem.<br />

22.2. <strong>Datu</strong> definēšana<br />

Izveidot jaunu tabulu var daudzmaz interaktīvi, izmantojot kādu no Access<br />

piedāvātajiem veidiem (Datasheet View, Design Table) vai ar Wizarda<br />

palīdzību. Ir arī iespēja izveidot tabulu ar Make Table Query pieprasījuma<br />

palīdzību.<br />

Šādu iespēju, izveidot jaunu tabulu, piedāvā arī SQL. Ar SQL palīdzību var<br />

izveidot jaunas tabulas, definēt laukus, indeksus un saites starp tabulām.<br />

CREATE TABLE tabulas_nosaukums (lauka_nosaukums<br />

datu_tips [lauka_izmērs] [,lauka_nosaukums datu_tips<br />

…])<br />

Tiek izveidota jauna tabula (tabulas_nosaukums) ar laukiem, kas uzskaitīti<br />

sarakstā iekavās. Katra lauka īpašības norāda aiz lauka nosaukuma<br />

(lauka_nosaukums) atdalot ar atstarpi (space). Gadījumā, ja tabulas nosaukumā<br />

lieto atstarpes, tas jāliek kvadrātiskajās iekavās ([]). Kā datu tipu (datu_tips) var<br />

norādīt jebkuru Jet SQL datu tipu, piemēram - INTEGER vai TEXT. Lauka<br />

izmēru (lauka_izmērs) var nenorādīt (pēc noklusēšanas Access pielieto lauka<br />

garumu 50).<br />

CONSTRAIN indeksa_nosaukums {PRIMARYKEY| UNIQUE|<br />

REFERENCES saistītā_tabula [(saistītais_lauks)]}<br />

Komandu CONSTRAIN lieto, lai definētu vai dzēstu indeksus vai arī<br />

starptabulu saites. Šo komandu lieto pieprasījumos ALERT TABLE un<br />

CREATE TABLE. Ar atslēgas vārdiem PRIMARYKEY un UNIQUE tiek<br />

definēts indeksa (indeksa_nosaukums) tips – primārā atslēga vai unikāls<br />

identifikators. Ja lieto atslēgas vārdu REFERENCES, tad tiek definēta saite<br />

starp šo lauku un lauku (saistītais_lauks) citā tabulā (saistītā_tabula). Elements<br />

[(saistītais_lauks)] ir nepieciešams tikai gadījumā, ja saistītais_lauks nav<br />

primārā atslēga piesaistītajā tabulā.<br />

CREATE [UNIQUE] INDEX indeksa_nosaukums ON<br />

tabulas_nosaukums (lauka_nosaukums [ACS|DESC]<br />

[,lauka_nosaukums [ACS|DESC]…) WITH {PRIMARY|DISALLOW<br />

NULL|IGNORE NULL}]<br />

Veido viena vai vairāku lauku indeksu. Ja pieprasījumā lieto operatoru<br />

PRIMARY, tad var nelietot UNIQUE – tas tiek pielietots automātiski.<br />

Komponente DISALLOW NULL aizliedz saglabāt ierakstus, kuriem indeksēto<br />

196<br />

© Vladimirs Ivanovs, 2007


lauku vērtība ir Null. Komponente IGNORE NULL aizliedz indeksēt laukus,<br />

kuri satur ierakstus ar vērtību Null.<br />

ALERT TABLE lauka_nosaukums<br />

Ļauj pievienot tabulai lauka_nosaukums jaunus laukus (ADD COLUMN<br />

lauka_nosaukums …) vai izdzēst esošos (DROP COLUMN lauka_nosaukums<br />

…)<br />

DROP INDEX indeksa_nosaukums ON tabulas_nosaukums<br />

Izdzēš indeksu no tabulas tabulas_nosaukums.<br />

DROP TABLE tabulas_nosaukums<br />

Izdzēš tabulu tabulas_nosaukums no datu <strong>bāzes</strong>.<br />

22.3. <strong>Datu</strong> pieprasījumi<br />

Select query<br />

SELECT[ALL|DISTINCT|DISTINCTROW] [TOP n [PERCENT]]<br />

lauku_saraksts<br />

FROM tabulu_nosaukumi<br />

[WHERE atlases kritēriji<br />

[ORDER BY kārtošanas_kolonas [ASC|DESC]]<br />

SELECT - pamatkomanda, kas norāda, ka pieprasījums būs datu atlases<br />

pieprasījums, iedaļā lauku_saraksts norāda to lauku sarakstu, kurus atlasīs,<br />

izpildot doto pieprasījumu. Šeit parādās tikai tie lauki, kas veidojot grafiskā<br />

režīmā QBE režģī tiek atzīmēti ar īpašību Show. Vairāku lauku gadījumā tie tiek<br />

atdalīti ar komatu. Gadījumā ja ir nepieciešami visi lauki, var tos visus<br />

neuzskaitīt, bet vienkārši lietot simbolu * (Shift+8). Ja lauka nosaukums sastāv<br />

no vairākām atsevišķām daļām, tad tas jāliek kvadrātiskajās iekavās (iepriekš to<br />

jau minēja, ka atstarpes vietā lietot apakšējo pasvītrojumu, piemēram –<br />

Skolens_ID). Ja lieto vairākas tabulas, tad lauku nosaukumu sakritības<br />

gadījumos jālieto pilnais lauka nosaukums – <br />

Piemērs:<br />

SELECT tblSkolens.[Skolena ID], tblSkolens.Vards,<br />

tblSkolens.Uzvards<br />

FROM tblSkolens<br />

197<br />

© Vladimirs Ivanovs, 2007


Izpildot pieprasījumu tā rezultāts ir:<br />

Identifikators Vārds Uzvārds<br />

1 Alfrēds Imerfreijs<br />

2 Anita Eizenberga<br />

3 Dzidra Hudožilova<br />

4 Jānis Mārtinsons<br />

5 Valters Gudermanis<br />

6 Ingrīda Malaševska<br />

7 Marija Mazaļevska<br />

Neobligātie predikāti ALL, DISTINCT, DISTINCTROW nosaka ierakstu<br />

atlases veidu.<br />

ALL norāda, ka tiks atlasītas visi pieprasījuma ieraksti, kādas paredz<br />

pieprasījumā uzstādītie parametri.<br />

Predikāts DISTINCT norāda to, ka no pieprasījuma rezultāta tiks izslēgtas<br />

rindas ar datiem, kas atkārtojas.<br />

Piemērs:<br />

SELECT DISTINCT Vards<br />

FROM tblSkolens<br />

Šī pieprasījuma rezultāts ir visi skolēnu vārdi vienu reizi:<br />

Vārds<br />

Adolfas<br />

Agija<br />

Agnis<br />

Agris<br />

Aigars<br />

Aija<br />

Ainars<br />

Predikāts DISTINCTROW attiecas tikai uz vairāku tabulu pieprasījumiem<br />

– tiek izslēgti vienādi ieraksti.<br />

Neobligātais predikāts TOP n [PERCENT], kas ierobežo pieprasījuma<br />

rezultāta apjomu, atgriež tikai n rindas vai n procentus rindu no kopapjoma.<br />

Predikātu TOP var izmanot tādos gadījumos, kad ir nepieciešama kāda<br />

svarīgāka daļa no pieprasījuma rezultāta datu kopapjoma.<br />

Piemērs:<br />

SELECT TOP 10 *<br />

FROM tblSkolens<br />

Šī pieprasījuma rezultāts būtu 10 pirmās rindas(ieraksti) no tabulas Skolens.<br />

“Zvaigznīte” norāda to, ka tiks ľemti visi tabulas lauki.<br />

198<br />

© Vladimirs Ivanovs, 2007


FROM tabulu_nosaukumi norāda tabulu vai pieprasījumu nosaukumus,<br />

kuri tiek izmantoti jaunā pieprasījuma veidošanā. Tabulu (pieprasījumu)<br />

nosaukumus atdala ar komatu.<br />

Vairāku tabulu gadījumā var lietot arī saīsinātus tabulu nosaukumus – a, b,<br />

c, kas ir speciāli jānodefinē.<br />

Piemērs:<br />

SELECT a.Vards, a.Uzvards, b.Nosaukums<br />

FROM tblSkolens AS a, tblKlase AS b<br />

WHERE (((a.[Klases ID])=[b].[Klases ID]))<br />

Šo iespēju ērti lietot gadījumos, kad ir daudz tabulu, vai arī to nosaukumi ir<br />

gari. Šis pierakts nedaudz izmaina QBE režģi:<br />

22.1.att. QBE režģis pēc SQL vaicājuma izpildes.<br />

WHERE atlases_kritēriji Šis parametrs nosaka atlases kritēriju kopu, pēc<br />

kuriem atlasa jaunā pieprasījuma datus. Šeit var izmantot dažādu datu tipu<br />

kritērijus. Lietojot teksta tipa atlases kritēriju, var lietot filtrēšanas prefiksu<br />

LIKE. Lietojot kritēriju skaitliskām vērtībām, izmanto standarta salīdzināšanas<br />

simbolus ( = < > ). Kritērijus lieto kopā ar loģiskajām operācijām AND, OR un<br />

NOT. Nelietojot parametru WHERE, tiek atrasti visi, kādus paredz atbilstošais<br />

pieprasījums.<br />

Piemērs:<br />

SELECT Vards, Uzvards, Pers_kods<br />

FROM tblSkolens<br />

WHERE (((Vards) Like "*s") AND ((Len([Vards]))=9))<br />

199<br />

© Vladimirs Ivanovs, 2007


Šī pieprasījuma rezultāts ir visi tie skolēni, kam vārds beidzas ar “s” un ir 9<br />

simbolus garš:<br />

Vārds Uzvārds Personas kods<br />

Anatolijs Ribjakovs 180590-11820<br />

Gunvaldis Kalniņš 201087-10715<br />

Valentīns Arbidans 130488-11844<br />

Vidmantas Čepļauskis 210491-10312<br />

[ORDER BY kārtošanas_kolonas [ASC|DESC]] – nosaka kārtošanas<br />

secību, ASC (Ascending) – augošā secībā , DESC (Descending) – dilstošā<br />

secībā.<br />

Piemērs:<br />

…<br />

ORDER BY vards DESC<br />

Šis pieprasījuma rezultāts sakārtots pēc lauka “vards” dilstošā secībā.<br />

Augošo kārtošanu predikātu ASC var nelietot – Access to piedāvā kā noklusēto<br />

datu kārtošanas veidu.<br />

22.4. Statistisko funkciju izmantošana SQL ( Total Query )<br />

Piemērs:<br />

SELECT [ALL|DISTINCT|DISTINCTROW]<br />

Statistiskā_funkcija(lauka_nosaukums) AS<br />

lauka_jaunais_nosaukums<br />

[, lauku_nosaukumi]<br />

FROM tabulu_nosaukumi<br />

[WHERE atlases_nosacījumi]<br />

GROUP BY grupēšans_nosacījumi<br />

[HAVING rezultāta_nosacījumi]<br />

[ORDER BY kārtošanas_kolonas]<br />

SELECT Dzimums, Count(tblSkolens.[Skolena ID]) AS<br />

Skaits<br />

FROM tblSkolens<br />

GROUP BY Dzimums<br />

Pieprasījuma rezultāts ir skolēnu skaits pa dzimumiem:<br />

Statistiskā_funkcija<br />

Dzimums Skaits<br />

Siev 108<br />

Vīr 159<br />

Sum - summē lauka datus. Ir spēkā šādiem lauku tipiem: Number,<br />

Data/Time, Currency, AutoNumber, Yes/No;<br />

200<br />

© Vladimirs Ivanovs, 2007


Avg - atrod lauka vidējo vērtību. Ir spēkā šādiem lauku tipiem: Number,<br />

Data/Time, Currency, AutoNumber, Yes/No;<br />

Min – atrod lauka minimālo vērtību;<br />

Max– atrod lauka maksimālo vērtību;<br />

Count – saskaita, cik lauka ierakstiem ir vērtības. Tukšie ieraksti ar Null<br />

vērtību netiek skaitīti;<br />

StDev – atrod lauka vērtību standarta novirzi. Ir spēkā šādiem lauku tipiem:<br />

Number, Data/Time, Currency, AutoNumber, Yes/No;<br />

Var – atrod lauka vērtību dispersiju. Ir spēkā šādiem lauku tipiem: Number,<br />

Data/Time, Currency, AutoNumber, Yes/No;<br />

First – atrod pirmo lauka vērtību;<br />

Last – atrod pēdējo lauka vērtību.<br />

AS lauka_jaunais_nosaukums – šajā daļā norāda statiskās funkcijas lauka<br />

jauno nosaukumu. QBE režģī tas parādās iedaļā Field ar šādu sintaksi:<br />

Lauka_jaunais_nosaukums: Statiskā_funkcija (lauka_nosaukums)<br />

GROUP BY grupēšans_nosacījumi – tiek norādīti grupēšanas nosacījumi.<br />

HAVING rezultāta_nosacījumi – nosacījums vai nosacījumu kopa, kuriem<br />

jāizpildās pēc statiskās funkcijas pielietojuma.<br />

WHERE atlases_nosacījumi - nosacījums vai nosacījumu kopa, kuriem<br />

jāizpildās pirms statiskās funkcijas pielietojuma. QBE režģī to norāda kritēriju<br />

laukā, bet kā funkciju norāda Where. Rindā Show krustiľš automātiski tiek<br />

izdzēsts, jo pieprasījuma rezultātā šī informācija netiek atspoguļota.<br />

Piemērs:<br />

SELECT DISTINCT Vards , Count(tblSkolens.Vards) AS<br />

skaits<br />

FROM tblSkolens<br />

WHERE Dzimums="vīr"<br />

GROUP BY Vards<br />

HAVING Count(Vards)>4<br />

ORDER BY Count(Vards) DESC<br />

Šajā pieprasījumā lieto abu veidu kritērijus – pirms un pēc statisko funkciju<br />

pielietojuma (tiek skaitīti visu to zēnu vārdi, kuri atkārtojas vairāk kā četras<br />

reizes):<br />

Vārds skaits<br />

Jānis 11<br />

Andris 8<br />

Aleksandrs 7<br />

Andrejs 5<br />

201<br />

© Vladimirs Ivanovs, 2007


22.5. Saišu definēšana SQL<br />

Saišu definēšanai starp divām vai vairākām tabulām un to saistīšanai ar<br />

SQL palīdzību izmanto struktūru JOIN ON, kas nosaka piesaistāmās tabulas<br />

tipu un saistību starp laukiem.<br />

SELECT [ALL|DISTINCT|DISTINCTROW] lauku saraksts FROM<br />

tabulas_nosaukums {INNER|LEFT|RIGHT} JOIN<br />

saistītā_tabula<br />

{INNER|LEFT|RIGHT} JOIN saistītā_tabula<br />

…<br />

ON saites_nosacījums<br />

ON saites_nosacījums<br />

…<br />

[WHERE atlases_kritērjsļ<br />

[ORDER BY kārtošanas_kolonas]<br />

tabulas_nosaukums {INNER|LEFT|RIGHT} JOIN saistītā_tabula .<br />

Šeit norāda divu saistīto tabulu nosaukumus (pa labi un pa kreisi no komandas<br />

JOIN ) un to saistības tipu. Parametra saistītā_tabula vietā var būt konstrukcija<br />

JOIN .. ON, kur jau definē otrās un trešās tabulas saistību. Šādā veidā<br />

sasaistītas visas pieprasījuma tabulas.<br />

Pirms operatora JOIN jābūt norādītam vienam no trijiem saites definēšanas<br />

operatoriem: INNER (iekšējā apvienošana), LEFT (kreisā ārējā apvienošana),<br />

RIGHT (labā ārējā apvienošana). Grafiskajā režīmā saites definēšana notiek<br />

logā Join Properties.<br />

ON saites_nosacījums. Apraksta divus laukus un saiti starp tiem. Viens<br />

lauks atrodas tabulā tabulas_nosaukums, bet otra - saistītā_tabula. Izteiksmē<br />

lieto salīdzināšanas operatorus ( =, >,


Skolotājs Klase<br />

Ingrīda Štūla 1.b<br />

Aivars Bukovskis 3.b<br />

Egons Pabērzs 4.b<br />

Regīna Balķēna 2.b<br />

Gunta Mežāks 5.a<br />

Jānis Dārziņš 3.c<br />

Inga Kaņepe 5.b<br />

Inese Freivalde 4.a<br />

Viesturs Aukons 2.a<br />

Renārs Bārzdiņš 1.a<br />

Ilgvars Vimbulis 3.a<br />

Agris Bērziņš 1.c<br />

Evija Klusa nav<br />

Piemērā izmantots operators IIF – null vērtība aizstāta ar tekstu “nav”<br />

(neizmantojot šo operatoru lauks “klase” saturētu vērtību null), kā arī apvienoti<br />

lauki “vards” un “uzvards”. Šis piemērs parāda, kā izmantojot sīkas nianses un<br />

dažādas konstrukcijas, var panākt vēlamo pieprasījumu.<br />

Saišu definēšana vispārīgi un SQL sākotnēji lietotājam var sagādāt zināmas<br />

problēmas, bet tā ir lieta, ko vajadzētu mācīties eksperimentālā ceļā – veidot<br />

dažādas saišu kombinācijas un aplūkot to rezultātu.<br />

Saišu definēšanā ir daži specifiski gadījumi, kuros pat lietotājam ar pieredzi<br />

var rasties problēmas:<br />

� Starp divām tabulām ir vairāk kā viena saite;<br />

� Tabulai ir saite pašai ar sevi;<br />

� Jaunais pieprasījums balstās uz diviem citiem pieprasījumiem (šāda<br />

konstrukcija ir normāla un pieļaujama), bet šinī gadījumā abi pieprasījumi<br />

ir veidoti no vienas un tās pašas tabulas. Šajā gadījumā nestrādās kreisā<br />

un labā saite.<br />

22.6. Apvienošanas pieprasījumi<br />

Apvienošanas pieprasījumi ļauj kombinēt atlases pieprasījumu rezultāta<br />

datus vienā tabulā – ierakstot tos vienu aiz otra jaunā tabulā. Apvienošanas<br />

pieprasījumus ar operatoru UNION nevajadzētu sajaukt ar iekšējo, kreiso un<br />

labo datu apvienošanas pieprasījumiem, ko palīdz realizēt operators JOIN.<br />

Relāciju datu bāzu teorijā UNION sauc par apvienošanu, JOIN – par<br />

savienošanu. Access datu <strong>bāzes</strong> veidošanas pamatlogā šī tipa pieprasījumi tiek<br />

apzīmēti ar speciālu zīmējumu – divi sakrustoti riľķīši. UNION pieprasījumu<br />

nevar izveidot Query Design skatā – tikai SQL skatā (pieprasījumā, ierakstot<br />

atslēgas vārdu UNION, lietotājam Design skats vairs nebūs pieejams).<br />

SELECT atlases_operators<br />

[GROUP BY grupēšans_nosacījumi]<br />

[HAVING rezultāta_nosacījumi]<br />

[UNION SELECT atlases_operators]<br />

203<br />

© Vladimirs Ivanovs, 2007


[GROUP BY grupēšanas_nosacījumi]<br />

[HAVING rezultāta_nosacījumi]<br />

[UNION...<br />

[ORDER BY kārtošas_kolonas]<br />

Apvienošanas pieprasījumos ir jāievēro dažas specifiskas lietas:<br />

Lauku skaitam, kas uzrādīts katrā SELECT un UNION SELECT iedaļā, ir<br />

jābūt vienādam. Pretējā gadījumā Access ziľo par kļūdām pieprasījuma izpildes<br />

laikā.<br />

Ne tikai lauku skaitam ir jābūt vienādam, bet arī ir svarīga to secība. Ja<br />

izpilda pieprasījumu, kuram lauku secība visās apvienošanas daļās nav vienāda,<br />

tad Access neziľo par kļūdu, bet veido neprognozējamu rezultātu.<br />

Arī lauku tipiem jāsakrīt. Ja centīsieties pievienot teksta lauku skaitliska<br />

tipa laukam vai otrādi, pieprasījuma rezultātā lauka tips būs teksta lauks.<br />

Atļauts lietot tikai vienu ORDER BY operatoru, pie kam tas jālieto aiz<br />

pēdējā UNION SELECT operatora. Nepieciešamības gadījumā katrā UNION<br />

SELECT iedaļa var lietot operatorus GROUP BY un HAVING.<br />

Piemērs:<br />

SELECT tblSkolens.Vards, tblSkolens.Uzvards, "Skolēns"<br />

AS Tips<br />

FROM tblSkolens, tblSkolotajs<br />

UNION SELECT<br />

tblSkolotajs.Vards, tblSkolotajs.Uzvards, "Skolotājs"<br />

AS Tips<br />

FROM tblSkolotajs<br />

Šī pieprasījuma rezultāts ir – skolēni ar skolotājiem salikti kopā:<br />

Vards Uzvards Tips<br />

Adolfas Norkuss Skolēns<br />

Agija Kārklīte Skolēns<br />

Agnis Dzenovskis Skolēns<br />

Agris Bērziņš Skolotājs<br />

Agris Herberts Skolēns<br />

Aigars Kenstavičs Skolēns<br />

Aigars Reikmanis Skolēns<br />

Aija Zvirbule Skolēns<br />

Ainars Škenders Skolēns<br />

Ainārs Matvejevs Skolēns<br />

Aivars Bukovskis Skolotājs<br />

Aivars Pētersons Skolēns<br />

Aivars Sālzirnis Skolēns<br />

Izmantojot UNION pieprasījumu, var izveidot arī nedaudz netradicionālus<br />

pieprasījumus:<br />

SELECT ID_prieksmets, Nosaukums<br />

FROM tblPrieksmets<br />

UNION SELECT 0, "Visi" FROM tblPrieksmets<br />

204<br />

© Vladimirs Ivanovs, 2007


Šī pieprasījuma rezultāts ir visi mācību priekšmeti un vēl viena rindiľa ar<br />

specifisku identifikatoru un nosaukumu:<br />

ID_prieksmets Nosaukums<br />

0 Visi<br />

1 Matemātika<br />

2 Anglu valoda<br />

3 Vācu valoda<br />

4 Latviešu valoda un<br />

5 Zīmēšana literatūra<br />

6 Dziedāšana<br />

7 Dabas mācība<br />

8 Fiziskā audzināšana<br />

Pieprasījums ir nevis divu tabulu vai pieprasījumu apvienojums, bet gan<br />

tabulas un viena ieraksta apvienojums (lietotāja definēts ieraksts). Šādai<br />

konstrukcijai ir viena nepilnība – obligāti ir jālieto operators FROM un<br />

jānorāda tabula, no kuras ľem datus, bet šādas tabulas nav, tāpēc var lietot<br />

jebkuru datu <strong>bāzes</strong> tabulu.<br />

Šādu pieprasījumu var ērti pielietot – strādāt ar konkrētu objektu vai ar<br />

visiem objektiem (identifikators 0).<br />

22.7. Ielikto pieprasījumu lietošana<br />

Šī ir jauna Access (Jet SQL) pieprasījuma forma, kas parādījusies tikai<br />

Access 97 versijā. Iedaļā WHERE kritēriju aizstāj ar ieliktu SELECT<br />

pieprasījumu.<br />

Piemērs:<br />

SELECT lauku_saraksts<br />

FROM tabulu_<br />

WHERE [tabulas_nosaukums.]lauka_nosaukums<br />

IN (SELECT atlases_operators<br />

[GROUP BY grupēšanas_nosacījumi]<br />

[HAVING atlases_nosacījumi]<br />

[ORDER BY kārtošanas_nosacījumi]<br />

SELECT Vards, Uzvards<br />

FROM tblSkolens<br />

WHERE [Skolena ID]<br />

IN (SELECT ID_skolēns<br />

FROM tblSekmes<br />

GROUP BY ID_skolēns<br />

HAVING Avg(Vērtējums)>7)<br />

Šī pieprasījuma rezultāts ir visi skolēni, kam vidējā atzīme ir lielāka par 7.<br />

To panāk ar ieliktā pieprasījuma palīdzību, kurā sākotnēji atlasa tikai ID, bet<br />

vārdu un uzvārdu pieliek klāt tikai pieprasījuma pamatdaļā:<br />

205<br />

© Vladimirs Ivanovs, 2007


Vārds Uzvārds<br />

Dainis Slengmanis<br />

Erlens Skovārnis<br />

Elita Buceniece<br />

Rolands Faušteins<br />

Andrejs Koršunovs<br />

Rihards Grīnvalds<br />

Elena Riekstiņa<br />

Romāns Pigarevs<br />

Rudīte Bendzule<br />

Benilda Kapicina<br />

Ilgonis Kārkliņš<br />

Šādus ieliktos pieprasījumus ērti lietot kā nosacījumus dzēšanas<br />

pieprasījumu kritērijos.<br />

22.8. Make Table Query, Append Query, Update Query, Delete Query<br />

<strong>Datu</strong> izmaiľas pieprasījumi nodrošina dažādas manipulācijas ar datiem –<br />

jaunu tabulu veidošana, ierakstu dzēšana, ierakstu pievienošana un ierakstu<br />

izmaiľu veikšana.<br />

Lai izveidotu jaunu tabulu, lieto šādu SQL pieprasījumu:<br />

SELECT [ALL|DISTINCT|DISTINCTROW] lauku_saraksts<br />

INTO jaunā_tabula<br />

FROM sākotnējā_tabula<br />

[WHERE pievienošanas_nosacījumi]<br />

Izpildot šī tipa pieprasījumu, netiek parādīts rezultāts datulapas (Datasheet)<br />

skatā, bet gan izveidota jauna tabula, kuras nosaukums norādīts iedaļā INTO<br />

jaunā_tabula. Izpildot pieprasījumu, atkārtoti izveidojamā tabula tiek izdzēsta<br />

un izveidota jauna (par to lietotājs tiek speciāli informēts ar paziľojumu logu).<br />

Piemērs:<br />

SELECT Vards, Uzvards, Adrese<br />

INTO [tblOgres_iedzivotaji]<br />

FROM tblSkolens<br />

WHERE Adrese Like "*ogr*"<br />

Šī pieprasījuma rezultāts ir tabula tblOgres_iedzivotaji, kurā ir skolēnu<br />

vārdi, uzvārdi un adreses, kuri dzīvo Ogrē vai Ogres rajonā:<br />

Vārds Uzvārds Adrese<br />

Monika Kleinhofa Ogrē,Akmeņu N 50b-29<br />

Māris Avotnieks Ogrē,Turkalnes N 1a-5<br />

Romāns Pigarevs Ogres r.Lēdmanes p.Lejnieki-<br />

18<br />

206<br />

© Vladimirs Ivanovs, 2007


<strong>Datu</strong> pievienošanas pieprasījumu sintakse:<br />

INSERT INTO saņēmēja_tabula<br />

SELECT [ALL|D1STINCT|DISTINCTROW] lauku_saraksts<br />

FROM tabula datu avots<br />

[WHERE pievienošanas_nosacījumi]<br />

Arī šī tipa pieprasījumiem nav redzams rezultāts datu lapas skatā. Izpildot<br />

pieprasījumu, saņēmēja_tabula tiek izmainīta – tai tiek pievienoti jauni ieraksti.<br />

Ar šā tipa pieprasījumiem der uzmanīties, jo, atkārtoti izpildot pieprasījumu, arī<br />

ieraksti tiek pievienoti atkārtoti ( Access, protams, ziľo par ierakstu<br />

pievienošanu, bet neziľo, ka tie tiek pievienoti atkārtoti).<br />

Piemērs:<br />

INSERT INTO [tblOgres_iedzivotaji] ( Vards, Uzvards,<br />

Adrese )<br />

SELECT Vards, Uzvards, Adrese<br />

FROM tblSkolens<br />

WHERE Adrese Not Like "*ogr*" And Adrese Not Like<br />

"*rīg*"<br />

Izpildot šo pieprasījumu, tabulai tblOgres_iedzivotaji pievieno vēl visus tos<br />

skolēnus, kuri nedzīvo Rīgā.<br />

Pievienojamo lauku secība var atšķirties - piemēram, ja šo pašu<br />

pieprasījumu pārrakstītu šādi:<br />

INSERT INTO [tblOgres_iedzivotaji] (Vards, Uzvards, Adrese)<br />

SELECT Uzvards, Vards, Adrese<br />

…<br />

Tad pievienotajos ierakstos lauks Vards un Uzvards tiktu samainīti vietām.<br />

Pievienojamo lauku skaits var būt arī mazāks, tad, izpildot pieprasījumu,<br />

iztrūkstošo lauku vērtības tiek aizstātas ar null vērtību. Var mainīt ne tikai<br />

secību, bet apvienot laukus – dažādi tos kombinējot, kā arī pielietot funkcijas.<br />

<strong>Datu</strong> dzēšanas SQL pieprasījumi:<br />

Piemērs:<br />

DELETE FROM tabulas_nosaukums<br />

[WHERE dzēšanas_nosacījumi]<br />

DELETE tblSkolens.*, Klase.Nosaukums<br />

FROM tblKlase INNER JOIN tblSkolens ON tblKlase.[Klases<br />

ID] = tblSkolens.[Klases ID]<br />

WHERE tblKlase.Nosaukums="5.a"<br />

Izpildot šo pieprasījumu no tabulas skolēni tiks izdzēsti visi tie skolēni, kas<br />

mācās 5.a klasē.<br />

207<br />

© Vladimirs Ivanovs, 2007


<strong>Datu</strong> izmaiľas SQL pieprasījumi (tiek mainīta kāda lauka vai lauku grupas<br />

vērtība):<br />

Piemērs:<br />

UPDATE tabulas_nosaukums<br />

SET lauka_nosaukums = vērtība [,<br />

lauka_nosaukums = vērtība [,<br />

...]]<br />

[WHERE nomaiņas_nosacījumi]<br />

UPDATE tblSkolens SET Telefons = "nav telefona"<br />

WHERE Telefons Is Null<br />

Šis pieprasījums tabulā skolēns skolēniem, kam nav norādīts telefons<br />

ieraksta “nav telefona”.<br />

22.9. Crosstab Query<br />

Pieprasījuma piemērs:<br />

SELECT Nosaukums, Dzimums, Count(Skolens.[Skolena ID])<br />

AS Skaits<br />

FROM tblKlase INNER JOIN tblSkolens ON tblKlase.[Klases<br />

ID] = tblSkolens.[Klases ID]<br />

GROUP BY tblKlase.Nosaukums, tblSkolens.Dzimums<br />

ORDER BY tblKlase.Nosaukums<br />

Tas ir vienkāršs atlases pieprasījums ar statisko funkciju – tā rezultāts ir<br />

klases nosaukums un skolēnu skaits pa dzimumiem:<br />

Nosaukums Dzimums Skaits<br />

1.a Siev 12<br />

1.a Vīr 10<br />

1.b Siev 9<br />

1.b Vīr 13<br />

1.c Siev 5<br />

1.c Vīr 15<br />

2.a Siev 14<br />

2.a Vīr 13<br />

2.b Siev 7<br />

Pieprasījumā ir dati par skolēnu skaitu atkarībā no dzimuma, bet to<br />

izkārtojums ir diezgan nepārskatāms. Lai uzlabotu pieprasījuma atlases rezultāta<br />

izkārtojumu lieto Crosstab tipa pieprasījumus ar šādu sintaksi:<br />

208<br />

© Vladimirs Ivanovs, 2007


TRANSFORM statiskā_funkcija( lauka_nosaukums) [AS<br />

nosaukums]<br />

SELECT (ALL|DISTINCT|DISTINCTROW] lauku_nosaukumi<br />

FROM lauka_nosaukums<br />

PIVOT format(lauka_nosaukums),<br />

"formatizēšanas_tips")<br />

[IN (vērtību_saraksts)]<br />

Iepriekš aplūkoto pieprasījumu pārrakstām atbilstoši Crosstab Query tipa<br />

pieprasījuma sintaksei:<br />

TRANSFORM Count(tblSkolens.[Skolena ID]) AS<br />

[CountOfSkolena ID]<br />

SELECT tblKlase.Nosaukums<br />

FROM tblKlase INNER JOIN tblSkolens ON tblKlase.[Klases<br />

ID] = tblSkolens.[Klases ID]<br />

GROUP BY tblKlase.Nosaukums<br />

ORDER BY tblKlase.Nosaukums<br />

PIVOT tblSkolens.Dzimums<br />

Šis pieprasījums atgriezīs tos pašus datus kā iepriekšējais pieprasījums,<br />

tikai to izvietojums būs pārskatāmāks:<br />

Nosaukums Siev Vîr<br />

1.a 12 10<br />

1.b 9 13<br />

1.c 5 15<br />

2.a 14 13<br />

2.b 7 12<br />

3.a 9 11<br />

3.b 6 14<br />

3.c 8 13<br />

4.a 10 17<br />

4.b 13 15<br />

5.a 7 17<br />

Crosstab tipa pieprasījumu Access lietotājiem ieteicamāk būtu veidot<br />

grafiskajā režīmā – lietot parametrus - Row Heading,Column Heading un<br />

Value.<br />

Piemērs:<br />

TRANSFORM Count(tblSekmes.Vērtējums) AS<br />

CountOfVērtējums<br />

SELECT tblSkolens.Vards, tblSkolens.Uzvards<br />

FROM tblSkolens INNER JOIN tblSekmes ON<br />

tblSkolens.[Skolena ID] = tblSekmes.ID_skolēns<br />

GROUP BY tblSkolens.Vards, tblSkolens.Uzvards<br />

PIVOT tblSekmes.Vērtējums<br />

209<br />

© Vladimirs Ivanovs, 2007


Šis pieprasījums atgriezīs šādu rezultātu:<br />

Vārds Uzvārds 0 1 2 3 4 5 6 7 8 9 10<br />

Adolfas Norkuss 2 2 1<br />

Agija Kārklīte 2 1 1 1 2<br />

Agnis Dzenovskis 1 2 1 1 2 2<br />

Agris Herberts 2 1 1<br />

Aigars Kenstavičs 1 1 2 2 1<br />

Aigars Reikmanis 2 1 1<br />

Aija Zvirbule 2 3 2<br />

Ainars Škenders 1 1 3<br />

Ainārs Matvejevs 1 3 1<br />

Aivars Pētersons 2 1 1 1 2<br />

210<br />

© Vladimirs Ivanovs, 2007


23. Izvēles kartes (Menu)<br />

23.1. Izvēlņu joslas, rīku joslas un uznirstošās izvēlnes<br />

Access’ā ir trīs veidu izvēlľu objekti:<br />

� izvēlľu joslas (menu):<br />

� rīku joslas (toolbar):<br />

23.1.att. Galvenā izvēlne.<br />

23.2.att. Standarta izvēlne.<br />

� uznirstošās izvēlnes (pop-up vai shortcut menu):<br />

23.3.att. Pop-up izvēlne.<br />

Visas šajos piemēros redzamās ir Access iebūvētās izvēlnes. Visiem<br />

skatiem (piemēram, tabulu veidošana, pieprasījumu skatīšanās, formu<br />

rediģēšana, u.c.) ir piesaistīta noteikta izvēlľu josla, rīku josla un noteikta<br />

uznirstošā izvēlne. Lai lietotājam netraucētu šīs iebūvētās izvēlnes, Access ļauj<br />

veidot pašiem savas izvēlnes, vai arī rediģēt iebūvētās izvēlnes.<br />

23.2. Darbības ar izvēlnēm<br />

Lai atvieglotu lietotāja darbu un aizliegtu lietotāju izmantot iebūvētās<br />

Access izvēlľu (menu) un rīku (toolbar) joslas, var veidot savas izvēlľu joslas,<br />

rīku joslas.<br />

211<br />

© Vladimirs Ivanovs, 2007


Viens veids kā to izdarīt ir ar VBA kodu palīdzību, bet otrs ir daudz<br />

vienkāršāks. Apskatīsim to.<br />

Visa darbošanās ar izvēlnēm joslām ir ar izvēlnes Views/Toolbars<br />

palīdzību. Pirmkārt, tur var izvēlēties vai rādīt, vai nerādīt iebūvētās rīku joslas.<br />

Otrkārt, ir iespējams izvēlēties Views|Toolbars|Customize, kas ļauj daudz vairāk<br />

darboties ar izvēlnēm:<br />

23.4.att. Pielāgotas izvēlnes izveides logs.<br />

Šim logam ir trīs sadaļas: Toolbars, Commands, Options. Pirmā sadaļa ļauj<br />

apskatīties, dzēst, mainīt un veidot jaunas izvēlľu joslas, rīku joslas un<br />

uznirstošās izvēlnes (shortcut menu). Otrā sadaļa Commands satur visas<br />

iebūvētās komandas, kas atvieglo izvēlľu veidošanu. Trešajā sadaļā Options var<br />

norādīt dažas izvēlľu īpašības:<br />

23.5.att. Toolbars bloks.<br />

Pirmā sadaļa satur visu iebūvēto rīku joslu uzskaitījumu, plus vēl Menu Bar<br />

un Shortcut Menus.<br />

Menu Bar ir iebūvētā izvēlľu josla, Shortcut Menus ir iebūvēto uznirstošo<br />

izvēlľu josla.<br />

Ķeksītis pirms nosaukuma nosaka vai attiecīgais elements tiek rādīts. Rīku<br />

joslām tas nosaka, vai attiecīgā rīku josla ir redzama, Menu Bar nosaka, vai ir<br />

212<br />

© Vladimirs Ivanovs, 2007


edzama izvēlľu josla (menu). Kura tieši izvēļu josla ir redzama, atkarīgs no<br />

atvērtā loga. Shortcut Menus nosaka vai ir redzama uznirstošā izvēlľu josla, kas<br />

paredzēta uznirstošo izvēlľu modificēšanai un veidošanai.<br />

Darboties ar joslām var ar pogu palīdzību:<br />

23.6.att. Pogu bloks.<br />

New... – jaunas joslas veidošana.<br />

Rename... – nosaukuma nomainīšana. Iebūvētajām joslām šī īpašība nav<br />

pieejama.<br />

Delete – joslas dzēšana. Iebūvētajām joslām šī īpašība nav pieejama.<br />

Reset... – iebūvēto joslu atjaunošana sākotnējā izskatā. Access ļauj mainīt<br />

iebūvētās izvēlľu un rīku joslas, bet ar šīs pogas palīdzību var atjaunot tos<br />

sākotnējā stāvoklī.<br />

Properties – apskatīties joslas īpašības.<br />

23.3. Izvēlņu joslas (menu)<br />

Lai izveidotu jaunu izvēlľu joslu, aktivizē Views|Toolbars|Customize un<br />

nospiež pogu New...:<br />

23.7.att. Jaunas izvēlnes joslas izveide.<br />

Ievada jaunajai izvēlnei nosaukumu mIzvele un nospied OK. Access<br />

automātiski izveido jaunu izvēles objektu un pieliek to saraksta beigās:<br />

23.8.att. Jauna izvēlnes josla.<br />

213<br />

© Vladimirs Ivanovs, 2007


Tālāk iezīmē izveidoto izvēlni mIzvele un, nospiežot pogu Properties,<br />

atveras Izvēlľu īpašību logs:<br />

23.9.att. Izvēlľu joslas īpašību logs.<br />

Pirmais komboboksis Selected Toolbar ļauj izvēlēties, kurai izvēlnei ir<br />

jāmaina īpašības, tālāk seko izvēlnes īpašības:<br />

Toolbar Name - izvēlnes nosaukums.<br />

Type – izvēlnes tips: Menu Bar – izvēlľu josla, Toolbar – rīku josla, Popup<br />

– uznirstošā izvēlne. Noklusētais tips ir Toolbar, tā kā mēs veidojam izvēlľu<br />

joslu – izvēlas tipu Menu Bar.<br />

Docking – izvēlnes pārvietošanas iespējas: Allow Any – izvēlni var<br />

novietot vienalga kā, Can't Change – izvēlnes vietu mainīt nevar, No Vertical –<br />

izvēlni nevar novietot vertikāli gar ekrāna malu, No Horizontal – izvēlni nevar<br />

novietot horizontāli. Noklusētais ir Allow Any, to arī atstāj.<br />

Show on Toolbars Menu – vai rādīt Views|Toolbars izvēlnē. Izvēloties<br />

Menu Bar automātiski tiek noľemta, tā arī atstāj.<br />

Allow Customize – vai var mainīt.<br />

Allow Resizing – vai var mainīt izmēru.<br />

Allow Moving – vai var pārvietot.<br />

Allow Showing/Hiding – vai tiek atļauts mainīt rādīt/nerādīt.<br />

Sākumā atstāj visas pēdējās četras iespējas, lai vieglāk būtu veidot izvēlni,<br />

bet pēc izvēlnes izveides, šīs iespējas var noľemt.<br />

Iebūvētajām izvēlnēm nav iespējams mainīt īpašības Toolbar Name, Type<br />

un Show on Toolbars Menu, bet ir pieejama poga Restore Defaults, kas atjauno<br />

sākotnējos uzstādījumus.<br />

214<br />

© Vladimirs Ivanovs, 2007


Pēc īpašību rediģēšanas, var aizvērt šo logu uzklikšķinot uz Close un sākt<br />

veidot izvēlni. Lai to izdarītu, Customize logā aktivizē otro sadaļu Commands:<br />

23.10.att. Izvēlľu joslas īpašību loga sadaļa Commands.<br />

Ar šī loga palīdzību var veidot izvēlnes un rediģēt esošās. Logā ir divi<br />

saraksti, pirmā ir visas kategorijas un otrajā ir šajās kategorijās esošās<br />

komandas. Pirmās kategorijas ir iebūvētās rīku joslas ar visām to komandām,<br />

pēc tam ir Built-in Menus, kas satur visas iebūvētās izvēlľu joslas. Pēc tam seko<br />

All Tables, All Queries, All Forms, All Reports, All Macros, kas kā komandas<br />

satur atbilstoši visu tabulu, pieprasījumu, formu, atskaišu un makro komandu<br />

nosaukumus (šīs komandas ir šo objektu atvēršana). Tālāk ir ActiveX Control,<br />

kas satur visus ActiveX objektus un pati pēdējā kategorija ir New Menu, kas satur<br />

tikai vienu komandu New Menu, kas ļauj veidot jaunu izvēlľu grupu.<br />

Piemēra izvēlne saturēs izvēlnes Opcijas (ar apakšizvēlnēm Atvērt Word,<br />

Atvērt Excell, Beigt), Formas (ar apakšizvēlnēm Redaktori (Skolēnu redaktors,<br />

Klašu redaktors, Skolotāju redaktors), Atlase, Sekmes).<br />

Pirmkārt jāizveido abas augšējās izvēlnes. Šim nolūkam atver kategoriju<br />

New Menu, nospiež uz komandu New Menu un, neatlaižot pārvelk uz jauno<br />

izvēlni mIzvele:<br />

23.11.att. Funkciju pievienošana izvēlnes joslai.<br />

215<br />

© Vladimirs Ivanovs, 2007


Parādās New Menu, uzklikšķinot uz tā ar kreiso peles pogu, var nomainīt<br />

tam vārdu (Name):<br />

23.12.att. Izvēlnes punktu nosaukuma maiľa.<br />

Tādā pašā veidā ievelk vēl vienu New Menu un definē tam nosaukumu<br />

Formas.<br />

Tālāk zem izvēlnes Opcijas paliks apakšā komandas Atvērt Excel, Atvērt<br />

Word un Beigt. Šim nolūkam sākumā logā Commands atrod vajadzīgās<br />

komandas – visas šīs komandas ir zem kategorijas File: Analyze It with MS<br />

Excel, Publish It with MS Word un Exit. Iezīmē pirmo komandu un aizvelk to uz<br />

jauno izvēlni, uzbraucot virsū izvēlnei Opcijas, parādās mazs kvadrātiľš, kurā<br />

tad arī ieliek komandu, ar nākamo komandu dara to pašu, tikai, ieliekot zem<br />

pirmās komandas, beigās pārvelk arī pēdējo komandu:<br />

23.13.att. Izvēlnes apakšpunktu pievienošana.<br />

Tālāk nomaina nosaukumus, līdzīgi, kā to mainīja izvēlnei Opcijas un<br />

Formas:<br />

23.14.att. Jauna josla.<br />

216<br />

© Vladimirs Ivanovs, 2007


Katrai komandai var norādīt vai būs redzama ikona (Default Style, Text<br />

Only, Image and Text), kāda būs ikona (Change Button Image, Edit Button<br />

Image), vai pirms šīs komandas būs atdalītājsvītra (Begin a Group). Trešo<br />

komandu Beigt būtu pareizi atdalīt no iepriekšējām. Lai to izdarītu, atzīmē Begin<br />

a Group (pirmās divas komandas atdala no trešās komandas).<br />

Līdzīgi pirmajai izvēlnei Opcijas, veido arī otru. Vienīgā atšķirība – tā<br />

satur izvēlni Redaktori, kurai ir apakšizvēlnes: Skolēnu redaktors, Skolotāju<br />

redaktors, Klašu redaktors. Lai izveidotu šādu izvēlni, jāievelk komanda New<br />

Menu zem izvēlnes Formas un pēc tam visas redaktoru formas liek vēl zem šīs<br />

izvēlnes. Lai ieliktu komandas, kas atver attiecīgo formu, jāizvēlas kategorija All<br />

Forms un jāatrod atbilstošā forma:<br />

23.15.att. Izvēlnes Formas izveide.<br />

Pēc tam nosauc jauno izvēlni par Redaktori un nomaina visām jaunajām<br />

komandām, kas atver formas, nosaukumus. Ja nejauši izvēlne ievelkas nepareizā<br />

pozīcijā, to var viegli pārvilkt ar peli uz citu. Ja izvēlne vispār nav vajadzīga, to<br />

vajag izvilkt ārpus izvēlľu joslas un tā tiek izmesta. Lai pārbaudītu izvēlni<br />

darbā, ir nepieciešams aizvērt Customize logu un jāuzvelk izvēlľu joslu augšā:<br />

23.16.att. Izvēlnes pārbaude.<br />

Turpinot veidot izvēlni, to var piesaistīt arī datu bāzei. Ja visai datu bāzei ir<br />

viena izvēlľu josla, tad to var norādīt Startup logā, īpašībā Menu Bar:<br />

23.17.att. Startup logs.<br />

217<br />

© Vladimirs Ivanovs, 2007


Ja ir nepieciešams katrai formai izveidot savu izvēlľu joslu, formas īpašībā<br />

Other/Menu Bar var norādīt katrai formai atbilstošo izvēlľu joslu:<br />

23.18.att. Formas īpašība MenuBar.<br />

Līdzīgā veidā izvēlľu joslu var pielāgot arī atskaitēm.<br />

23.4. Rīku joslas (toolbar)<br />

Rīku joslas veido tāpat, kā izvēlľu joslas, vienīgi izvēlnes īpašību logā<br />

jānorāda tips Toolbars.<br />

Parasti rīku joslas sastāv no komandām, ko attēlo kā ikonas. Tāpat kā<br />

izvēlľu joslām, rīku joslās var ievietot visas iebūvētās komandas, kā arī iespējas,<br />

lai atvērtu Access objektus. Lai panāktu kādas speciālas komandas izpildi,<br />

jāizveido Makro komanda, kuras atvēršanu pēc tam piesaista vajadzīgajai<br />

ikonai.<br />

Izveidoto rīku joslu var piesaistīt atsevišķi formai vai pārskatam, tāpat kā<br />

izvēlľu joslu, tikai izmantojot īpašību Toolbar.<br />

Startup logā ar Allow Built-in Toolbars īpašību var norādīt, vai tiks<br />

attēlotas iebūvētās Access rīku joslas.<br />

23.5. Uznirstošā izvēlne (shortcut menu)<br />

Uznirstošo izvēlľu veidošana pamatnostādnēs ir tāda pati, kā izvēlľu un<br />

rīku joslām, taču ir mazas atšķirības, jo uznirstošā izvēlne jau visu laiku nav<br />

redzama uz ekrāna un to nav iespējams rediģēt. Tāpēc MS Access programmā ir<br />

izveidota speciāla izvēlľu josla, kurā var apskatīties, rediģēt un veidot jaunas<br />

uznirstošās izvēlnes.<br />

Uznirstošās izvēlnes veidošanu ir jāsāk ar Views|Toolbars|Customize logu<br />

Toolbar sadaļu, atzīmējot ar ķeksīti Shortcut Menus:<br />

23.19.att. Jauna josla.<br />

218<br />

© Vladimirs Ivanovs, 2007


Atzīmējot šo čekboksi, atveras uznirstošo izvēlľu josla, kurā ir redzamas<br />

visas iebūvētās uznirstošās izvēlnes un arī lietotāja veidotās izvēlnes:<br />

23.20.att. Iebūvētās uznirstošās izvēlnes<br />

Attēlā ir redzama iebūvētā uznirstošā izvēlne, kura parādās formas<br />

veidošanas skatā. Izvēlnē Custom var apskatīt lietotāja veidotās uznirstošās<br />

izvēlnes. Pagaidām tur ir tukšs, jo nav izveidotas nevienas izvēlnes.<br />

Lai izveidotu jaunu uznirstošo izvēlni, izvēlas Views|Toolbars|Customize,<br />

nospiež pogu New un nosauc jaunu izvēlni, piem., mUznirst .<br />

Access automātiski izveido jaunu izvēles objektiľu un pieliek to saraksta<br />

beigās. Tālāk iezīmē izveidoto izvēlni mUznirst, nospiež pogu Properties, lai<br />

atvērtu Izvēlľu īpašību logu. Atšķirībā no iepriekš aprakstītajām izvēlnēm,<br />

īpašībai Type jāizvēlas Pop-Up:<br />

23.21.att. Paziľojums par objekta pārveidošanu par uznirstošo izvēlni.<br />

219<br />

© Vladimirs Ivanovs, 2007


Access paziľo par to, ka objekts tiek pārveidots par uznirstošo izvēlni. Šis<br />

objekts nebūs izvēlnes Views|Toolbars|Customize loga Toolbar sarakstā, bet to<br />

varēs iegūt, izvēloties ShortCut Menus:<br />

23.22.att. Shortcut Menus josla.<br />

Tālāk ir jārīkojas tāpat, kā ar izvēlľu joslu.<br />

23.23.att. Uznirstošas izvēlnes pielāgošana.<br />

Ja formai ir nepieciešams pielāgot uznirstošo izvēlni, formas īpašībās<br />

jānorāda atbilstošo izvēlľu joslu, izmantojot īpašības Other/Shortcut Menu un<br />

Other/Shortcut Menu Bar (sk. att. 23.23.).<br />

220<br />

© Vladimirs Ivanovs, 2007


24. <strong>Datu</strong> <strong>bāzes</strong> aizsardzība<br />

24.1. <strong>Datu</strong> <strong>bāzes</strong> rezerves kopēšana<br />

Ja strādā ar datu bāzi, kurā ir svarīgi dati, tad saskaľā ar Mērfija likumu<br />

agri vai vēlu datu <strong>bāzes</strong> fails viena vai otra iemesla dēļ tiks bojāts un jūsu dati<br />

ies zudumā. Visticamāk, ka tas notiks tad, kad datu apjoms būs kļuvis tik liels,<br />

ka to restaurēšana būs praktiski neiespējama.<br />

Glābt var vienīgi datu <strong>bāzes</strong> regulāra rezerves kopēšana. To vajadzētu darīt<br />

katru dienu vai katru reizi, veicot datu <strong>bāzes</strong> izmaiľas.<br />

No MS Access vides, līdzīgi kā tas ir MS Word vai MS Excel, nav iespējams<br />

datu <strong>bāzes</strong> failu saglabāt, nosaucot to citā vārdā. Tāpēc, lai nokopētu datu bāzi:<br />

� jāaizver datu bāze, un, ja datu bāzi lieto vairāki lietotāji,<br />

jāpārliecinās, ka arī pārējie ir pārtraukuši darbu ar datu bāzi;<br />

� izmantojot Windows Explorer vai Microsoft Backup, jānokopē datu<br />

<strong>bāzes</strong> fails (.mdb fails) mapē, kura paredzēta rezerves kopiju<br />

glabāšanai.<br />

Ja MS Access ir izveidota drošības sistēma, nodefinētas darba grupas, tad<br />

rezerves kopija ir jāizveido arī darba grupas informācijas failam system.mdw.<br />

Ir iespējamas citas datu <strong>bāzes</strong> uzturēšanas funkcijas, kas ir pieejamas<br />

Tools/Database Utilities komandkartē, un kuru pielietošana ir būtiska<br />

MS Access datu <strong>bāzes</strong> sekmīgai darbībai.<br />

24.2. <strong>Datu</strong> <strong>bāzes</strong> konvertēšana – Convert Database<br />

MS Access 97 izveidotu datu bāzi nevar atvērt ar iepriekšējām MS Access<br />

versijām.<br />

MS Access 97 var atvērt un strādāt ar datu bāzēm, kas izveidotas ar<br />

MS Access iepriekšējām versijām. Taču tādai datu bāzei nebūs iespējams<br />

pievienot jaunus objektus vai izmainīt veidošanas skatā esošos objektus.<br />

Komanda Convert Database pārvērš jeb konvertē MS Access iepriekšējo<br />

versiju uz MS Access 97 versijas datu bāzi. Konvertējot datu bāzei ir jādod jauns<br />

nosaukums. Ja datu bāze ir nokonvertēta uz 97 versijas datu bāzi, to vairs nevar<br />

lietot ar iepriekšējo MS Access versiju un nevar arī konvertēt atpakaļ.<br />

Ja datu <strong>bāzes</strong> konvertēšana tomēr beidzas nesekmīgi, var izveidot jaunu<br />

datu bāzi ar MS Access 97, un jaunajā datu bāzē ieimportēt visus objektus no<br />

iepriekšējās MS Access versijas datu <strong>bāzes</strong>.<br />

MS Access 97 var lietot MS Access tabulas iepriekšējo versiju datu bāzi bez<br />

konvertēšanas, t. i, MS Access 97 var strādāt ar piesaistītām citu MS Access<br />

versiju tabulām. Tas ļauj dažādu MS Access versiju lietotājiem vienlaicīgi<br />

strādāt tīklā ar vieniem un tiem pašiem datiem, t. i., ar tām pašām tabulām.<br />

24.3. <strong>Datu</strong> <strong>bāzes</strong> kompaktēšana – Compact Database<br />

Komanda Tools/Database Utilities/Compact Database veic datu <strong>bāzes</strong><br />

kompaktēšanu, t. i., saspiešanu. <strong>Datu</strong> bāze kļūst fragmentēta (tās fragmenti ir<br />

221<br />

© Vladimirs Ivanovs, 2007


haotiski izmētāti pa datora disku, nevis aizľem vienotu diska daļu), ja tā ilgu<br />

laiku ir tikusi lietota, tajā ir pievienoti dati un veiktas izmaiľas. Pēc<br />

defragmentēšanas jeb kompaktēšanas datu bāze aizľem mazāku apjomu uz<br />

diska, kā arī palielinās tās darbības ātrums.<br />

Ja Compact Database tiek izpildīts atvērtai datu bāzei, tā tiek aizvērta,<br />

saspiesta un atkal atvērta. Ja saspiešana tiek veikta no MS Access sākuma loga,<br />

vispirms logā Database to Compact From ir jānorāda datu bāze, kura tiks<br />

saspiesta. Tad logā Compact Database Into jānorāda, vai kompaktējot tiks<br />

izveidota datu <strong>bāzes</strong> kopija ar jaunu nosaukumu, vai arī saspiestajai datu bāzei<br />

tiks piešķirts tas pats nosaukums – tad jaunā, saspiestā datu bāze aizvietos veco.<br />

Jāievēro (tas attiecas arī uz citām komandām):<br />

� saspiešana (un citas operācijas) būs sekmīga tikai tad, ja uz diska būs<br />

pietiekami daudz brīvas vietas – apjoms, kas vienāds ar<br />

kompaktējamās un rezultāta datu <strong>bāzes</strong> apjomu;<br />

� saspiešanu (un citas operācijas) var veikt tikai tad, kad neviens<br />

nestrādā ar datu bāzi.<br />

24.4. <strong>Datu</strong> <strong>bāzes</strong> remonts – Repair Database<br />

Komanda Repair Database labo bojātu (corrupted) datu bāzi. <strong>Datu</strong> bāze<br />

var tikt bojāta, ja tiek nepareizi pārtraukta MS Access darbība – izslēdzot datoru,<br />

neizejot no programmas, pēkšľi pārtrūkstot elektriskajai strāvai vai arī, ja ir<br />

kļūdas datora "dzelžu" darbībā.<br />

Dažreiz MS Access var nekonstatēt, ka datu bāze ir bojāta. Ja datu <strong>bāzes</strong><br />

uzvedība kļūst aizdomīga, vajadzētu lietot Repair un Compact komandas.<br />

Ja Repair Database tiek izpildīts atvērtai datu bāzei, tā tiek aizvērta,<br />

izlabota un atkal atvērta. Ja remonts tiek veikts no MS Access sākuma loga, tad<br />

logā Repair Database ir jānorāda, kas jālabo datu bāzē.<br />

Ja bojātu datu bāzi mēģina atvērt ar Open komandu vai mēģina izpildīt<br />

Compact vai Encrypt/ Decrypt komandas, MS Access dialoga logā paziľo par<br />

datu <strong>bāzes</strong> bojājumu un jautā, vai nepieciešams datu bāzi labot. Izvēloties OK,<br />

MS Access veic datu <strong>bāzes</strong> labošanu.<br />

Ja datu bāze tiek lietota ilgu laika periodu un tajā nepārtraukti tiek veidots<br />

kaut kas jauns, veiktas daudzas izmaiľas, ja tā ir uzaudzēta jau vairāku Mb<br />

apjomā, tad var pienākt brīdis, kad Repair komanda vairs nespēj salabot datu<br />

bāzi. Tad izeja būtu: no pēdējās rezerves kopijas tukšā datu bāzē ar Import<br />

komandu iekopēt vajadzīgos objektus – tabulas, vaicājumus u. c.<br />

222<br />

© Vladimirs Ivanovs, 2007


Bibliogrāfija<br />

1. R. Barkāns, A. Ermansons. <strong>Datu</strong> bāzu vadības sistēmas Access 97<br />

Pašmācības apguves materiāls 2. daļa Rīga, 2000.<br />

2. J.Nāgelis. Microsoft Access 2000 no A līdz Z, Rīga, Datorzinību Centrs,<br />

2000.<br />

3. Dz.Lukažis. <strong>Datu</strong> bāzu vadība, Rīga, Biznesa augstskola Turība, 2000.<br />

4. С.Новалис. Access 97. Руководство по макроязыку и VBA. Lori, -<br />

1998.<br />

5. С.И.Золотова. Практикум по Access. Финансы и статистика, 144lpp.-<br />

2004.<br />

6. Ю.Бакаревич, Н.Пушкина. Самоучитель Microsoft Access 2003. СПб,<br />

752lpp – 2004.<br />

7. http://www.termini.lv<br />

8. http://lv.wikipedia.org<br />

9. http://www.webkursi.lv/databases/relational.php<br />

10. http://www.cs.rtu.lv/stp/Sazi/saturs/index.html<br />

11. http://www.webkursi.lv/praktdarbi/workflow_general.php<br />

12. http://www.microsoft.com/latvija/office/visio/prodinfo/overview.mspx<br />

223<br />

© Vladimirs Ivanovs, 2007


Pielikumi<br />

224<br />

© Vladimirs Ivanovs, 2007


1. Programmā izmantotas datu <strong>bāzes</strong> ER modelis.<br />

PIELIKUMS 1.<br />

<strong>Datu</strong> <strong>bāzes</strong> specifikācijas fragments.<br />

<strong>Datu</strong> bāze tiek sadalīta vairākās tabulās, kurās uzglabā atbilstošu informāciju. <strong>Datu</strong> bāze satur 10<br />

pamattabulas tabulas, kuras ir savstarpēji saistītas, un 2 palīgtabulas. Visas starp tabulām nodefinētas saites var<br />

redzēt attēlā.<br />

Starp visām pamattabulām izmanto viens-pret-daudziem saites tipu.<br />

specialisti<br />

PK id<br />

I1 specialists<br />

login<br />

klienta_tips<br />

PK id<br />

PK id<br />

klienta_tips<br />

menedzeri<br />

I1 menedzeris<br />

nomas_iekartas<br />

PK id<br />

modelis<br />

serial<br />

cena<br />

stavoklis<br />

nodota<br />

FK1 nodota_kam<br />

PK id<br />

tehnika<br />

FK5 statuss<br />

steidzigs_remonts<br />

razotajs<br />

modelis<br />

sn<br />

klients<br />

klienta_kontaktpersona<br />

FK8 klienta_tips<br />

tel<br />

adrese<br />

pardots<br />

garantija<br />

FK6 garantijas_veids<br />

defekts<br />

piezimes<br />

FK2 menedzeris<br />

pienemsanas_datums<br />

arejie_defekti<br />

Iepakojums<br />

instal_diski<br />

instal_disku_apr<br />

spec_vadi<br />

vadu_apr<br />

citas_komp<br />

komp_apr<br />

izremontes<br />

uzzinas<br />

darbs_apraksts<br />

cena<br />

cena_detalas<br />

FK3 remonta_statuss<br />

FK4 pecremonta_garantija<br />

apmaksaja<br />

FK7 specialists<br />

izdots<br />

kas_atdeva<br />

rashod_dengi<br />

akts1<br />

akts2<br />

akts3<br />

akts_datums<br />

akts_specialists<br />

noma<br />

FK1 nomas_iek<br />

ir_sask_cena<br />

sask_cena<br />

ER diagrammas apzīmējumi:<br />

� FK – Foregn key (ārēja atslēga)<br />

� PK – Primary key (primārā atslēga)<br />

� I – indeksēts lauks<br />

Apzīmējumi:<br />

225<br />

garantijas_veids<br />

PK id<br />

I1 garantijas_veids<br />

remonta_statuss<br />

PK id<br />

I1 remonta_statuss<br />

tehnikas_status<br />

PK id<br />

I1 statuss<br />

pecgarantijas_veids<br />

PK id<br />

I1 pecgarantijas_veids<br />

detalas<br />

PK id<br />

FK1 iek_id<br />

detala<br />

cena<br />

pakalpojumi<br />

PK id<br />

pakalpojums<br />

cena<br />

Tabula. <strong>Datu</strong> tipu saīsinājumi<br />

A NOSAUKU<br />

APRAKSTS<br />

PZĪM. MS<br />

+ Autoincreme<br />

nt<br />

Skaitītāja lauks<br />

A Alpha Teksta lauks (skaitlis nosaka simbolu skaitu)<br />

M Memo Tekstveida informācijas lauks<br />

S Short Skaitļi robežās no -32,767 līdz 32,767<br />

C Currency Valūtas lauks<br />

I Integer Veselu skaitļu lauks<br />

© Vladimirs Ivanovs, 2007


L Logical Loģiskais lauks<br />

@ Timestamp <strong>Datu</strong>ms un laiks<br />

Galvenā un lielāka tabula ir Tehnika, tajā glabājas dati par visām pieľēmtām remontā iekārtām, to<br />

klientiem, remontdarbiem utt. Daudzus tabulas laukus aizpilda, izmantojot klasifikatoru tabulu datus (garantijas<br />

veids, firmas darbinieki, tarifi u.c.). Tabulas Tehnika struktūra:<br />

1.1. Tabula Pakalpojumi<br />

Tabula Pakalpojmi ir paredzēta pakalpojumu cenrādim. Tajā glabājas dati par visiem servisā sniegtajiem<br />

pakalpojumiem un to cenām. Tabulas Cenas struktūra:<br />

1.2. Tabula Detalas<br />

Tabula Detalas ir paredzēta servisa darbos izlietoto detaļu uzskaitei. Tajā glabājas dati par izlietotajām<br />

detaļām, to cenām un iekārtām, kurās tās tika izmantotas. Tabulas Detalas struktūra:<br />

226<br />

© Vladimirs Ivanovs, 2007


1.3. Tabula Garantijas_veids<br />

Tabula Garantijas_veids ir klasifikatoru tabula, kurā glabājas iekārtu garantijas veidi. Tabulas<br />

Garantijas_veids struktūra:<br />

1.4. Tabula Klienta_tips<br />

Tabula Klienta_tips ir klasifikatoru tabula, kurā glabājas klientu tipi, kas ir svarīgi, lai veiktu servisa<br />

pakalpojumus, piem., pastāvīgais klients, jauns klients, klients pēc līguma, utt. Tabulas Klienta_tips struktūra:<br />

1.5. Tabula Pecgarantijas_veids<br />

Tabula Pecgarantijas_veids ir klasifikatoru tabula, kurā glabājas iekārtu pēcgarantijas veidi, t.i.,<br />

garantijas, ko sniedz serviss, ja tāds ir. Tabulas Pecgarantijas_veids struktūra:<br />

1.6. Tabula Remonta_statuss<br />

Tabula Remonta_statuss ir klasifikatoru tabula, kura paredzēta, lai uzglabātu informāciju par visiem<br />

iespējamiem remonta statusiem servisā, piemēram, remonts procesā, pabeigts, nosūtīts uz citu servisu utt..<br />

Tabulas Remonta_statuss struktūra:<br />

1.7. Tabula Tehnikas_statuss<br />

Tabula Tehnikas_statuss ir klasifikatoru tabula, kura paredzēta lai uzglabātu informāciju par visiem<br />

iespējamiem tehnikas statusiem servisā, jo remontējamās iekārtas var atrasties dažādos stāvokļos, piemēram,<br />

pieľemta servisā, atdota remontam, atdota pēc garantijas, atgriezta klientam, apmainīta utt. Tabulas<br />

Tehnikas_statuss struktūra:<br />

1.8. Tabula Menedzeri<br />

Tabula Menedzeri ir tabula, kurā glabājas informācijas par firmā strādājošiem darbiniekiem, kuri strādā<br />

tieši ar klientiem un servisā pieľem iekārtas. Tabulas Menedzeri struktūra:<br />

227<br />

© Vladimirs Ivanovs, 2007


1.9. Tabula Nomas_iekartas<br />

Tabulā Nomas_iekartas glabājas informācijas par firmā pieejamām iekārtām nomai (piem., kad klientam<br />

ir nepieciešams aizvietot nodoto remontam tehniku savā uzľēmumā). Tabulas Nomas_iekartas struktūra:<br />

1.10. Tabula Specialisti<br />

Tabula Specialisti ir tabula, kurā glabājas informācijas par firmā strādājošiem servisa darbiniekiem<br />

(meistariem), kuri veic iekārtu remontu. Lauks „login” ir paredzēts lai atzīmētu tos speciālistus, kuriem ir<br />

tiesības aplūkot programmas datus, kā arī mainīt tos. Tabulas Specialisti struktūra:<br />

228<br />

© Vladimirs Ivanovs, 2007


Stāvokļu pāreju diagrammas<br />

229<br />

PIELIKUMS 2.<br />

Stāvokļu pāreju diagrammas<br />

Stāvokļu pāreju diagrammas izmanto, lai aprakstītu sistēmas dinamiku.<br />

Tām ir arī citi apzīmējumi:<br />

- STD<br />

- Stāvokļu diagramma<br />

- Notikumu diagramma<br />

- Dinamikas modelis<br />

- Realitātes dzīves cikls<br />

ST diagrammu elementi un to apzīmējumi<br />

Stāvokļu pāreju diagrammās ir šādi divi galvenie elementi:<br />

Stāvoklis – notikums starp diviem notikumiem, kuri ietekmē objektu.<br />

Stāvoklis ir tas, ko var ārēji novērot (Yourdon, 1989); tas izpauž noteiktu<br />

sistēmas parametru vērtības. stāvokļa maiņu izraisa noteikts notikums. Stāvokļu<br />

pāreju diagrammā uzmanība tiek saasināta tieši uz to, kad sistēmas uzvedībā<br />

notiek pārmaiņas.<br />

Stāvokļa apzīmējums:<br />

Att. "Stāvokļa apzīmējums"<br />

Notikums – mehānisms, ar kuru sistēma izmaina stāvokļus.<br />

Notikuma apzīmējums:<br />

Att. "Notikuma apzīmējums"<br />

© Vladimirs Ivanovs, 2007


Kā izveidot ST diagrammu?<br />

E. Yourdon piedāvā divus stāvokļu pāreju diagrammu konstruēšanas<br />

paņēmienus:<br />

- Zīmēšanu var iesākt ar iespējamo sistēmas stāvokļu identificēšanu,<br />

kur uz papīra katru atsevišķo stāvokli atspoguļo kā atsevišķu taisnstūri.<br />

Vēlāk izpēta visus nozīmīgos savienojumus starp taisnstūriem.<br />

- Sākt ar sākuma un beigu stāvokli un tad metodiski sameklēt ceļu<br />

starp abiem stāvokļiem<br />

230<br />

© Vladimirs Ivanovs, 2007


Lejupielādēt var šeit -<br />

ER modelis (Entity Relationship)<br />

http://www.webkursi.lv/praktdarbi/diagrams/erd.vsd<br />

Tabulas lauku komentāri:<br />

231<br />

PIELIKUMS 3.<br />

ER modelis<br />

user - Darbplūsmas sistēmas lietotāju tabula.<br />

user_id INT - tabulas primārā atslēga<br />

name VARCHAR(25) - unikāls lietotāja vārds.<br />

password VARCHAR(25) - parole lietotāja autentifikācijai (datu bāzē glabājas<br />

nešifrētā formā).<br />

e-mail VARCHAR(50) - lietotāja e-pasts; darbplūsmas sistēmai varētu<br />

ievajadzēties sūtīt atgādinājumus konkrēto darbu dalībniekiem.<br />

© Vladimirs Ivanovs, 2007


task - konkrēto darbu tabula.<br />

task_id INT - tabulas primārā atslēga<br />

process_id INT - kuram procesam (jeb abstraktajam darbam) šis<br />

konkrētais darbs atbilst.<br />

user_id INT - lietotājs, kurš izveidoja šo darbu (viņam var nebūt nekādas<br />

citas lomas šajā darbā).<br />

parent_task_id INT - darba vecāks darbu hierarhijā; NULL, ja tas ir<br />

"augšējā līmeņa" darbs.<br />

path VARCHAR(50) - sistēmas izveidots strings, kurš norāda, zem kāda<br />

relatīvā URLa Webā būs pieejami šī darba dokumenti.<br />

title VARCHAR(50) - ar kādu nosaukumu darbs parādās sistēmas<br />

lietotājam (piemēram "Jāņa Bērziņa maģistra darbs").<br />

item - elektronisko dokumentu tabula.<br />

item_id INT - tabulas primārā atslēga<br />

item_type INT - pārskaitījuma lauks; DOCUMENT=0 - augšupielādēts<br />

dokuments parastā "action state", ROLEASSIGNMENT=1 - ja šajā solī<br />

pievienojies dalībnieks (tas vienmēr ir user_id no atbilstošā assignment'a<br />

- t.i. var pievienot vienīgi pats sevi), FALSE=2 (zarošanās solī uzstādīta<br />

vērtība FALSE), vai TRUE=3 (zarošanās solī uzstādīta vērtība TRUE).<br />

content MEDIUMBLOB - dokumenta saturs (vai NULL, ja item_type nav<br />

DOCUMENT)<br />

size INT - dokumenta izmērs baitos.<br />

comment VARCHAR(255) - neformāls iesūtītā dokumenta apraksts<br />

submitted DATETIME - šī dokumenta iesūtīšanas timestamp's.<br />

assignment - konkrēto norīkojumu tabula (Norīkojums ir viena cilvēka<br />

"piestiprināšana" viena darba soļa veikšanai un noteiktai lomai šajā solī -<br />

faktiski "cross-reference" tabula daudzpusējai attiecībai lietotājs-darbssolis.<br />

Norīkojumus<br />

assignment_id INT - tabulas primārā atslēga<br />

user_id INT - kuram lietotājam ir šis norīkojums.<br />

task_id INT - kuram konkrētajam darbam pakārtots šis norīkojums.<br />

step_id INT - kuram solim atbilst šis norīkojums.<br />

item_id INT - iesūtītais dokuments (vai NULL, ja dokuments vēl nav<br />

iesūtīts).<br />

startdate DATETIME - darba "izveidotājs" var uzstādīt norīkojuma sākuma<br />

termiņu<br />

enddate DATETIME - norīkojuma beigu termiņš (dokumentu skaitās korekti<br />

pievienot tad, ja item.submitted ir starp assignment.startdate un<br />

assignment.enddate, bet darbplūsmas sistēma to nekontrolēs.)<br />

role - lietotāju lomu tabula; tā ir daļa no konfigurācijas un to<br />

aplikācijas darba laikā nemaina.<br />

role_id INT - tabulas primārā atslēga<br />

232<br />

© Vladimirs Ivanovs, 2007


process_id INT - uz kuru procesu attiecas<br />

name VARCHAR(50) - lomas nosaukums<br />

description VARCHAR(255) - lomas apraksts.<br />

process - abstrakto darbu jeb procesu tabula; daļa no konfigurācijas.<br />

process_id INT - tabulas primārā atslēga<br />

diagram MEDIUMBLOB - procesa 'activity' diagramma XMI formātā<br />

name VARCHAR(50) - procesa nosaukums.<br />

description VARCHAR(255) - procesa apraksts.<br />

step - abstrakto darba soļu tabula; daļa no konfigurācijas.<br />

step_id INT - tabulas primārā atslēga<br />

role_id INT - kura loma šo soli pilda.<br />

step_type INT - uzskaitījuma (enumeration) tips - DOCUMENT=0,<br />

ROLEASSIGNMENT=1, DECISION=2.<br />

validation_id INT - kuru validāciju lietot (vajadzīgs, ja<br />

step_type==DOCUMENT; citādi var būt NULL un tiek ignorēts)<br />

name VARCHAR(50) - soļa nosaukums (soļa nosaukums ir unikāls atbilstošā<br />

procesa ietvaros)<br />

description VARCHAR(255) - procesa apraksts.<br />

validation - validācijas metožu tabula; daļa no konfigurācijas.<br />

validation_id INT - tabulas primārā atslēga<br />

validation_type INT - uzskaitījuma (enumeration) tips - REG_EXP=0,<br />

SCHEMA_VALIDATION=1, ANT_VALIDATION=2<br />

validation_resource MEDIUMBLOB - strings vai fails, kurš definē validāciju -<br />

regulāra izteiksme, XML gramatika<br />

name VARCHAR(50) - validācijas metodes nosaukums<br />

description VARCHAR(255) - validācijas metodes apraksts<br />

233<br />

© Vladimirs Ivanovs, 2007

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!