√оловна
Ћекц≥њ
«авданн¤
ѕобажанн¤
√остьова
Ћ≥нки
Ћекц≥¤ є5 Ћекц≥¤ є3  —качати лекц≥ю

Access є4

Visual Basic for Applications

ќсновн≥ пон¤тт¤

ќператори VBA

  1. јрифметичн≥ оператори +, -, *,/
  2. ќператори пор≥вн¤нн¤ <,<=,>,>=,=,<>
  3. Ћог≥чн≥ оператори And, Eqv, Imp, Not, Or, Xor
  4. ќператори конкатенац≥њ р¤дк≥в +, &

 

“аблиц¤ ≥стинност≥ б≥нарних лог≥чних оператор≥в

«наченн¤ операнд≥в

And

Eqv

Imp

Or

Xor

False - False

False

True

True

False

False

False - True

False

False

True

True

True

True - False

False

False

False

True

True

True - True

True

True

True

True

False

“аблиц¤ ≥стинност≥ Ц це стисле представленн¤ результат≥в обчисленн¤ вираз≥в з використанн¤м визначеного лог≥чного оператора та р≥зних комб≥нац≥й операнд≥в.

ќбТ¤вленн¤ зм≥нних

Ќайчаст≥ше вживаЇтьс¤ обТ¤вленн¤ за допомогою службового слова Dim, ¤ке вказуЇ комп≥л¤тору на необх≥дн≥сть в≥дведенн¤ блоку памТ¤т≥ дл¤ збер≥ганн¤ значень зм≥нноњ заданного типу.

ќбТ¤вленн¤ зм≥нних за допомогою службового слова ReDim застосовуЇтьс¤ при робот≥ з масивом даних.

ReDim ≥мТ¤ ћасиву «м≥нних („исло ≈лемент≥в) As “ип даних

ќбТ¤вленн¤ констант провадитьс¤ за допомогою службового слова Const та називаЇтьс¤ ≥н≥ц≥ал≥зац≥Їю.

Const PI=3.14159

«м≥нн≥, обТ¤влен≥ за допомогою службового слова Global, можуть адресуватись у будь-¤кому м≥сц≥ коду програми. —интаксис обТ¤ви глобальних зм≥нних такий:

Global ≤мС¤ √лобальноњ «м≥нноњ As “ип даних

ѕрисвоюванн¤ даних та обчисленн¤

‘ункц≥¤ - блок коду, що м≥стить одну або дек≥лька команд та адресуЇтьс¤ за ≥менем. ‘ункц≥¤, звичайно, повертаЇ значенн¤ певного типу.

ѕроцедура Ц також блок коду, що м≥стить одну або дек≥лька команд та адресуЇтьс¤ за ≥менем. јле процедура не може повертати значенн¤.

ѕараметр (аргумент) Ц зм≥нна, ¤ка передаЇтьс¤ в функц≥ю або процедуру. ѕараметр може брати участь в обчисленн¤х та зм≥нюватись командами функц≥њ (процедури) зм≥нна, ¤ка передаЇтьс¤ в функц≥ю або процедуру. ѕараметр може брати участь в обчисленн¤х та зм≥нюватись командами функц≥њ (процедури).

“ип даних Variant Ц вбудований тип даних. «устр≥чаючи в програм≥ зм≥нну цього типу, комп≥л¤тор приЇднуЇ додатковий код, ¤кий п≥д час виконанн¤ програми повинен визначити д≥йсний тип даних.

” першому р¤дку модулю програми, ¤к правило повинна м≥ститьс¤ команда Option Explicit.  ористуйтесь нею завжди. ¬она гарантуЇ вам неможлив≥сть введенн¤ в оборот не¤вно визначених зм≥нних.

ћодуль Ц це окремий файл, що м≥стить текст на мов≥ програмуванн¤ Access VBA.

якщо, ввод¤чи у початок тексту програми команду Option Expilcit, ви пот≥м спробуЇте скористатис¤ не¤вно визначеною зм≥нною.

«вичайно, легко утриматись в≥д використанн¤ не¤вно визначених зм≥нних у тому випадку, ¤кщо програма невелика. јле р≥шенн¤ будь-¤коњ серйозноњ задач≥ потребуЇ написанн¤ чималоњ к≥лькост≥ р¤дк≥в коду, ≥ тенденц≥¤ до його зростанн¤ Ц величина пост≥йна. якщо ваша програма достатньо велика, важливо залучити на допомогу ст≥льки корисних засоб≥в, ск≥льки буде можливо. ќдне з них - ¤вне завданн¤ тип≥в зм≥нних.

“естуванн¤ кода

–ежим в≥длагоджуванн¤ Ц це спос≥б виконанн¤ програми з можлив≥стю одночасного перегл¤ду стан≥в обТЇкт≥в програми. ѕод≥бну задачу можна виконати, не залишаючи в≥кно редактора MS VBA. ƒл¤ покрокового в≥длагоджуванн¤ коду натисн≥ть клав≥шу <F8>. ѕ≥дсв≥ченн¤ в≥дм≥чаЇ поточне положенн¤ в≥длагоджувача та р¤док коду, ¤ка виконуватиметьс¤ наступною. ѕерев≥рити поточне значенн¤ зм≥нних можна за допомогою спливаючих п≥дказок. ¬м≥ст≥ть курсор миш≥ над назвою зм≥нноњ ≥ на екран≥ в≥добразитьс¤ в≥кно п≥дказок.

–ежим перегл¤ду локальних зм≥нних. Ћокальними називаютьс¤ зм≥нн≥, визначен≥ в контекст≥ функц≥њ або п≥дпрограми. ¬≥кно перегл¤ду стану локальних зм≥нних в≥дкриваЇтьс¤ командою меню ViewÞ Locals Window. ¬оно дозвол¤Ї ознайомитись ≥з вм≥стом вс≥х локальних зм≥нних, визначених у п≥дпрограм≥ або функц≥њ.

¬≥кно перегл¤ду результат≥в. ¬≥кно Watches слугуЇ дл¤ перегл¤ду результат≥в обчислень та позвол¤Ї побачити зразу дек≥лька значень. ¬≥кно Watches в≥дображаЇ ≥нформац≥ю т≥льки про т≥ обТЇкти спостереженн¤, ¤к≥ ви вкажете. ўоб додати у в≥кно новий обТЇкт треба виконати команду DebugÞ Add Watch.

–ежим Quick Watch дозвол¤Ї швидко ознайомитись ≥з значенн¤м будь-¤коњ зм≥нноњ або результатом обчисленн¤ вираз≥в, ран≥ше визначених в текст≥ програми. ўоб скористатись засобами Quick Watch треба виконати наступн≥ д≥њ:

  • якщо програма, що знаходитьс¤ у режим≥ в≥длагоджуванн¤ призупинила своЇ виконанн¤, вид≥л≥ть у в≥кн≥ редактора вираз, ¤кий вас ц≥кавить.
  • ¬≥дкрийте меню Debug.
  • ќбер≥ть команду Quick Watch.

–ежим безпосереднього виконанн¤ коду. ƒл¤ цього призначене в≥кно Immediate. ўоб виконати цю команду сл≥д обрати в р¤дку меню редактора команду ViewÞ Immediate Window. «а допомогою цього в≥кна, можна безпосередньо виконати де¤кий код. Ќаприклад:

Open Уc:\windows\win.iniФ for Input As #1

Line Input #1,s

Print s

Close #1

—тек виклик≥в. ¬иклик можна розум≥ти, ¤к зверненн¤ до програми, з метою виконанн¤ ≥менованоњ процедури. ќск≥льки виклик в≥дбуваЇтьс¤ за ≥менем та адресою, в≥длагоджувач може в≥дсл≥дити пор¤док виклику процедур. —писок викликаних процедур вм≥щуЇтьс¤ у стек виклик≥в.

—пец≥альн≥ оператори

 

Ќайменуванн¤

—интаксис

ќпис

Is

ќбТЇкт1 Is ќбТЇкт2

ќператор перев≥р¤Ї, чи посилаютьс¤ 2 зм≥нн≥ на один обТЇкт

Like

–езультат=–¤док Like «разок

ќператор перев≥р¤Ї, чи задовольн¤Ї р¤док заданому зразку

AddressOf

AddressOf ≤мТ¤ процедури

ѕовертаЇ числове значенн¤ адреси процедури в памТ¤т≥

 

ќсновн≥ конструкц≥њ мови VBA

If (умова) Then

У один або дек≥лька р¤дк≥в кодуФ

Else

У один або дек≥лька р¤дк≥в кодуФ

End If

 

Select Case значенн¤

Case умова 1

Укод дл¤ Case1Ф

Case умова 2

Укод дл¤ Case2Ф

Е

Case умова N

Укод дл¤ Case NФ

[Case Else]

УЌеобовТ¤зковий код дл¤ Case ElseФ

End Select

 

While (умовний вираз)

У один або дек≥лька р¤дк≥в кодуФ

Wend

Do [ While | Until } умовний вираз]

У один або дек≥лька р¤дк≥в кодуФ

Loop

≤терац≥йний цикл

For ≤ндекс=Ќижн¤ границ¤ To ¬ерхн¤ границ¤ Step  рок

У один або дек≥лька р¤дк≥в кодуФ

Next ≥ндекс

‘ункц≥њ Lbound та Ubound

Lbound Ц повертаЇ номер першого значимого елемента вказаного масиву, а Ubound Ц останнього.

 аталог (—atalog) Ц це обТЇкт, ¤кий Ї синон≥мом файла бази даних.  аталог м≥стить посиланн¤ на таблиц≥, курсори, обл≥ков≥ записи користувач≥в та груп користувач≥в,

«ТЇднанн¤(Connection) Ц це обТЇкт, ¤кий зд≥йснюЇ звТ¤зок прикладноњ програми з файлом бази даних. ѕри створенн≥ зТЇднанн¤ необх≥дно вказати м≥сцеположенн¤ файла. «ТЇднанн¤ вказуЇ Access, з ¤кою базою даних буде працювати ваш додаток. Ќайважлив≥ший параметр зТЇднанн¤ - ≥мТ¤ файла бази даних.

Ќаб≥р даних (Recordset) Ц це загальний терм≥н, що застосовуЇтьс¤ при зверненн≥ до таблиц≥, запита чи курсору. ќбТЇкт Recordset застосовуЇтьс¤ дл¤ отриманн¤ ≥нформац≥њ, що збер≥гаЇтьс¤ в груп≥ запис≥в (р¤дк≥в даних).

«аписи, стовпчики та пол¤. Ќаб≥р даних (Recordset), представл¤Їтьс¤ у вигл¤д≥ таблиц≥. «апис (Row) Ц це один горизонтальний р¤док таблиц≥, а стовпчик (Column) - наб≥р даних, упор¤дкованих по вертикал≥. ≈лемент даних на перетин≥ р¤дка та стовпчика називають полем (Field).

Ћ≥стинг 1 ѕриклад в≥дкритт¤ таблиц≥ та в≥дображенн¤ даних про њњ структуру

    1. Sub DisplayFields( )
    2. Const DatabasePath= Фc:\1\contacts. mdbФ
    3. Const ProviderStr=ФMicrosoft.Jet.OLEDB.4.0;Ф+ФData source =Ф + DatabasePath
    4. Dim Connection As New ADODB.Connection
    5. Dim Catalog As New ADOX .Catalog
    6. Dim RecordSet As New ADODB RecordSet
    7. Dim Field As Field
    8. Connection.Open ProviderStr
    9. Set Catalog. ActiveConnection=Connection
    10. RecordSet..Open УContactsФ. Catalog.ActiveConnection, adOpenKeyset
    11. RecordSet.Fields.Refresh
    12. For Each Field In RecordSet.Fields
    13. Debug.Print Field.Name & Ф,Ф& Field.Type & У,Ф & Field.ActualSize

    14. Next
    15. RecordSet.Close
    16. Set RecordSet= Nothing
    17. Set Catalog=Nothing
    18. Connection.Close
    19. Set.Connection=Nothing
    20. End Sub
    21. –¤дки (4-6) м≥ст¤ть обТ¤вленн¤ обТЇкт≥в стандартних клас≥в (Connection, Catalog, RecordSet та Field), розроблених Microsoft. –¤док 8 в≥дкриваЇ зТЇднанн¤ з базою даних. –¤док 10 м≥стить ≥нструкц≥ю безпосереднього в≥дкритт¤ таблиц≥. ¬иконанн¤ команди Refresh в р¤дку 11 гарантуЇ отриманн¤ актуальних даних.

–¤дки 12-13 м≥ст¤ть цикл≥чну конструкц≥ю For Each, в ¤к≥й вивод¤тьс¤ на екран дан≥ про найменуванн¤ пол¤, його тип та розм≥р

ѕрот¤гом останн≥х рок≥в спец≥ал≥сти Microsoft розробили дек≥лька протокол≥в, ¤к≥ забезпечують можлив≥сть обм≥ну ≥нформац≥Їю м≥ж додатками Windows та можлив≥сть повторного використанн¤ от комп≥льованого коду. ѕершим зТ¤вивс¤ протокол - стандарт динам≥чного обм≥ну даними (Dynamic Data Exchange ЦDDE). ѕ≥зн≥ше було реал≥зовано б≥льш гнучку та продуктивну модель звТ¤зуванн¤ та впровадженн¤ обТЇкт≥в (Object Linking and Embedding ЦOLE). ¬ 1996 роц≥ Microsoft внесла до неъ де¤кы змыни та перейменувала модель в ActiveX.

¬с≥ ц≥ протоколи, зокрема допомагають програм≥стам повторно використовувати ран≥ш розроблений код. “ака ≥де¤ в процес≥ њњ реал≥зац≥њ може бути вт≥лена в дек≥лька форм. Ќайпрост≥ша та найтрадиц≥йн≥ша з них Ц модель динам≥чноњ б≥бл≥отеки (Dynamic Link Library- Dll), ¤ка й зараз широко застосовуЇтьс¤.

« метою спрощенн¤ доступа до баз даних компан≥Їю Microsoft в межах концепц≥њ ActiveX були розроблен≥ спец≥альн≥ протоколи. ’ронолог≥¤ њх по¤ви така: Remote Data Objects (RDO), Direct Access Objects (DAO) ≥, нарешт≥, ActiveX Data Objects (ADO) (ўе один протокол, ¤кий широко використовуЇтьс¤ до цього часу Ц Open DataBase Connectivity (ODBC). ActiveX Ц загальний терм≥н дл¤ позначенн¤ засоб≥в повторного використанн¤ кода, а ODBC, RDO, DAO,ADO Ц протоколи, спец≥ально призначен≥ дл¤ роботи з базами даних.

≤нтерфейс Ц це узагальнений терм≥н, ¤кий використовуЇтьс¤ в програмуванн≥ дл¤ позначенн¤ коду та даних додатку, ¤к≥ застосовуютьс¤ ≥ншими додатками або користувачами.

ќбТЇкт Ц це екземпл¤р складеного типу даних, що м≥стить власне дан≥ та методи њх обробки. ¬икористовуючи обТЇкти готових потужних клас≥в, ви значно полегшите свою участь. ¬ склад≥ Access можна вид≥лити три таких класи ЦApplication, DoCmd, CurrentDB

.  ожний з них маЇ значний перел≥к можливостей та може бути використаний дл¤ розвТ¤занн¤ прикладних задач. ќбТЇкт класу Application дозвол¤Ї посилатись на додаток Access та м≥стить багато засоб≥в керуванн¤ Access.

 лас DoCmd надаЇ можливост≥ вибору та керуванн¤ таблиц¤ми, запитами, курсорами, завантаженн¤ електронних таблиць, коп≥юванн¤ баз даних та ≥мпорту тексту.

 лас CurrentDB даЇ можлив≥сть посилатись на обТЇкт Ѕƒ в файл≥ бази , в≥дкритому в поточн≥й сес≥њ Access.

ўоб п≥дключити ћS DAO потр≥бно на вкладц≥ ToolsÞ References п≥дключити MS DAO 3.6 Object Library, а дл¤ MS ADO Ц MS ActiveX Data Objecrs 2.6 Library.

ѕриклад використанн¤ обТЇктуDAO

Sub DAOADDRow()

Const TITLE =ФAccess 2002Ф

Dim DB As DataBase

Dim RS As RecordSet

Set DB=CurrentDb()

Set RS=DB.OpenRecordSet(У LibraryФ)

 

RS.AddNew

RS(ФTitleФ).Value =TITLE

RS(УAuthorФ).Value=ФPaul KimmelФ

RS(УISBNФ). Value= У0-672-32098-3Ф

RS(УPageCountФ).Value=400

RS(УPublisherФ).Value=ФSamsФ

RS(УPublicationDateФ).Value=Date

 

RS.Update

RS.Close

Set RS=Nothing

Set DB=Nothing

End Sub

 

ѕриклад використанн¤ обТЇкту ADO

 

Sub ADOADDRow()

Const TITLE =ФAccess 2002Ф

Dim RS As New.ADODB.RecordSet

RS.Open У LibraryФ,CurrentProject.Connection, adOpenKeyset, adLockOptimistic

 

RS.AddNew

RS(ФTitleФ).Value =TITLE

RS(УAuthorФ).Value=ФPaul KimmelФ

RS(УISBNФ). Value= У0-672-32098-3Ф

RS(УPageCountФ).Value=400

RS(УPublisherФ).Value=ФSamsФ

RS(УPublicationDateФ).Value=Date

 

RS.Update

RS.Close

Set RS=Nothing

End Sub

 

Ћекц≥¤ є5 Ћекц≥¤ є3  —качати лекц≥ю

 

 

 

 
Hosted by uCoz