Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проблема с запросом / 25 сообщений из 30, страница 1 из 2
13.10.2021, 19:15
    #40104204
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Помогите правильно подключиться к таблице в Access файле. Пишет всё время, что непонятная конструкция.
Что ему надо что б понять, что это файл, это таблица и надо взять данные из неё?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
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
...
Рейтинг: 0 / 0
13.10.2021, 19:16
    #40104205
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
BlackeAngel
Пишет всё время, что непонятная конструкция.
Не надо рассказов по мотивам. Воспроизведите сообщение об ошибке - полностью, без купюр и изменений.
...
Рейтинг: 0 / 0
14.10.2021, 08:11
    #40104279
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Akina,

Если подключиться к БД Access и выполнять запрос с сервера, то рабочий код такой:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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


Но мне надо наоборот. А как это выглядит не пойму никак.
...
Рейтинг: 0 / 0
14.10.2021, 08:22
    #40104284
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Ну он как бы говорит, что ему строка подключения не нравится.

А вообще если надо из одной БД дёргать за таблицы в другой БД,Ю есть стандартный синтаксис
Код: sql
1.
... FROM table IN database ...
...
Рейтинг: 0 / 0
14.10.2021, 08:26
    #40104287
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Akina,
То что ему строка подключения не нравится, я как бы понял. Не могу понять как так, что б ему зашло.
AkinaА вообще если надо из одной БД дёргать за таблицы в другой БД,Ю есть стандартный синтаксис
... FROM table IN database ...

Так, а подробнее? Примеры? Где почитать?
...
Рейтинг: 0 / 0
14.10.2021, 08:27
    #40104288
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Гмм.... я бы попробовал в стринге соединения указывать провайдер для Access, а в Asked - обычный SELECT без упоминания драйверов... У меня работает так.
...
Рейтинг: 0 / 0
14.10.2021, 08:30
    #40104290
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Serg197311,
Мне надо конектиться к серверу, а не к БД акцеса, и работать наоборот.

Akina, шинковать таблицы не предлагать - прав на запись на сервак нетю
...
Рейтинг: 0 / 0
14.10.2021, 09:07
    #40104293
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
BlackeAngel
Помогите правильно подключиться к таблице в Access файле.

Ну я только сюда глянул, а дальше невнимательно... Сорян
...
Рейтинг: 0 / 0
14.10.2021, 09:50
    #40104305
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
BlackeAngel
Так, а подробнее? Примеры? Где почитать?
Встроенная справка MS Access по SQL.

Access XXXX Developer Reference > Microsoft Access SQL Reference > Data Manipulation Language > SELECT Statement (Microsoft Access SQL)

Или: Создание - Запрос - Режим SQL - Поставить курсор в слово SELECT - F1 - SELECT Statement.
...
Рейтинг: 0 / 0
14.10.2021, 10:19
    #40104312
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Akina,

Это здорово, НО надо сначала подключиться.
Например, если этот код выполняется из, скажем Excel или Outlook то данным Макаром не выйдет, ТК нет даже открытой базы, кроме подключения к серверу.
...
Рейтинг: 0 / 0
14.10.2021, 12:52
    #40104361
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Вот код, который у меня в Excel в common-модуле прекрасно берёт данные из базы MS Access:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Sub get_data_from_db(DBFullName As String)
' DBFullName = "C:\Users\Akina\Documents\Мои источники данных\test.mdb"
' или 
' DBFullName = "C:\Users\Akina\Documents\Мои источники данных\test.accdb"

Dim cn As Object, rs As Object

On Error GoTo ErrorHandler

Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBFullName & ";"

Set rs = CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM Kommutator", cn, , , adCmdText

' Делаем с данными из rs всё, что нам надо

rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

On Error GoTo 0
Exit Sub

ErrorHandler:
    MsgBox "Error Description :" & Err.Description & vbNewLine & _
           "Error at line     :" & Erl & vbNewLine & _
           "Error Number      :" & Err.Number
End Sub



MS Windows 10 x64 все обновления, MS Office 2010 x86 Prof Rus
...
Рейтинг: 0 / 0
28.02.2022, 09:57
    #40136656
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Akina, Аналогичный код и у меня работает прекрасно. А вот подключитесь из Excel к sql server, и попробуйте из этого подключения получить данные таблицы файла .mdb Access. Вот в чём проблема.
...
Рейтинг: 0 / 0
28.02.2022, 11:27
    #40136666
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Вот код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim bdpath$, qSQL$
Dim cnt As ADODB.Connection
Dim rs As ADODB.Recordset
bdpath = "D:\Pavel\Desktop\errors_28_02_22.mdb"
Set cnt = New ADODB.Connection
cnt.Open "Provider=SQLOLEDB.1;Password=password;Persist Security Info=True;User ID=user;Initial Catalog=db_base;Data Source=You-Server-01"
qSQL = "SELECT * FROM [ODBC;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & bdpath & "].
    " Set rs = cnt.Execute(qSQL) cnt.Close


Выдает ошибку
...
Рейтинг: 0 / 0
28.02.2022, 12:08
    #40136675
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
А что это за .
    ?

    В строке подключения указывается только имя файла БД.
...
Рейтинг: 0 / 0
28.02.2022, 12:09
    #40136676
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Akina,
Это имя таблицы из которой надо выбрать данные
...
Рейтинг: 0 / 0
28.02.2022, 13:55
    #40136689
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Akina

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

Без разницы, пробовал и таблицу и без неё и odbc и без него.
...
Рейтинг: 0 / 0
28.02.2022, 15:22
    #40136705
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim bdpath as String
Dim SQL as String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

   bdpath = "D:\Pavel\Desktop\errors_28_02_22.mdb"
   Set cn = New ADODB.Connection
   cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & bdpath & ";Persist Security Info=False;"
   SQL = "SELECT * FROM 
    " Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient Set rs.ActiveConnection = cn rs.Open SQL, , adOpenStatic, adLockReadOnly, adCmdText



если же вам нужно получить доступ к mdb файлу с сервера SQL, то это надо делать средствами сервера и на сервере должны быть установлены соответствующие драйвера доступа к MSAccess и на сами файлы mdb должны предоставлены все доступы SQL-серверу (обычно эти файлы размещают на самом сервере или на каталоге куда он имеет полный доступ, т.е. не на локальном компьютере пользователя )
...
Рейтинг: 0 / 0
28.02.2022, 15:29
    #40136712
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Konst_One,
Так то и я умею.
А вы попробуйте подключиться к серверу, и из этого подключения получить данные из mdb.
...
Рейтинг: 0 / 0
28.02.2022, 15:31
    #40136714
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Konst_One
[src VB]
если же вам нужно получить доступ к mdb файлу с сервера SQL, то это надо делать средствами сервера и на сервере должны быть установлены соответствующие драйвера доступа к MSAccess и на сами файлы mdb должны предоставлены все доступы SQL-серверу (обычно эти файлы размещают на самом сервере или на каталоге куда он имеет полный доступ, т.е. не на локальном компьютере пользователя )


Мне надо, что б запросы обрабатывал сервер, а возвращал результаты на локальный комп юзера.
Что б я ему данные, а он мне только результат
...
Рейтинг: 0 / 0
28.02.2022, 15:35
    #40136716
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
BlackeAngel
Konst_One
[src VB]
если же вам нужно получить доступ к mdb файлу с сервера SQL, то это надо делать средствами сервера и на сервере должны быть установлены соответствующие драйвера доступа к MSAccess и на сами файлы mdb должны предоставлены все доступы SQL-серверу (обычно эти файлы размещают на самом сервере или на каталоге куда он имеет полный доступ, т.е. не на локальном компьютере пользователя )


Мне надо, что б запросы обрабатывал сервер, а возвращал результаты на локальный комп юзера.
Что б я ему данные, а он мне только результат


ваш файл mdb должен быть полностью доступен SQL-серверу и на нём должен быть установлен провайдер доступа Microsoft.ACE.OLEDB.12.0
...
Рейтинг: 0 / 0
28.02.2022, 15:37
    #40136717
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Konst_One
BlackeAngel
пропущено...


Мне надо, что б запросы обрабатывал сервер, а возвращал результаты на локальный комп юзера.
Что б я ему данные, а он мне только результат


ваш файл mdb должен быть полностью доступен SQL-серверу и на нём должен быть установлен провайдер доступа Microsoft.ACE.OLEDB.12.0

С локального ПК?
...
Рейтинг: 0 / 0
28.02.2022, 15:42
    #40136718
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Код: sql
1.
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','\\YourComputer\AccessFiles\Nwind.mdb';'Admin';'', 'SELECT * FROM Employees')



YourComputer - сетевой путь расшаренный для сервера SQL и полностью ему доступный
...
Рейтинг: 0 / 0
28.02.2022, 15:46
    #40136720
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Konst_One,
Если с самого сервера - это не мой случай. Есть сервак, к нему доступ, физически, не возможен, так же и прав работы с ним, но с него можно получать данные. Есть БД на локальном ПК. Сейчас приходится либо линковать таблицу, либо скачивать. Запросы при этом выполняются на ПК, следовательно, всё это занимает много времени, это раз, и второе - ограничение по размеру файла mdb 2 гига
...
Рейтинг: 0 / 0
28.02.2022, 15:51
    #40136723
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
BlackeAngel
Konst_One,
Если с самого сервера - это не мой случай. Есть сервак, к нему доступ, физически, не возможен, так же и прав работы с ним, но с него можно получать данные. Есть БД на локальном ПК. Сейчас приходится либо линковать таблицу, либо скачивать. Запросы при этом выполняются на ПК, следовательно, всё это занимает много времени, это раз, и второе - ограничение по размеру файла mdb 2 гига


SQL-сервер в таком случае ничего не знает про вашу базу MSAccess и доступ к ней получить не сможет
...
Рейтинг: 0 / 0
28.02.2022, 15:52
    #40136724
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Konst_One, что посоветуете в таком случае?
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проблема с запросом / 25 сообщений из 30, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]