Глава .9Visual Basic і бази даних
Якщо ви запитаєте професійного програміста, навіщо потрібен Visual Basic, він відповість - В більшості випадків для програмування баз даних. Так, дійсно, адже комп'ютер - це інструмент для обробки інформації, а інформація в діловому світі зберігається в основному в базах даних, тому важливе завдання мови програмування, якщо він хоче бути потрібним - забезпечити швидку, зручну і надійну роботу з ними.
Тут я познайомлю вас з тим, як Visual Basic працює з базами даних. Це тільки знайомство. Ви зможете виконувати декілька основних операцій з базами даних і для загального уявлення про предмет цього достатньо, але для професійної роботи вам потрібно почитати книжки товстіший, тим більше, що майже кожна товста книжка по Visual Basic приділяє баз даних мало не половину своєї товщини.
9.1.Понятіе про базах даних
Що таке база даних, я пояснив в 1.2 на прикладі бази даних комп'ютерних ігор. У переважній більшості випадків база даних - це одна або кілька прямокутних таблиць, таких, наприклад, як ця таблиця, присвячена боксерам:
Розряд з боксу
Крім цих основних завдань порядна СУБД дозволяє користувачеві змінювати вміст записів, доповнювати базу новими записами, прати непотрібні, роздруковувати в зручному вигляді потрібну інформацію з бази даних, дозволяє за допомогою програмування автоматизувати найбільш трудомісткі операції з базами даних і пристосовувати бази даних до конкретних потреб користувача.
СУБД, найбільш близька до Visual Basic - це Microsoft Access, що входить в пакет Microsoft Office Professional. В Access ви можете і без жодного програмування прекрасно працювати з реальними базами даних. Ну а програмування роботи в Access здійснюється на спеціальній мові Visual Basic for Applications, який є "діалектом" мови Visual Basic стосовно пакету Microsoft Office.
Якщо ви вирішили зайнятися базами даних, то у вас два шляхи:
Швиденько освоїти на рівні користувача Access, і тоді ваша робота з базами даних буде зручною і приємною, а необхідність в програмуванні ви відчуєте не скоро. Коли ж відчуєте, то будете програмувати на практично відомому вам Visual Basic for Applications.
Освоювати роботу з базами даних в середовищі Visual Basic. Це значно важче, але зате ви майже відразу ж почнете програмувати і зможете створювати проекти, в яких робота з базами даних об'єднана з абсолютно іншими областями обробки інформації (наприклад, з іграми).
Назва книги зобов'язує мене вибрати другий шлях.
9.2.Создаем заготовку бази даних за допомогою Visual Data Manager
Нехай ми хочемо створити базу даних книг, випущених міфічним видавництвом "Контакт" в міфічні часи. База даних повинна мати такий вигляд:
Наше завдання - навчитися здійснювати з цією базою всі основні необхідні операції: створення, заповнення, зміна, сортування, фільтрацію.
Звичайно ж, ми не будемо користуватися доморощеним програмуванням, як в 1.2 У Visual Basic є спеціальні інструменти для більш швидкого і зручного виконання всіх цих операцій. Першим ми використовуємо VisualDataManager. розташований в меню Add-Ins. Він являє собою по суті простеньку СУБД, що працює автономно від середовища Visual Basic. Але я його використовую тільки для створення структури бази даних.
Почнемо створювати нашу базу, але спочатку придумаємо ім'я для таблиці - "Books" (окреме ім'я для таблиці необхідно тому, що база даних може містити кілька таблиць). І для полів теж придумаємо імена: Nazvanie, Avtor, Data, Kol_stran.
Add-InsVisualDataManagerFileNewMicrosoftAccess (ми вибрали Microsoft Access, це означає, що з цією базою даних можна буде в майбутньому працювати не тільки з Visual Data Manager, але і в Access) Version7.0MDB. Перед вами відкриється вікно збереження, яке запропонує зберегти майбутню базу в файлі з розширенням MDB. Дамо файлу ім'я "Книги" і зберегти. Вікно Visual Data Manager придбає такий вигляд (на зображенні в лівому вікні показана структура таблиці, яку вона придбає пізніше, а поки там майже порожньо):
Файл створено. Пора створювати таблицю. Клацнемо правою клавішею мишки всередині лівого вікна і в контекстному меню виберемо New Table. Перед нами відкриється порожнє вікно структури таблиці (на малюнку воно показано вже заповненим інформацією про полях таблиці, причому зліва видно список полів, а праворуч - інформація про виділений поле (Avtor) нашої таблиці):
Дамо ім'я таблиці. Потім клацнемо по кнопці Add Field, перед нами відкриється порожнє вікно для додавання поля (на малюнку воно показано вже заповненим інформацією про поле Nazvanie нашої таблиці):
Вам достатньо лише дати ім'я полю і вибрати під міткою Type його тип. Решта - тонкощі. Натискаючи ОК, введемо інформацію про всіх полях, потім закриємо вікно додавання поля (кнопка Close).
Поле можна видалити, виділивши його у вікні структури таблиці і натиснувши кнопку Remove Field.
Закінчивши введення інформації про всіх полях, натискаємо кнопку Build the Table і на цьому створення структури таблиці закінчено. Все інше ми будемо робити іншими інструментами.
9.3.Работа з базами даних. Елементи управління Data і DBGrid. Мова SQL.
З цього моменту ви можете запускати проект і працювати з базою даних програмним шляхом. Однак, не дуже-то зручно це робити, не бачачи під час роботи саму таблицю бази даних, а Data сам по собі її не показує. Способів побачити її кілька. Найкращий - використання елемента управління DBGrid. Знаходиться він так: ProjectComponentsMicrosoft Data Bound Grid Control 5.0. Додайте його на формі. Нехай його ім'я буде DBGrid1. Працювати він буде в парі з Data, таблицю якого і буде робити видимою в режимі роботи. Встановимо його властивості:
Перш за все, оскільки в проекті можуть бути присутні кілька елементів Data, потрібно вказати, з яким саме з них буде працювати наш DBGrid, іншими словами, до кого він буде прив'язаний. Для цього встановимо значення його властивості DataSource в Data1. Встановимо також в True наступні властивості DBGrid1: AllowAddNew (дозволити вручну додавати в таблицю нові записи), AllowDelete (дозволити вручну видаляти записи з таблиці), AllowUpdate (дозволити вручну змінювати дані в таблиці). Можете надати якесь значення властивості Caption.
Приступимо до заповнення таблиці даними про книги. Для цього запустимо проект. На екрані з'явиться порожня таблиця. Після того, як ви вручну заповніть цю таблицю, проект матиме такий вигляд:
У верхній частині ви бачите елемент Data1, від споглядання якого толку мало, тому його цілком можна зробити невидимим.
Дані, які ви вводите в поле, перевіряються на приналежність до типу поля. Зверніть увагу, що Visual Basic "скоротив" ті дати, які вважає "і так зрозумілими".
Щоб видалити запис, виділіть її клацанням по сірому прямокутнику зліва від запису і натисніть на клавіатурі Delete. Можна розширювати і звужувати рядки і стовпці, перетягуючи межу між сірими прямокутниками.
Коли ви завершите виконання проекту, таблиця буде автоматично збережена в файл.
До Data можна прив'язувати не лише DBGrid, а й інші елементи, наприклад текстові поля. Додайте на формі чотири текстових поля і зв'яжіть їх з Data1. Також кожне з цих полів зв'яжіть за допомогою властивості DataField зі своїм полем таблиці. Запустіть проект. Поклацайте за різними записами в DBGrid. Ви бачите, що значення текстових полів автоматично стають рівними значенням полів поточного запису таблиці. І навпаки, варто нам змінити вміст текстового поля, як змінюється відповідний вміст таблиці.
До сих пір ми міняли вміст бази даних вручну. Подивимося, як це можна робити програмним способом. Таблиця розділена на клітини-осередки. Існує поняття поточної комірки (current cell), з якої відбувається в даний момент робота. Вона задається номером запису (DBGrid1.Row) і номером поля (DBGrid1.Col). Властивість DBGrid1.Text означає вміст поточної комірки. Сама верхня запис має номер 0, а не 1. Те ж відноситься і до самого лівому полю. Наприклад, при роботі з нашою базою даних фрагмент
надрукує слово Достоєвський.
Ось приклад процедури, яка заповнює числами 2, 3, 4 поле Kol_str в записах з 2-го по 4-ю:
Private Sub Command1_Click ()
А ось рядок, що збільшує на одну добу дату випуску:
DBGrid1.Text = DateAdd ( "d", 1, DBGrid1.Text)
А тепер подивимося, як за допомогою найпростіших операторів виконуються такі складні речі, як сортування і фільтрація. Для цього будемо використовувати популярний універсальна мова спілкування з базами даних SQL. Ось процедура, сортує нашу базу даних за датою випуску книги:
Private Sub Command4_Click ()
Data1.RecordSource = "SELECT Avtor, Nazvanie, Data FROM Books ORDER BY Data"
Виконавши цю процедуру, ви побачите на екрані таку таблицю:
Пояснення. Вище ми писали рядок
маючи на увазі, що джерелом даних для роботи елемента Data1 буде цілком таблиця Books. А ось перший рядок нашої процедури вибирає для роботи елемента Data1 тільки три поля: Avtor, Nazvanie, Data. Дійсно, в перекладі з англійської команда
SELECT Avtor, Nazvanie, Data FROM Books ORDERBY Data
ВИБРАТИ Avtor, Nazvanie, Data З Books УПОРЯДОЧИТЬ ПО Data
Тобто робота буде вестися не з усіма полями, а тільки з трьома перерахованими, причому записи будуть упорядковані по зростанню дати випуску книги.
Якщо замість ORDER BY Data написати ORDER BY Data DESC. то записи будуть впорядковані за спаданням дати.
просто призводить попередню команду SELECT в дію.
Наступна процедура здійснює фільтрацію.
Private Sub Command6_Click ()
Data1.RecordSource = "SELECT * FROM Books WHERE Kol_str> 100"
Пояснення. Зірочка в вираженні
SELECT * FROM Books
означає, що ми вибираємо все поля таблиці Books.
WHERE Kol_str> 100
ДЕ кількість сторінок> 100
і наказує вивести на екран тільки ті книжки, що товщі 100 сторінок.
Наступна таблиця ілюструє деякі інші можливості SQL:
SELECT * FROM Books WHERE Avtor = 'Стругацькі' AND Data> # 21/11/1970 #
SELECT TOP 3 * FROM Books ORDER BY Data DESC
На екран виводяться 3 останні книжки, випущені видавництвом. Вираз ORDER BY Data DESC сортує записи по спадаючій дати, а вираз TOP 3 показує на екрані тільки верхні 3 записи з відсортованих.
SELECT * FROM Books WHERE Kol_str BETWEEN 100 AND 200
На екран виводяться книжки з числом сторінок МІЖ 100 І 200.
Кой - Астральна проекція дляначінающіх. Шість технік для подорожі в інші світи. проблему дляначінающіх. ніж для досвідчених астральних мандрівників. Початківці скоро. Едайн астральної проекції ДЛЯНАЧІНАЮЩІХ Шість технік для подорожі в інші.
ПІДПРИЄМНИЦТВА Г. КЕМЕРОВО «Довідково-інформаційний посібник дляначінающіх підприємців» м Кемерово, Островського 27 Тел. ). 3. Розробка бізнес-плану: -дляначінающіх СМСП - 5 000 руб. - для діючих СМСП -15 000.
ми не вчимося. Вона - дляначінающіх і для тих більш досвідчених, хто має. Бейсік Basic мову як дляначінающіх. так і для професійних програмістів Паскаль Pascal. застосовується також оператор Read. Дляначінающего програміста відмінності в їх застосуванні.
ми не вчимося. Вона - дляначінающіх і для тих більш досвідчених, хто має. Бейсік Basic мову як дляначінающіх. так і для професійних програмістів Паскаль Pascal. застосовується також оператор Read. Дляначінающего програміста відмінності в їх застосуванні.