Тема: Подсчёт количества объектов в выборке

Собственно сабж.

Как это сделать?    :rolleyes:

Re: Подсчёт количества объектов в выборке

Query.Objects.Count...

Re: Подсчёт количества объектов в выборке

dim num_knig, myquery, objs   


Set myquery = ThisApplication.Queries("QUERY_kniga_all")
Set objs = myquery.Objects
Set num_knig = objs.Count
msgbox num_knig

Например так?..

Хм, ругается: просит объект myquery

Где чего не так?

Re: Подсчёт количества объектов в выборке

А где этот код размещён ?
Разместите в Query_AfterExecute

(изменено: DeTrah, 11 июня 2009г. 05:19:44)

Re: Подсчёт количества объектов в выборке

Разместил в Query_AfterExecute...

Выдает ошибку исполнения кода:

Требуется объект 'objs.Count'

(изменено: vorona, 11 июня 2009г. 05:51:47)

Re: Подсчёт количества объектов в выборке

DeTrah пишет:
dim num_knig, myquery, objs   
Set myquery = ThisApplication.Queries("QUERY_kniga_all")
Set objs = myquery.Objects
Set num_knig = objs.Count
msgbox num_knig

Например так?..

Хм, ругается: просит объект myquery

Где чего не так?

Set num_knig = objs.Count - странная запись.  Нужно SET в этой строчке убрать и будет счастье   :blink:

Re: Подсчёт количества объектов в выборке

Set убрал - заработало.

Но скорость работы !??

900 объектов система считала секунд 30.

После чего выдала MsgBox, который закрыть удалось после нескольких десятков кликов по Ок.

Re: Подсчёт количества объектов в выборке

Все зависит от выборки.  ;)
Скрипт то должен отрабатывать практически мгновенно.

Re: Подсчёт количества объектов в выборке

Странно что вообще удалось закрыть... Обращение к Query в её же событии вызывает зацикливание. Воспользуйтесь Sheet.Objects.Count

Re: Подсчёт количества объектов в выборке

Каждое обращение к этой конструкции Query.Objects  запускает выборку на выполнение.
Со всеми вытекающими из этого последствиями, и с отработкой всех событий, как положенно.
Рекурсия - матушка получается... И страшные вещи в результате ))

Re: Подсчёт количества объектов в выборке

Edhunter пишет:

А где этот код размещён ?
Разместите в Query_AfterExecute

неправда.
Можно вызывать откуда угодно.
Например создайте произвольную команду и напишите след. код:

msgbox thisapplication.queries("xxxxxx").objects.count