VBA - Проблема с запросом

Ответить
 • Просмотры: 2
Аватара пользователя
blackeangel

VBA - Проблема с запросом

Сообщение blackeangel »

Помогите правильно подключиться к таблице в Access файле. Пишет всё время, что непонятная конструкция.

Что ему надо что б понять, что это файл, это таблица и надо взять данные из неё?





Код:

Код: Выделить всё

Sub Macros4()
    Set conn = CreateObject("ADODB.Connection")
    conn.ConnectionString = "Provider=SQLOLEDB.1;Password=123456789;Persist Security Info=True;User ID=Admin;Initial Catalog=db_production;Data Source=RTVSMSQL-01"
    conn.Open
    Set rst = CreateObject("ADODB.Recordset")
    rst.ActiveConnection = conn
    rst.CursorType = adOpenStatic
    'Asked = "SELECT * FROM [OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\123.accdb].[otchet]"
    'Asked = "SELECT * FROM [ODBC;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\123.accdb].[otchet]"
    'Asked = "SELECT * FROM [ODBC;Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:\123.accdb].[otchet]"
    Asked = "SELECT * FROM [OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\123.accdb].[otchet]"
    rst.Open Asked, conn
    Stop
End Sub
Аватара пользователя
Iska

Re: VBA - Проблема с запросом

Сообщение Iska »

Здесь:
Microsoft ACE OLEDB 12.0 Connection Strings - ConnectionStrings.com
смотрели?



Выделенное:



Код:

Код: Выделить всё

Asked = "SELECT * FROM [OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\123.accdb].[otchet]"

в данном контексте — лишнее.



Разрядность приложения, если мне не изменяет память, должна совпадать с разрядностью драйвера OLE DB.
Аватара пользователя
blackeangel

Re: VBA - Проблема с запросом

Сообщение blackeangel »

Iska, как раз не лишнее. ТК conn подключился к серверу, а мне нужна таблица, которая находится в другом файле mdb, а вызов всего этого происходит из надстройки Excel



Вот как раз надо подключиться к той БД прям в запросе уже. С сервером аналогичное прокатывает.
Аватара пользователя
Iska

Re: VBA - Проблема с запросом

Сообщение Iska »

Строка подключения должна быть здесь:



Код:

Код: Выделить всё

conn.ConnectionString = "…"
Аватара пользователя
blackeangel

Re: VBA - Проблема с запросом

Сообщение blackeangel »

Iska, если так делать, то мы потеряем текущее соединение
Аватара пользователя
blackeangel

Re: VBA - Проблема с запросом

Сообщение blackeangel »

Если подключиться к БД Access и выполнять запрос с сервера, то рабочий код такой:



Код:

Код: Выделить всё

Sub Macros5()
	Set cnt = CreateObject("ADODB.Connection")
	cnt.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\123.accdb;"
	cnt.Open
	Set rs = CreateObject("ADODB.Recordset")
	rs.ActiveConnection = cnt
	rs.CursorType = adOpenStatic
	ask = "SELECT [blank] INTO base FROM [ODBC;Driver=SQL Server; SERVER=RTVSMSQL-01;UID=Admin; DATABASE=db_production; PWD=123456789].[dbo.example_table]"
	rs.Open Asked, cnt
	Stop
End Sub

Но мне надо наоборот. А как это выглядит не пойму никак.
Аватара пользователя
blackeangel

Re: VBA - Проблема с запросом

Сообщение blackeangel »

А ошибку выдает такую
Вложения

[Расширение png было запрещено, вложение больше недоступно.]

Ответить

Вернуться в «Программирование и базы данных»