Access є4 Visual Basic for Applications ќсновн≥ пон¤тт¤ ќператори VBA
Ќайчаст≥ше вживаЇтьс¤ обТ¤вленн¤ за допомогою службового слова 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 треба виконати наступн≥ д≥њ:
ƒл¤ цього призначене в≥кно Immediate. ўоб виконати цю команду сл≥д обрати в р¤дку меню редактора команду ViewÞ Immediate Window. «а допомогою цього в≥кна, можна безпосередньо виконати де¤кий код. Ќаприклад: Open Уc:\windows\win.iniФ for Input As #1 Line Input #1,s Print s Close #1 —тек виклик≥в. ¬иклик можна розум≥ти, ¤к зверненн¤ до програми, з метою виконанн¤ ≥менованоњ процедури. ќск≥льки виклик в≥дбуваЇтьс¤ за ≥менем та адресою, в≥длагоджувач може в≥дсл≥дити пор¤док виклику процедур. —писок викликаних процедур вм≥щуЇтьс¤ у стек виклик≥в. —пец≥альн≥ оператори
ќсновн≥ конструкц≥њ мови VBAIf (умова) 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 ѕриклад в≥дкритт¤ таблиц≥ та в≥дображенн¤ даних про њњ структуру
Debug.Print Field.Name & Ф,Ф& Field.Type & У,Ф & Field.ActualSize
ѕрот¤гом останн≥х рок≥в спец≥ал≥сти 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.ѕриклад використанн¤ обТЇктуD AOSub 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
|