Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Visual Basic for Application (VbfA) programmu objekti un to sastāvdaļas
1
Objekti(formas, pārskati, elementi, sekcijas)
Objektu definēšanas
metodes
Notikumi (events)
Īpašības (properties)
Metodes Vērtības
Programmēšama
MS Access būtiskākie objekti un kolekcijas
Objekti un objektu mainīgie, to definēšana
2
Application
Form (arī Report)
Controls
Module
Properties (Form)
Properties (Control)
Current Project
The CurrentProject object refers to the project for the current Microsoft Access project (.adp) or Access database (.mdb).
Current Data
The CurrentData object refers to the objects stored in the current database by the source (server) application (Jet or SQL).
AllTables (AccessObject)
AllQueries (AccessObject)
1. Objekta mainīgo var izmantot tieši tāpat kā objektu, uz kuru tas attiecas.
2. Objekta īpašības vērtība var tikt izmanīta tieši, vai ar metodes palīdzību.
3. Lai izveidotu objekta mainīgo: - tiek definēts objekta mainīgais; - objekta mainīgais tiek piesaistīts objektam.
Dim main_objekts_1 As Form (objekta (formas) tipa mainīgā
definēšana)
Set main_objekts_1 = Forms!F_1 (objekta maiīgā piesaistīšana
objektam (formai F_1)
Dim main_objekts_2 As Control
Set main_objekts_2 = Forms!F_1!Elements_1
Jauna objekta veidošana:
Dim m_application As ObjectSet m_application = CreateObject("Access.Application")
Dim m_forma As New Access.Form
Vērtību piešķiršana objekta īpašībām (properties)
3
Dim m_1 As String
m_1 = “ABC” (vērtības piešķiršana parastam mainīgajam)
Forms!F_1!Elements_1.Value = “ABC” (vērtības piešķiršana formas
elementam)
Private Sub Proced_1 Dim main_objekts_1 As Form Set main_objekts_1 = Forms!F_1 With main_objekts_1 (vērtību piešķiršana objekta īpašībām) .Record Selectors = NO .NavigationButtons = NO End WithEnd Sub
Saliktu datu tipu definēšana:
Type Adrese Pilseta As string Iela As string Numurs As integerEnd Type
4
Formu kolekcija
Forms kolekcija iekļauj visas konkrētajā datu bāzē atvērtās formas.
Norāde PiemērsForms!formas_nosaukums Forms!Forma_AForms![formas nosaukums] Forms![Forma A]Forms("formas_nosaukums")
Forms("Forma_A")
Forms(indekss) Forms(0)
Netieša atsauce: Forms!Forma_A!Lauks_A
Pilna atsauce: Forms!Forma_A.Controls!Lauks_A
Forms!Forma_A.Apakšforma_B.Form!Controls.Lauks_BForms!Forma_a.Apakšforma_B!Lauks_B
5
Forms Formas tipa objektsApplication
Objekts Application
Dotajā piemērā tiek izvadīti visu formu nosaukumi.
Sub VisasFormas()Dim m_objekts As AccessObjectDim m_datu_baze As ObjectSet m_datu_baze = Application.CurrentProjectFor Each m_objekts In m_datu_baze.AllForms If m_objekts.IsLoaded = True Then Debug.Print m_objekts.Name End IfNext m_objektsEnd Sub
6
Application CurrentProject AllForms AccessObje
Jaunas formas izveidošana un dažu formas īpašību norādīšana
Sub Jauna_forma()Dim m_forma As FormSet m_forma = CreateFormWith m_forma .RecordSource = "Firmas" .Caption = "Forma_F" .ScrollBars = 0 .NavigationButtons = TrueEnd With DoCmd.RestoreEnd Sub
7
Atvērto formu pārskateSub Atverto_formu_parskate()Dim m_forma As FormDim m_elements As ControlFor Each m_forma In Forms Debug.Print m_forma.Name For Each m_elements In m_forma.Controls Debug.Print ">>>"; m_elements.Name Next m_elementsNext m_formaEnd Sub
8
Elementu kolekcija (formā, pārskatā, sekcijā vai saliktā elementā)
Norāde uz aktīvās formas (no tās moduļa) elementu:
Forms!Forma_A.Controls!Elements_AMe!Elements_A Me![Elements_A] Me("Elements_A")
Me.Controls!Elements_A Me.Controls![Elements A]
Me.Controls("Elements_A")
Me(0) Me.Controls(0)
9
Application Formas objekts
Pārskata objekts
Elementi (Controls)
Elementi (Controls)
Elements Control)
Elements Control)
Aktīvas formas Forma_Firmas TextBox tipa elementu nosaukumu izvade un īpašību vērtību piešķiršana
Sub Elementu_TextBox_nos_izv()Dim m_forma As FormSet m_forma = Forms!Forma_FirmasDim m_elements As ControlFor Each m_elements In m_forma.Controls If m_elements.ControlType = acTextBox Then Debug.Print m_elements.Name End IfNext m_elementsEnd Sub
Sub Elementu_TextBox_nos_izv()Dim m_forma As FormSet m_forma = Forms!Forma_FirmasDim m_elements As ControlFor Each m_elements In m_forma.Controls If m_elements.ControlType = acTextBox Then With m_elements .SetFocus .Enabled = True .Height = 400 .SpecialEffect = 0 End With End IfNext m_elementsEnd Sub
10
Īpašību kolekcija formai, pārskatam un elementam
Sub Visas_atvērtās_formas()
Dim m_forma As Form
Dim m_ipasiba As Property
For Each m_forma In Forms
Debug.Print m_forma.Name
For Each m_ipasiba In m_forma.Properties
Debug.Print m_ipasiba.Name; " = "; m_ipasiba.Value
Next m_ipasiba
Next m_forma
End Sub
11
Application objekts
Formas objekts Properties kolekcija
Pārskata objektsElementa objekts
Properties kolekcijaProperties kolekcija
Form, Report un Control objektu īpašību vērtību norāde valodā Visual Basic for Application
Formas īpašības vērtības norāde:
Forms!Forma_A.Visible = TrueMe!RecordSource = "SELECT * FROM Darbinieki " _ & "WHERE Uzvards Like 'A*' "
Elementa īpašības vērtības norāde:
Me!Elements_A.Visible = TrueForms!Forma_A.Controls!Elements_A.Visible = TrueWith Me!Elements_A .Visible = FalseEnd With
Formas un pārskata sekcijas īpašības norāde:
Forms!Forma_A.Section(3).Visible = FalseMe!Section(acPageHeader).Visible = False
12
Formas un pārskata (report) sekcijas
Skaitlisks apzīmējums
Simbolveida apzīmējums
Sekcija
0 acDetail Detail sekcija1 acHeader Virsraksta sekcija2 acFooter Zemraksta sekcija3 acPageHeader Lapas virsraksta sekcija4 acPageFooter Lapas zemraksta sekcija5 acGroupLevel1Heade
rPārskata 1. līmeņa grupējuma virsraksta sekcija
6 acGroupLevel1Footer Pārskata 1. līmeņa grupējuma zemraksta sekcija
7 acGroupLevel2Header
Pārskata 2. līmeņa grupējuma virsraksta sekcija
8 acGroupLevel2Footer Pārskata 2. līmeņa grupējuma zemraksta sekcija
Sekcijas īpašības norādīšana:
Forms!Forma_A.Section(acDetail).VisibleForms! Forma_A.Section(0).VisibleForms! Forma_A.Section(acPageHeader).VisibleForms! Forma_A.Section(3).Visible
Sekcijas numura elementam noteikšana (kurā sekcijā atrodas elements):
Dim m_sekcijas_numurs As Integerm_sekcijas_numurs = Forms!Forma_A!Elements_A.Section
13
AllForms kolekcija
Kolekcija AllForms ietver AccessObject tipa objektus katram CurrentProject vai CodeProject objektam.
AccessObject norāde: AllForms("objekta_nosaukums") AllForms![objekta nosaukums]
AccessObject tipa objekts
14
Application CurrentProject objekts
CodeProject objekts
AllForms
AllForms
AccessObject
AccessObject
AccessObject objekts ir kolekciju AllForms, AllTables, AllModules, AllQueries glabātais objekts.Tā kā AccessObject objekts atbilst eksistējošam objektam, to nevar veidot kā jaunu objektu un veikt tā dzēšanu.
Sub Tabulu_parskate()Dim m_a_objekts As AccessObjectDim m_datu_baze As ObjectSet m_datu_baze = Application.CurrentDataFor Each m_a_objekts In m_datu_baze.AllTables If m_a_objekts.IsLoaded = True Then Debug.Print m_a_objekts.Name End IfNext m_a_objektsEnd Sub
Tabulas definēšana Visual Basic for Application programmāSub Tabulas_definesana() Dim m_datu_baze As DatabaseDim m_tabula As TableDef
15
Dim m_kolona As FieldSet m_datu_baze = CurrentDBSet m_tabula = m_datu_baze.CreateTableDef("Ostas")Set m_kolona = m_tabula.CreateField("NOS", dbText)m_tabula.Fields.Append m_kolonam_datu_baze.TableDefs.Append m_tabulam_datu_baze.TableDefs.RefreshEnd Sub
16
Application objekts attiecas uz aktīvo MS Access lietojumu.
Sub Atvert_formu()Dim lietojums_1 As New Access.ApplicationConst Datu_baze = "N:\Datu_baze_1.accdb”Lietojums_1.OpenCurrentDatabase Datu_bazeLietojums_1.DoCmd.OpenForm "Forma_Darbinieki"End Sub
17
Application Daudzi objekti