powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проблема с запросом
25 сообщений из 30, страница 1 из 2
Проблема с запросом
    #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
Проблема с запросом
    #40104205
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel
Пишет всё время, что непонятная конструкция.
Не надо рассказов по мотивам. Воспроизведите сообщение об ошибке - полностью, без купюр и изменений.
...
Рейтинг: 0 / 0
Проблема с запросом
    #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
Проблема с запросом
    #40104284
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну он как бы говорит, что ему строка подключения не нравится.

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

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

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

Ну я только сюда глянул, а дальше невнимательно... Сорян
...
Рейтинг: 0 / 0
Проблема с запросом
    #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
Проблема с запросом
    #40104312
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Это здорово, НО надо сначала подключиться.
Например, если этот код выполняется из, скажем Excel или Outlook то данным Макаром не выйдет, ТК нет даже открытой базы, кроме подключения к серверу.
...
Рейтинг: 0 / 0
Проблема с запросом
    #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
Проблема с запросом
    #40136656
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, Аналогичный код и у меня работает прекрасно. А вот подключитесь из Excel к sql server, и попробуйте из этого подключения получить данные таблицы файла .mdb Access. Вот в чём проблема.
...
Рейтинг: 0 / 0
Проблема с запросом
    #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
Проблема с запросом
    #40136675
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что это за .
    ?

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

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

Без разницы, пробовал и таблицу и без неё и odbc и без него.
...
Рейтинг: 0 / 0
Проблема с запросом
    #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
Проблема с запросом
    #40136712
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
Так то и я умею.
А вы попробуйте подключиться к серверу, и из этого подключения получить данные из mdb.
...
Рейтинг: 0 / 0
Проблема с запросом
    #40136714
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
[src VB]
если же вам нужно получить доступ к mdb файлу с сервера SQL, то это надо делать средствами сервера и на сервере должны быть установлены соответствующие драйвера доступа к MSAccess и на сами файлы mdb должны предоставлены все доступы SQL-серверу (обычно эти файлы размещают на самом сервере или на каталоге куда он имеет полный доступ, т.е. не на локальном компьютере пользователя )


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


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


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


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


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

С локального ПК?
...
Рейтинг: 0 / 0
Проблема с запросом
    #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
Проблема с запросом
    #40136720
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
Если с самого сервера - это не мой случай. Есть сервак, к нему доступ, физически, не возможен, так же и прав работы с ним, но с него можно получать данные. Есть БД на локальном ПК. Сейчас приходится либо линковать таблицу, либо скачивать. Запросы при этом выполняются на ПК, следовательно, всё это занимает много времени, это раз, и второе - ограничение по размеру файла mdb 2 гига
...
Рейтинг: 0 / 0
Проблема с запросом
    #40136723
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel
Konst_One,
Если с самого сервера - это не мой случай. Есть сервак, к нему доступ, физически, не возможен, так же и прав работы с ним, но с него можно получать данные. Есть БД на локальном ПК. Сейчас приходится либо линковать таблицу, либо скачивать. Запросы при этом выполняются на ПК, следовательно, всё это занимает много времени, это раз, и второе - ограничение по размеру файла mdb 2 гига


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


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