|
|||||||
Учимся работать с базами данных Access из макросов Excel
Время создания: 16.03.2019 23:43
Текстовые метки: Excel-Access, VBA, DAO
Раздел: Разные закладки - VBA - Access - Excel->Access
Запись: xintrea/mytetra_db_adgaver_new/master/base/1513050511nkm76rjg3s/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Учимся работать с базами данных Access из макросов Excel Кратко о структуре базы данных. База состоит из таблиц. Таблица - из строк. Строка - из полей. В полях могут храниться данные разных форматов. Форматы определяются в момент создания таблицы. Создать базу и таблицы в ней можно в Access, а можно и средствами макроса прямо из Excel. Чтобы Access смог обращаться к базам Access, нужно подключить библиотеку DAO. Для этого в редакторе Visual Basic выбираем меню "Tools->References", открывается окошко, в котором нужно поставить галочку напротив Microsoft DAO 3.6 Object Library. Теперь делаем так: Тут объясню подробнее. Запросы к базе выполняются на языке 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 |
|||||||
Прикрепленные файлы:
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|