MyTetra Share
Делитесь знаниями!
Чтение mdb на VBA
Время создания: 16.03.2019 23:43
Текстовые метки: VBA_Access, импорт, Recordset
Раздел: !Закладки - VBA - Access
Запись: xintrea/mytetra_db_adgaver_new/master/base/1484024686gr6sbfrnpb/text.html на raw.githubusercontent.com

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

 

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования