Option Explicit
Sub ReadMDB()
'переменная хранящая результат запроса
Dim tbl As Recordset
'строка запроса SQL
Dim SQLr As String
'переменная хранящая ссылку на подключенную БД
Dim dbs As Database
'подключаемся к mdb
Set dbs = DAO.OpenDatabase("E:\price.mdb")
'составляем строку SQL запроса
SQLr = "SELECT * FROM tbl_прайс"
'отправляем запрос открытой БД
'результат в виде таблицы сохранен в tbl
Set tbl = dbs.OpenRecordset(SQLr)
'вставляем результат в лист начиная с ячейки A1
Cells(1, 1).CopyFromRecordset tbl
'Закрываем временную таблицу
tbl.Close
'Очищаем память. Если этого не сделать, то таблица
'так и останется висеть в оперативке.
Set tbl = Nothing
'Закрываем базу
dbs.Close
Set dbs = Nothing
End Sub
Sub ReadMDB_построчно()
Dim tbl As Recordset
Dim SQLr As String
Dim dbs As Database
Dim i As Integer
Set dbs = DAO.OpenDatabase("E:\price.mdb")
SQLr = "SELECT * FROM tbl_прайс"
Set tbl = dbs.OpenRecordset(SQLr)
i = 1
'выполняем цикл пока не конец tbl
Do While Not tbl.EOF
'присваиваем каждой ячейке значение из полей таблицы
Cells(i, 1) = tbl.Fields("ID")
Cells(i, 2) = tbl.Fields("Вид")
Cells(i, 3) = tbl.Fields("Производитель")
Cells(i, 4) = tbl.Fields("Модель")
Cells(i, 5) = tbl.Fields("Количество")
Cells(i, 6) = tbl.Fields("Цена")
'и получим сумму (цена*кол-во)
Cells(i, 7) = tbl.Fields("Количество") * tbl.Fields("Цена")
i = i + 1
tbl.MoveNext 'переход к следующей записи
Loop
tbl.Close
Set tbl = Nothing
dbs.Close
Set dbs = Nothing
End Sub
Sub ReadMDB_добавить_запись()
Dim tbl As Recordset
Dim SQLr As String
Dim dbs As Database
Dim kol As Long
Set dbs = DAO.OpenDatabase("E:\price.mdb")
Set tbl = dbs.OpenRecordset("tbl_прайс")
'метод RecordCount позволяет получить кол-во записей
'Kol хранит ID для новой записи
kol = tbl.RecordCount + 1
SQLr = "INSERT INTO tbl_прайс (ID,Вид,Производитель, Модель,Количество, Цена)" _
& "Values (" & kol & ",'ОЗУ','Hyndai', 'DDR3', 123, 600)"
dbs.Execute SQLr
tbl.Close
Set tbl = Nothing
dbs.Close
Set dbs = Nothing
End Sub