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