powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос в Excel и SQLServer
12 сообщений из 12, страница 1 из 1
Макрос в Excel и SQLServer
    #34187721
ham3307
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Excel через Данные - Внешние данные можно создать запрос.
Вопрос: Как всю эту механику зафиксировать в макросе?
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34187764
stexs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос, пожалуйста, поконкретней. вариантов очень много. рассказывать долго.
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34188392
ham3307
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надо сделать макрос, который бы делел тоже, что и описанный сервис экселя. а именно: - устанавливал связь с сервером; - далее с базой; - запускал скул-запрос и получал результат.
все это надо когда есть таблица(список данных), к которым надо добавить информацию из базы.
и это надо, чтоб не устанавливать на сетевом компе клиентский скул-сервер, т.е. интерпрайз менеджер, а пользоваться только экселем.
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34188558
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34191402
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ham3307В Excel через Данные - Внешние данные можно создать запрос.
Вопрос: Как всю эту механику зафиксировать в макросе?А зачем?
Можно поступить очень просто - создать один раз запрос, сохранить книгу с подготовленным запросом. А потом только рефрешить запрос.

Но если очень хочется, создавать запрос из макроса, то начни с этого:
Код: plaintext
1.
2.
3.
dim qt as QueryTable

set qt  = activesheet.QueryTables.Add("ODBC;DSN=MyDSN;UID=user;PWD=password", ActiveSheet.Range("A1"), "select f1, f2 from t1");
qt.Refresh()
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34192584
Flaer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QueryTables очень неуобная весч!
Если уж совсем с нуля, то проще разобраться с ADO.
Говорю это, т.к. сам начал с QueryTables и знаю, какой это геморой
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34194405
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FlaerQueryTables очень неуобная весч!
Если уж совсем с нуля, то проще разобраться с ADO.
Говорю это, т.к. сам начал с QueryTables и знаю, какой это геморойНеправ на все сто процентов.
1) QueryTable это родной механизм для Экселя. А ADO - внешний. Поэтому задача решеная через QueryTable всегда будет работать быстрее чем аналогичное решение через ADO.
2) С QT можно работать не лазая в VBA, а для любого чиха с ADO прийдется макрос писать.
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34197849
Flaer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спорить не буду, возможно не разобрался. У меня была такая трабла с QT: При всавке его на лист эта хрень постоянно пыталась обновляться. Всё бы ничего, но при выборке из базы в несколько гигов возникал страшный тормоз. ADO же позволяет полностью контролировать процесс. К тому же я не считаю ADO чем то чуждым экселю, т.к. ADO входит в стандартный MDAC
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34198181
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FlaerСпорить не буду, возможно не разобрался. У меня была такая трабла с QT: При всавке его на лист эта хрень постоянно пыталась обновляться. Всё бы ничего, но при выборке из базы в несколько гигов возникал страшный тормоз.Смотря как вставлять.
Если надо из макроса, то QueryTables.Add() ничего не запрашивает. Сначала задал все параметры потом запустил .Refresh(). Если хочется интерактивно мышой сделать запрос, то.... его мышой можно сделать, а запрос через ADO мышой сделать нельзя :)
Flaer ADO же позволяет полностью контролировать процесс. К тому же я не считаю ADO чем то чуждым экселю, т.к. ADO входит в стандартный MDACВ MDAC то оно входит, но сам MDAC в состав офиса не входит :) Ту же документацию по ADO чтобы почитать, прийдется идти на сайт МСДНа и выкачивать MDAC.
Как ни крути, но ADO для Экселя нужно только в половине процента задач. Если надо "побыстрому" перетащить готовый sub из VB/VBS в VBA. Или хочется запускать хранимые процедуры с возвращаемыми параметрами. Все. Во всех остальных случаях QueryTable лучше.
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34198727
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlно сам MDAC в состав офиса не входит :)

вы либо получили эту инфу от офиса97 либо немного врете
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34200442
stexs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ham3307надо сделать макрос, который бы делел тоже, что и описанный сервис экселя. а именно: - устанавливал связь с сервером; - далее с базой; - запускал скул-запрос и получал результат.
все это надо когда есть таблица(список данных), к которым надо добавить информацию из базы.
и это надо, чтоб не устанавливать на сетевом компе клиентский скул-сервер, т.е. интерпрайз менеджер, а пользоваться только экселем.

ну, давайте, попробуем так вот:

Public Sub goConn()
Dim conn As New ADODB.Connection
On Error GoTo errCon
conn.Provider = "sqloledb"
conn.Properties("Prompt") = 1
conn.Open "Data Source=my_SERVER;Initial Catalog=my_DB"
connstr = conn.ConnectionString
conn.Close

errCon:
Exit Sub

End Sub
'-------------------------------------------------------------
Public connstr As String

Sub my_sub()

Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset

conn.Open connstr

conn.Execute " 'и тут, например, имя процедуры с переменными в базе данных"
'либо
rst.Open " ' и сразу пошёл код SQL. к примеру, select * from my_table'

-------------------------------------------------------------
Надеюсь информация Вам пригодится.
...
Рейтинг: 0 / 0
Макрос в Excel и SQLServer
    #34201141
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senin Viktor White Owlно сам MDAC в состав офиса не входит :)
вы либо получили эту инфу от офиса97 либо немного врете
Ни то и ни другое, просто я знаю что такое MDAC :)

MDAC это не только run-time библиотеки обеспечивающие доступ к данным, это еще и куча документации по этим библиотекам, примеры их использования, и вспомогательные утилиты (например ODBC Test позволяющий в интерактивном режиме отлаживать работу с одбц-шными стейтментами)
С Офисом и не только с Офисом, но еще и с самой операционкой, поставляются только рантайм библиотеки интерфейсов. Никаких примеров, никакой документации, никаких утилит.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос в Excel и SQLServer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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