Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как дождаться пока результата запроса вставиться в лист Excel / 6 сообщений из 6, страница 1 из 1
26.10.2005, 15:42:41
    #33345393
VladimirES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дождаться пока результата запроса вставиться в лист Excel
программно создаю запрос и его результыта вставляю на лист.
после чего хочу добавиьт в конец листа формулу суммирования.
для этого пробегаю по ячейкам до конца и вставляя формулу.
Но иногда получается так что снала вставляется формула с итого а потом уже появляються результыт запроса.
Я так понимаю надо после
Код: plaintext
1.
    .Refresh BackgroundQuery:=False
поставить забержку и только после этого делать

Код: plaintext
1.
2.
3.
4.
Row =  2 
While SourceSheet.Cells(Row,  1 ) <> ""
    Row = Row +  1 
Wend

но как заставить ждать когда данные вставяться, я пробовал использовать цикл
Код: plaintext
1.
2.
While .Refreshing
    Wend
но похоже Refreshing ждет когда запрос выполниться а не когда все строки вставяться в лист
...
Рейтинг: 0 / 0
26.10.2005, 18:36:03
    #33346013
5631
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дождаться пока результата запроса вставиться в лист Excel
ActiveSheet.QueryTables.count ?
...
Рейтинг: 0 / 0
26.10.2005, 18:52:58
    #33346069
VladimirES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дождаться пока результата запроса вставиться в лист Excel
5631ActiveSheet.QueryTables.count ?
а при чем сдесь count?
...
Рейтинг: 0 / 0
26.10.2005, 19:44:38
    #33346183
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дождаться пока результата запроса вставиться в лист Excel
VladimirESЯ так понимаю надо после
Код: plaintext
1.
    .Refresh BackgroundQuery:=False
поставить забержку и только после этого делать

Нет, надо сделать ОДИН РАЗ
QueryTables(1).BackgroundQuery:=False
Причем это можно сделать даже мышкой в диалоге настроек запроса.
А потом сколько угодно раз
QueryTables(1).Refresh
и оно будет ждать завершения запроса.
...
Рейтинг: 0 / 0
27.10.2005, 11:17:06
    #33346930
VladimirES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дождаться пока результата запроса вставиться в лист Excel
White OwlНет, надо сделать ОДИН РАЗ
QueryTables(1).BackgroundQuery:=False
Причем это можно сделать даже мышкой в диалоге настроек запроса.
А потом сколько угодно раз
QueryTables(1).Refresh
и оно будет ждать завершения запроса.

Спасибо помогло

а можете пояснить в чем разница между
Код: plaintext
1.
 .Refresh BackgroundQuery:=False
и
Код: plaintext
1.
2.
 .BackgroundQuery:=False
 .Refresh

почему в первом случаее он не ждет завершения запросы а во втором ждет, хотя должно работать одинаково, вроде?
...
Рейтинг: 0 / 0
27.10.2005, 18:47:18
    #33348586
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дождаться пока результата запроса вставиться в лист Excel
Нет, разница в том, что в первом случае ты можешь управлять каждым отдельным рефрешем одной и той же таблицы. А во втором случае, тип рефреша задается однажды для всех последующих рефрешей.

Почему в первом случае не ждало? А фиг его знает :) Возможно глюк самого Экселя. По идее, параметр метода Refresh должен иметь приоритет перед глобальным флагом для данного QueryTable. По идее... В Экселе много глюков :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как дождаться пока результата запроса вставиться в лист Excel / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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