powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запрсить и сохранить EXCEL + SQL
5 сообщений из 5, страница 1 из 1
Запрсить и сохранить EXCEL + SQL
    #34814855
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Следующий код запихиваю в макрос

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Worksheets( 2 ).Activate
strSql1 = "SELECT * FROM Customer"
strSql1 = strSql1 & " WHERE CustomerID = 270"
strSql1 = strSql1 & " ORDER BY Customer.Name"

sqlstring1 = strSql1

connstring = _
Array(Array("ODBC;DRIVER=SQL Server;SERVER=SQL1;DATABASE=BasaProd;Trusted_Connection=Ye"), Array("s"))
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
        Destination:=Range("A1"), Sql:=sqlstring1)
    .Refresh
End With


ActiveWorkbook.SaveAs fileName:="C:\Cust.txt", _
    FileFormat:=xlText, CreateBackup:=False

В результате вылетает окно:

"Это действие приведет к отмене команды обновления данных. Продолжить?"

Если кликаю "ДА", то на диске "С" появляется файл "Cust.txt", но без запрошенных данных.
Если кликаю "ОТМЕНА", то на листе появляются данные, но не происходит сохранение в файл txt по указанному адресу.
Как это исправить? Может данную вещь как-то можно по другому реализовать?
...
Рейтинг: 0 / 0
Запрсить и сохранить EXCEL + SQL
    #34916560
Shiny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Н-да, у меня тоже появилось это сообщение, я в макросе тоже создаю подключение...
Это какой-то баг в EXCEL'е, только как его отловить?...
...
Рейтинг: 0 / 0
Запрсить и сохранить EXCEL + SQL
    #34917008
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не баг, это странная фантазия разработчиков Экселя.
По умолчанию, чтение данных из БД они осуществляют в фоновом режиме. То есть команда Refresh не делает собственно рефреш данных а только инициирует его....
Короче, сделай вот так:
Код: plaintext
1.
2.
3.
With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("A1"), Sql:=sqlstring1)
    .BackgroundQuery = False
    .Refresh
End With
...
Рейтинг: 0 / 0
Запрсить и сохранить EXCEL + SQL
    #34918479
Flaer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
QueryTables
Когда-то я тоже его использовал. Гемора имел не мало.
Но знающие люди ткнули меня в ADO. Проблемы исчезли :)
Чего и всем советую
...
Рейтинг: 0 / 0
Запрсить и сохранить EXCEL + SQL
    #34919779
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flaer
Код: plaintext
QueryTables
Когда-то я тоже его использовал. Гемора имел не мало.
Но знающие люди ткнули меня в ADO. Проблемы исчезли :)
Чего и всем советуюЭто неверный совет. Проблем с ADO тоже много бывает, и ADO намного медленнее чем QueryTables.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запрсить и сохранить EXCEL + SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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