Данила Полуянов
Посетитель
Всего сообщений: 21
Дата регистрации: 20.06.2016
|
Создано:
14.09.2018 14:51:05
|
|
Добрый день! Решил попробовать связать Rastr с параметрами элементов в БД Access, но споткнулся в самом начале пути )
Не могу понять, почему не удается подключиться к БД с помощью следующего кода:
Set cn = CreateObject("ADODB.Connection")
strUDL = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Параметры элементов сети.accdb"
' Подключение к БД
cn.Open strUDL
' подключение к таблице
strOpen = "SELECT * FROM ЛЭП_параметры;"
Set rst = CreateObject("ADODB.Recordset")
' настройки доступа к набору записей
rst.CursorType = 3
rst.LockType = 1
rst.Open strOpen, cn
mark = rst("Марка")
' Закрываем набор записей
rst.Close
Set rst = Nothing
' Закрываем соединение
cn.Close
Set cn = Nothing
Ошибка появляется в строке подключения к БД: cn.Open strUDL
Аналогичный код в Excel работает правильно:
Sub Connect_BD()
' Подключение к БД Access
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
Dim strUDL As String
strUDL = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Параметры элементов сети.accdb"
cn.Open strUDL
Dim strOpen As String
strOpen = "SELECT * FROM ЛЭП_параметры"
Dim rst As Object
Set rst = CreateObject("ADODB.Recordset")
rst.CursorType = 3
rst.LockType = 1
rst.Open strOpen, cn
Dim str1 As String
str1 = rst("Марка")
rst.Close
Set rst = Nothing
cn.Close
Set cn = Nothing
End Sub
Пробовал менять строку подключения к БД, но пока безуспешно.
Сталкивался кто-нибудь с такой задачей? и как можно ее решить?
|
Данила Полуянов
Посетитель
Всего сообщений: 21
Дата регистрации: 20.06.2016
|
Создано:
14.09.2018 16:16:06
|
Нашел один вариант решения.
Сохранил БД с расширением "*.mdb"
и использовал строку подключения: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Параметры элементов сети.mdb
Но не понятно, почему не удалось подключиться с помощью Provider=Microsoft.ACE.O?LEDB.12.0
|
Олег Бельцов
Посетитель
Всего сообщений: 34
Дата регистрации: 14.05.2012
|
Создано:
17.09.2018 13:30:27
|
MS Office точно 32 битный?
Движок Jet -- вроде как всегда 32 бита
Движок ACE -- зависит от установленного офиса, соответственно если офис 64 бита, то и движок будет 64 бита и из растра виден не будет.
Вообще говоря движок ACE можно поставить отдельно, но в подробности я не вникал.
|
Данила Полуянов
Посетитель
Всего сообщений: 21
Дата регистрации: 20.06.2016
|
Создано:
17.09.2018 15:30:33
|
Параметры моей системы: Windows 7 64-битная, MS Office 64-битный.
Из Excel строка подключения с ACE работает правильно, видимо этот движок у меня стоит и работает.
Из RastrWin, видимо, только Jet при 64-битном MS Office
|
Олег Бельцов
Посетитель
Всего сообщений: 34
Дата регистрации: 14.05.2012
|
Создано:
19.09.2018 14:26:41
|
В зависимости от проводимых работ и наличия возможности может быть полезно поставить именно 32битный офис для обеспечения его взаимодействия с Растром. Например динамический обмен или в скриптах в офисе использовать расчётные возможности Растра.
ACE движок всегда ставиться с последним офисом, но на сайте майкрсоофт вроде есть возможность скачать и установить движок ACE отдельно от офиса (попадалась мне ссылка, но на тот момент не заинтересовала). В том числе поставить дополнительно 32 битный.
jet движок тоже изначально быль офисным, но сейчас идёт в комплекте с виндой (чуть ли не с 95, не буду утверждать), причем существует, как я понимаю, только 32 битная версия.
|
Данила Полуянов
Посетитель
Всего сообщений: 21
Дата регистрации: 20.06.2016
|
Создано:
25.09.2018 11:48:45
|
Спасибо за ответы!
В целом, хочется отметить, что с Access очень даже шустро Rastr взаимодействует. Связь с базой данных кажется поинтереснее чем просто с таблицей Excel
|
Дмитрий Максименко
Администратор
Всего сообщений: 43
Дата регистрации: 25.12.2017
|
Создано:
25.09.2018 13:36:05
|
Могу еще порекомендовать раздел help к Растру
14.4. Взаимодействие с MS SQL сервером
|