Смекни!
smekni.com

Організація баз даних та знань (стр. 22 из 26)

· визначити обсяг робіт; визначити вартість робіт;

Рис. 3.8 - Перелік функції керування проектами в організації

· визначити час робіт; визначити виробничі потужності;

· розподілити виробничі потужності; розподілити роботи між співробітниками;

· контролювати хід виконання проекту.

Таким чином, буде отриманий перелік функцій, що показаний у лівій колонці таблиці 3.2. Цьому переліку функцій повинен бути поставлений у відповідність перелік модулів додатка БД.

Керівник проекту передав розробникові БД характеристику додатки БД по керуванню виконанням проектів в організації. Цей додаток буде займатися обліком виконуваних і виконаних проектів в організації.

Розробник БД повинен встановити відображення функцій у модулі, як показано на рис. 3.9.

Наведений приклад показує загальний принцип побудови відображення бізнесфункцій у модулі.

Таблиця 3.2 – Переліки функцій і модулів

Функції Модуль
Призначити керівника проекту Уведення інформації про проект
Визначити бюджет проекту Уведення інформації про співробітників
Визначити список підрозділів Пошук інформації про співробітників
Визначити список співробітників Пошук інформації про проекти
Виконувати проект Генерація звіту про виконані проекти
Здати проект Генерація звіту про виконувані проекти

Рисунок 3.9 – Відображення функції в модулі

4 VBA відкритий інтерфейс доступу до баз даних – ODBC

4.1 Структура модуля. Вікно проекту й Вікно коду

Модулі VBA мають дуже просту синтаксичну структуру. На відміну від більшості мов програмування тут немає великої кількості розділів, немає поділу на інтерфейс і реалізацію. Усе зроблено гранично просто. Кожен модуль поза залежністю від його типу має всього два розділи:

· розділ оголошень змінних рівня модуля. Цей розділ іде першим й автоматично відокремлюється рискою від розділу методів. Завжди можна додати нове оголошення змінної в цей розділ. Область дії таких змінних поширюється на весь модуль, але вона може бути й розширена. Докладно про це ми поговоримо трохи пізніше;

· розділ методів модуля. У цьому розділі розміщуються процедури й функції. З погляду синтаксису нічого іншого крім процедур і функцій у цьому розділі бути не може. Звичайно є, у тому числі, і синтаксична різниця між макросом, методом - оброблювачем події й, наприклад, методом, що представляє процедуру з параметрами загального призначення. Проте, метод це завжди або процедура (Sub) або функція (Function).

4.2 Типи даних

Одні з перших запитань, що виникають при вивченні мови програмування: "Як у ньому влаштована система типів даних? Які є прості типи, як створюються складні, структурні типи, чи є можливість визначення власних типів, динамічних типів, чи можна в ньому визначати класи - "дійсні" типи, де визначається не тільки область можливих значень і структура даних, але й операції над ними?" Відповімо на ці запитання стосовно до VBA. Визначення типу Т задає: область можливих значень типу; структуру організації даних; операції, певні над даними цього типу.

Типи даних прийнято поділяти на прості й складні залежно від того, як розміщені їхні дані. У простих (скалярних) типів можливі значення даних єдині й неподільні. Складні типи характеризуються способом структуризації даних, - одне значення складного типу складається з безлічі значень даних, що організують складний тип.

Є й інші критерії класифікації типів. Так, типи поділяються на вбудовані типи й типи, визначені програмістом (користувачем). Вбудовані типи споконвічно належать мові програмування й становлять його базис. В основі системи типів будь-якої мови програмування завжди лежить базисна система типів, вбудованих у мову. На основі вбудованих типів програміст може будувати власні, певні типи даних. Але способи (правила) створення таких типів є базисними, вбудованими в мову.

Типи даних поділяються також на статичні й динамічні типи . Для даних статичного типу пам'ять виділяється в момент оголошення, необхідний розмір даних відомий при їхньому оголошенні. Для даних динамічного типу розмір даних у момент оголошення не відомий і пам'ять їм виділяється динамічно в процесі виконання програми по запиту.

Прості типи даних

Як і всяка мова, VBA містить всі звичні вбудовані прості типи даних: логічні, арифметичні й строкові.

Таблиця 4.1 – Система простих типів мови VBA

Ім'я типу Можливі значення Необхідна пам'ять
1 2 3
Boolean True, False 2 байти
Byte 0...…255 1байт
Integer -32768 …+32767 2 байти
Long Приблизно: -2000 000 000…+2000000000 4байти
Decimal

Приблизно 30 десяткових цифр. Можна вказати число цифр після десяткової крапки

.

12 байтів
Single

- 3,4E38 …-1,4 E-45 для негативних значень

1,4E-45 … 3,4E38 для позитивних значень

4 байти
Double

-1,7E308 … -4,9E-324 для негативних

значень4,9E-324 …

1,7E308 для позитивних значень

8 байтів
Currency

Десяткові числа з фіксованою позицією

коми. Можливі 15 цифр до коми й 4 після

8 байтів

Продовження таблиці 4.1

1 2 3
String

Є два види рядків:

рядки фіксованої

довжини мають до 216 символів.

Рядки змінної довжини мають до

2 31 символів

10 байтів +1 байт на символ у звичайному

кодуванні й 2

байти в кодуванні

Unicode

Date

Дати змінюються в діапазоні від 1

січня 100 р. до 31 грудня 9999 р.

8 байтів
Object Посилання на об'єкт (покажчик) 4 байти
Variant Універсальний тип, значенням Залежить від контексту, але не

якого можуть бути дані кожного з перерахованих вище типів,об'єкти, значення NULL і значення помилок ERROR

менш 16 байтів

Масиви

Найпростіший і найпоширеніший структурний тип - масив - упорядкована сукупність даних одного типу. Порядок на елементах масиву задається індексами його елементів. У VBA масиви можуть бути одномірними й багатомірними.

Синтаксис оголошення масивів розширений, - після ім’я змінної у круглих дужках вказується перелік розмірностей масиву:

{Dim | Private | Public | Static }<ім'я змінної> (<список розмірностей >) [ As <ім'я типу>]

Динамічні масиви

Динамічні масиви VBA - це потужний засіб. Масив уважається динамічним , якщо при первісному оголошенні не вказується його розмірність, але вона може бути визначена й перевизначена надалі оператором ReDim. Розмірність визначається динамічно в тій процедурі й у той момент, коли вона стає фактично відомою. Зверніть увагу, у цьому операторі межі зміни індексів можна задати не тільки як константи, але і як вирази, залежні від змінних.

Якщо потім потрібно змінити межі або розмірність масиву, ви можете знову задати оператор перевизначення ReDim і почати новий цикл роботи з масивом. І ще одна "приємність" - можна зберегти усі раніше отримані елементи й розширити масив, додавши нові елементи. Для цього треба просто задати ключове слово Preserve при перевизначенні масиву. Динамічні масиви з успіхом можна застосовувати там, де необхідні динамічні структури даних, наприклад, списки, стеки, черги.

4.3 Оголошення

Оголошення можна давати на двох рівнях - модуля й процедури. На рівні модуля розділ оголошень іде першим й автоматично відокремлюється рискою від розділу методів. На рівні процедури оголошення й оператори можуть бути перемішані, потрібно лише щоб оголошення змінної передувало її використанню. Хорошим тоном вважається й у процедурах мати два чітко виділених розділи й всі оголошення розміщувати на початку процедури, так, щоб вони передували виконанню частини процедури - розділу операторів.

Давайте чітко виділимо основні частини розділу оголошень:

· Розділ опцій.

· Розділ констант.

· Розділ типів.

· Розділ змінних.

· Розділ Declare.

Розділ опцій. Опції є вказівками для транслятора. Вони можуть задаватися тільки на рівні модуля й повинні починати розділ оголошень. Опції задаються ключовим словом Option, після якого йде ім'я опції і можливо параметри. Перерахуємо їх складові:

· Explicit - при її вказівці транслятор вимагає, щоб всі змінні модуля були явно описані. Необхідно включити цю опцію раз і назавжди в опціях Редактора VBA;

· Base - ця опція має два значення: 0 і 1, що вказують нижню межу індексу масивів, що задає за замовчуванням. Правильно не користуватися цією опцією, а самому й завжди вказувати нижню межу.

· Private - цю опцію досить помістити в один з модулів проекту, зазвичай у головний модуль проекту, що неявно завжди виділяється програмістом. При її завданні проект робиться закритим і недоступний для інших проектів у системі документів;

· Compare - опція показує транслятору, як він повинен виконувати порівняння рядків у процедурах модуля. Параметр опції може брати одне із трьох можливих значень:

{Binary | Text | DataBase}

Розділи констант, типів і змінних

Рекомендується створювати такі розділи, які будуть відокремлюватись коментарями один від іншого. Бажано, щоб ці розділи йшли в описаному нами порядку. Тоді вже оголошені константи будуть з'являтися при описі меж масивів, типи змінних будуть передувати оголошенню самих змінних.