Страницы: 1
RSS
Занести таблицу Access в массив
 
Добрый день. Пытаюсь подключиться к базе Аксес, чтобы занести данные таблицы в массив и вытягивать информацию из массива. Столкнулся с отсутствием нужной библиотеки для подключения к Аксесу. Подскажите, есть ли способ получить данные в массив без подключения библиотеки?
Мой код:
Код
Sub access()
   Dim cn As Object, rs As Object
   Dim intColIndex As Integer
   Dim DBFullName As String
   Dim TargetRange As Range
    
    DBFullName = "C:\OP.accdb"
    Set TargetRange = Sheets("Лист1").Range("B2")
    Set cn = CreateObject("ADODB.Connection")
    cn.Open "Provider=Microsoft ActiveX Data Objects 6.1 Library; Data Source=" & DBFullName & ";"
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open "SELECT * FROM q_promoexcel", cn, , , adCmdText
    For intColIndex = 0 To rs.Fields.Count - 1
    TargetRange.Offset(1, intColIndex).Value = rs.Fields(intColIndex).Name
    Next
    
     On Error Resume Next
     appAccess.Close
     Set appAccess = Nothing
     cn.Close
     Set cn = Nothing
End sub
 
Доброе время суток
Цитата
Hellmaster написал:
Provider=Microsoft ActiveX Data Objects 6.1 Library
Забавного вы провайдера наши. Может всё же такими сначала воспользоваться, а не изобретать собственный велосипед?
Ну, и по теме вопроса GetRows Method (ADO)
 
Андрей VG, у меня нет ни Microsoft.Jet.OLEDB.4.0, ни Microsoft.ACE.OLEDB.12.0, поэтому и создал эту тему) За не имением нужных библиотек я испробовал другие(имеющиеся у меня) и выложил последний макрос, который пробовал.
Был еще такой вариант, но выдает ошибку о том, что невозможно подключиться к файлу с таким расширением.
Код
Sub Access()
Dim tbl As Recordset
Dim SQLr As String
Dim dbs As Database

Set dbs = DAO.OpenDatabase("C:\OP.accdb")
SQLr = "SELECT * FROM q_promoexcel q_promoexcel where q_promoexcel.dc like 149"
Set tbl = dbs.OpenRecordset(SQLr)
tbl.Close
Set tbl = Nothing
dbs.Close
Set dbs = Nothing
End sub
Изменено: Hellmaster - 10.10.2019 11:46:10
 
Цитата
Hellmaster написал:
у меня нет ни
Тогда нужно ставить, например Microsoft Access Database Engine 2016 Redistributable той же битности, что и Excel. Иначе - никак. Нет других движков для доступа к базам Access, насколько я знаю.
Страницы: 1
Наверх