Excel і бази даних - excellence team

Коротко про структуру бази даних. База складається з таблиць. Таблиця - з рядків. Рядок - з полів. У полях можуть зберігатися дані різних форматів. Формати визначаються в момент створення таблиці. Створити базу і таблиці в ній можна в Access, а можна і засобами макросу прямо з Excel.







Тепер робимо так:

'Оголошуємо змінні
Dim dbs As DAO.Database 'База даних
Dim rs As DAO.Recordset 'Запит до бази даних

'Відкриваємо базу
Set dbs = DAO.OpenDatabase ( "c: \ database.mdb")
'Виконуємо запит до бази даних
Set rs = dbs.OpenRecordset ( "SELECT * FROM тбл_тов WHERE ID_тов> 2")

Тут поясню докладніше. Запити до бази виконуються на мові SQL. Поки розглянемо тільки одну команду цієї мови - SELECT. Ця команда вибирає з таблиці рядки, що задовольняють заданій умові. Там, де у нас стоїть зірочка, можна вказати назви полів, які будуть присутні у відповіді. У нашому випадку буде повертатися вся рядок повністю. Після слова FROM йде назва таблиці, з якої йде вибір рядків. Таблиць в базі може бути багато. У нашому випадку це тбл_тов - таблиця товарів. Після слова WHERE вказується умова, за яким відбираються рядки. У нас умова таке: якщо поле ID_тов> 2, то рядок включається у відповідь. Відповідь виходить у змінній rs, яка має тип Recordset. Recordset - це тимчасова таблиця, сформована з рядків, що задовольняють умові запиту.







'Якщо нічого не знайдено - видаємо повідомлення і виходимо
If rs.RecordCount = 0 Then
MsgBox ( "За вашим запитом нічого не знайдено")
Exit Sub
End If
Do while not rs.EOF 'цикл виконується поки не досягнута останній рядок в таблиці відповіді
'Надаємо клітинок таблиці значення з бази
Cells (i, 2) .value = rs.Fields ( "назв_тов")
Cells (i, 1) .value = rs.Fields ( "ID_тов")
i = i + 1
'Переходимо до наступного рядка в тимчасовій таблиці відповіді
rs.MoveNext
Loop
'Закриваємо тимчасову таблицю
rs.Close
'Очищаємо пам'ять. Якщо цього не зробити, то таблиця так і залишиться в пам'яті до закриття робочої книги.
Set rs = Nothing
'Закриваємо базу
dbs.Close
'Очищаємо пам'ять
Set dbs = Nothing







Схожі статті