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

Код: 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
05.11.2007, 13:07:25
    #34916560
Shiny
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрсить и сохранить EXCEL + SQL
Н-да, у меня тоже появилось это сообщение, я в макросе тоже создаю подключение...
Это какой-то баг в EXCEL'е, только как его отловить?...
...
Рейтинг: 0 / 0
05.11.2007, 17:42:52
    #34917008
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрсить и сохранить EXCEL + SQL
Это не баг, это странная фантазия разработчиков Экселя.
По умолчанию, чтение данных из БД они осуществляют в фоновом режиме. То есть команда Refresh не делает собственно рефреш данных а только инициирует его....
Короче, сделай вот так:
Код: plaintext
1.
2.
3.
With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("A1"), Sql:=sqlstring1)
    .BackgroundQuery = False
    .Refresh
End With
...
Рейтинг: 0 / 0
06.11.2007, 12:44:06
    #34918479
Flaer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрсить и сохранить EXCEL + SQL
Код: plaintext
QueryTables
Когда-то я тоже его использовал. Гемора имел не мало.
Но знающие люди ткнули меня в ADO. Проблемы исчезли :)
Чего и всем советую
...
Рейтинг: 0 / 0
06.11.2007, 17:30:57
    #34919779
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрсить и сохранить EXCEL + SQL
Flaer
Код: plaintext
QueryTables
Когда-то я тоже его использовал. Гемора имел не мало.
Но знающие люди ткнули меня в ADO. Проблемы исчезли :)
Чего и всем советуюЭто неверный совет. Проблем с ADO тоже много бывает, и ADO намного медленнее чем QueryTables.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запрсить и сохранить EXCEL + SQL / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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