powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подключение к базе данных из Excel
9 сообщений из 9, страница 1 из 1
Подключение к базе данных из Excel
    #39071730
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня. В Excel с помощью макроса записала такой код (подключение к серверу, к базе данных):

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
        "OLEDB;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=MYSERVER;Use Procedure for Prepare=1;Auto Tr" _
        , _
        "anslate=True;Packet Size=4096;Workstation ID=NAME11;Use Encryption for Data=False;Tag with column collation when possible=False" _
        , ";Initial Catalog=MYBASE"), Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdTable
        .CommandText = Array("""MYTABLE"".""dbo"".""PRED""")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "MYTABLE"
        .Refresh BackgroundQuery:=False
    End With



Все работает, макрос запускается, таблица появляется на листе.

Но, мне надо строку подключения создать динамически, настройки взять из файла STATION.UDL.

Подскажите, как правильно переписать первый кусок кода, а конкретно вот эту строку: Source:=...

Заранее всем спасибо за ответы.
...
Рейтинг: 0 / 0
Подключение к базе данных из Excel
    #39071913
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настеньканастройки взять из файла STATION.UDL.то есть вот этот фрагмент у вас вопросов не вызывает, вы его реализовали?
...
Рейтинг: 0 / 0
Подключение к базе данных из Excel
    #39071956
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот именно ВЗЯТЬ из файла? ну тогда откройте его тупо как текстовый (FOR INPUT), читая построчно, найдите строку подключения, и подставьте её (вернее, переменную, в которую прочитано значение) вместо нынешнего литерала.
Но лучше откройте ADO.Connection с параметром "file:=x:\path\STATION.UDL", и получайте данные через установленное соединение.
...
Рейтинг: 0 / 0
Подключение к базе данных из Excel
    #39072009
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
Dim txt$, txtln$
Open "C:\Path\EastSQL.udl" For Input As #1
Do Until EOF(1): Line Input #1, txtln: txt = txt & txtln: Loop
Close #1
Debug.Print Mid(txt, InStr(txt, "Provider="), 300)
...
Рейтинг: 0 / 0
Подключение к базе данных из Excel
    #39072523
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я знаю, как открыть и прочитать строку из файла STATION.UDL. Делаю так:

Код: vbnet
1.
2.
3.
Dim cn as New ADODB.Connection
cn.ConnectionString = "File Name=" & D:\STATION.UDL & ";"
cn.open



Все, cn.connectionstring и есть моя строка подключения. Далее присваиваю ей переменную:

Код: vbnet
1.
2.
Dim b as variant
b = Array (cn.connectionstring)



Далее пытаюсь вставить эту переменную в первую строку моего кода (красным выделено):

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=b, Destination:=Range("$A$1")).QueryTable

Это не работает, ошибка. Как правильно ее вставить в это код??? Ответьте пожалуйста.
...
Рейтинг: 0 / 0
Подключение к базе данных из Excel
    #39072567
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НастенькаЯ знаю, как открыть и прочитать строку из файла STATION.UDL. Делаю так:

Код: vbnet
1.
2.
3.
Dim cn as New ADODB.Connection
cn.ConnectionString = "File Name=" & D:\STATION.UDL & ";"
cn.open


Все, cn.connectionstring и есть моя строка подключения.
Этот код просто ОБЯЗАН вызвать ошибку, причём ещё на стадии компиляции.
...
Рейтинг: 0 / 0
Подключение к базе данных из Excel
    #39072573
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так правильнее, тут ошибки нет, соединение открывается:

Код: vbnet
1.
2.
3.
4.
Dim p as String
p = App.Path & "\STATION.UDL"
cn.ConnectionString = "File Name=" & p & ";"
cn.Open



Дальше ответьте.
...
Рейтинг: 0 / 0
Подключение к базе данных из Excel
    #39072586
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соединение открыто. Теперь, используя его, откройте нужный набор данных и выполните тривиальный Range("$A$1").CopyFromRecordset.
...
Рейтинг: 0 / 0
Подключение к базе данных из Excel
    #39072620
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Range("$A$1").CopyFromRecordset.

Нет, это не подходит, надо именно, где я выделила красным, написать правильно эту строку.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подключение к базе данных из Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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