powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как узнать количество определенных записей для текущего Recordset?
44 сообщений из 44, показаны все 2 страниц
как узнать количество определенных записей для текущего Recordset?
    #40127968
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможно ли вообще как-то узнать количество определенных записей в текущей ленточной форме.
думал так сделать - но почитал что нельзя ((

kol = DCount("*", Me.RecordsetClone, "F1=23")

запроса физически не существует - RecordSource формируется програмно

понимаю что можно програмно сформировать новый запрос с дополнительным условием - но не сильно подходит такой вариант, т.к. это +время

Спасибо!
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40127972
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar,
А чем не устраивает
Код: vbnet
1.
Me.RecordsetClone.RecordCount

тем что в подсказках нет
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40127974
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
возможно ли вообще как-то узнать количество определенных записей в текущей ленточной форме.
думал так сделать - но почитал что нельзя
перебрать в цикле сравнивая с условием. Примерно так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
dim i long
...
    with Me.RecordsetClone
        do until .eof
                if .collect("ИмяПоля"/Номер поля)=условие then i=i+1
            .move next
        loop
    end with
... 
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40127975
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
понимаю что можно програмно сформировать новый запрос с дополнительным условием - но не сильно подходит такой вариант, т.к. это +время
попробуй так, вроде теоретически должно работать, но не проверял, могу ошибаться
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
dim i as long
dim strFilter as string
...
strFilter ="SomeField=" & условие
    With Me.RecordsetClone
        .Filter =strFilter 
            With .OpenRecordset
                if not .EOF then
                    .MoveLast
                    i=.RecordCount
                end if
            end with
    end with
...
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40127977
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar, предпочёл бы первый вариант
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128045
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

тем что мне не все записи нужно посчитать. как всегда не читаем вопрос и даем ответ?
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128049
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
Nezar
возможно ли вообще как-то узнать количество определенных записей в текущей ленточной форме.
думал так сделать - но почитал что нельзя
перебрать в цикле сравнивая с условием. Примерно так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
dim i long
...
    with Me.RecordsetClone
        do until .eof
                if .collect("ИмяПоля"/Номер поля)=условие then i=i+1
            .move next
        loop
    end with
... 



спасибо. хотел избежать цикла, т.к. условий 9ть штук и каждый раз гонять 500000 записей не хотелось.

видимо самый быстрый вариант будет всеже создать новый запрос с группировкой((

надеялся что я просто не знаю как использовать рекордсет в качестве данных для запроса
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128050
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

вариант с фильтром интересный. потестирую по скорости. спасибо.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128069
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот просто интересно-а почему вместо шевеления серыми клеточками сразу такое?
Nezar
sdku,
тем что мне не все записи нужно посчитать. как всегда не читаем вопрос и даем ответ?
Посмотрите:
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128078
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

ну и что этот пример показывает кроме вашего упорного не желание или не способности прочитать, а главное понять вопрос?
если конечно вы действительно хотите - можете дать на НЕГО ответ.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128080
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
спасибо. хотел избежать цикла, т.к. условий 9ть штук и каждый раз гонять 500000 записей не хотелось.

- объявляешь 9 глобальных переменных
- один раз делаешь цикл на 50 000
- перед циклом обнуляешь переменные
- в цикле дергаешь Public Sub, которая в зависимости от условий наращивает переменные
- в конце одного цикла имеем хоть 9, хоть 10, хоть 100 итогов вдоль и поперек...
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128082
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
ну и что этот пример показывает кроме вашего упорного не желание или не способности прочитать, а главное понять вопрос?
если конечно вы действительно хотите - можете дать на НЕГО ответ.

Если Вы такой умный сударь , тогда зачем Вы обратились за помощью ???
Делайте сами , или наймите платного программиста , и предлагайте ему претензии , так как Вы оплачиваете его работу.
А здесь Вам помогают на добровольных началах , так будьте хотя бы благодарны за то , что люди Вам пытаются помочь. Спасибо.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128091
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S предлагайте===предьявляйте :))
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128099
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan,

помощь - это когда есть реальный ответ на поставленный вопрос. и я за такую информацию искренне признателен.
а когда кто-то что-то пишет не по теме, как вы, например, - это бесполезный флуд.
поэтому научитесь не подменять понятия, если вы такой правозащитник.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128101
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

ну да, можно же сразу все приращивать. спасибо.
осталось протестировать и проверить что быстрее будет - бегать по рекодсету или дважды выполнять запрос.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128114
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
возможно ли вообще как-то узнать количество определенных записей в текущей ленточной форме...
Предложенный пример отвечает на этот вопрос.Ну а если он не отвечает желаниям-то задавайте вопрос так чтоб он объяснял чего же Вы хотите-Ваши желания только в Вашей голове и прочесть их на расстоянии-это удел потомственных магов-я так не умею.
Удачи в чесании левой рукой,чрез голову,правого уха.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128118
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

вы единственный человек в теме который опять не понял суть вопроса и который упорно дает непонятные ответы на незаданные вопросы.
плохая привычка, бросайте ее.
....
пока остановился на варианте с перебором и 9тью переменными.
всем спасибо за помощь!
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128130
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
vmag,

ну да, можно же сразу все приращивать. спасибо.
осталось протестировать и проверить что быстрее будет - бегать по рекодсету или дважды выполнять запрос.

Бегать по "рекордсету" быстрее будет.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128145
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,

А что значит у тебя рядом с Member [скрыт] ?
Когда Member [заблокирован] и отвечает на форуме - это понятно, что мемберу пофигу, что его кто-то считает заблокированным, лично мембер так не считает...
А вот [скрыт] не догоняю ни с какой стороны...
кем? зачем? почему тогда виден?
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128146
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
кстати, подаю пожелание модераторам достучаться до разрабов добавить кнопку Удалить после Предпросмотр и Опубликовать...
Пусть будет хотя бы пару минут на удалить сообщение полностью...
Вот я предыдущее сообщение даже не заметил как отправил два раза (и вижу не только у меня так бывает)
- Затереть всё нельзя - пустое не сохраняется...
- Троеточие ушло, сейчас вот его меняю на смысловое...
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128158
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну или чтоб после отправки сообщения рядом с Изменить было бы Удалить столько же по времени как и Изменить
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128160
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar, имеем сохраненный временный запрос, создаем программно запрос, сохраняем в этот временный, смотрим его DCount. Минус один, сжимать базу нужно будет чаще.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128272
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
Ладно я,по-вашему,бестолковый,но есть еще достаточно авторитетный Программист-Любитель -обратите внимание на его ответы 15730446
именно поэтому строка с источником закоментирована-она может быть любой инструкцией SQL. И вообще отвязанные формы это,всегда,много кода и мало толку.....+вопросы надо задавать чтоб было понятно какую задачу Вы решаете(любая задача имеет,как правило, несколько решений) и надо выбирать из всех доступных,а не упираться в какой-то один и если все решается простыми средствами-зачем все усложнять-это если важен результат, а не процесс
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128278
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
ROI,

А что значит у тебя рядом с Member [скрыт] ?
Когда Member [заблокирован] и отвечает на форуме - это понятно, что мемберу пофигу, что его кто-то считает заблокированным, лично мембер так не считает...
А вот [скрыт] не догоняю ни с какой стороны...
кем? зачем? почему тогда виден?

Модератор чё то намудрил.
Когда блокировал
После разблокировки вот така хрень торчит.
Я получается сейчас нахожусь на форуме инкогнито (красота)
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128279
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

Не бузи тебе ТС правильно замечание сделал.
Надо внимательно читать его первое сообщение.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128280
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI
sdku,

Не бузи тебе ТС правильно замечание сделал.
Надо внимательно читать его первое сообщение.

Да и в тема сообщения вопрос лаконичен(количество определенных записей)
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128285
Eugene-LS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nezar
хотел избежать цикла, т.к. условий 9ть штук и каждый раз гонять 500000 записей не хотелось.

Ещё вариант - без цикла и без повторного пересчёта
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128368
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI
ROI
sdku,
Не бузи тебе ТС правильно замечание сделал.Надо внимательно читать его первое сообщение.
Да и в тема сообщения вопрос лаконичен(количество определенных записей)
А что в форме,после применения фильтра,отображаются и подсчитываются "не определённые" записи( не те что отобраны)? 22423736
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128388
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,там к отобранным записям дополнительно условие применяется.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128449
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko
sdku,там к отобранным записям дополнительно условие применяется.

Да ему фиолетово.
Не врубается человек.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128461
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar

kol = DCount("*", Me.RecordsetClone, "F1=23")
.....
понимаю что можно програмно сформировать новый запрос с дополнительным условием
Может,кто врубается,покажет мне где указано некое "дополнительное " условие и объяснит бестолковому чем вся эта байда отличается от условия WHERE(до 32000 символов). A в шедевральной попытке использовать Dcount наблюдается только одно условие
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128541
ValK412
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю, несколько напрасно грузите sdku.
Из исходного посыла ТС

"kol = DCount("*", Me.RecordsetClone, "F1=23")
понимаю что можно програмно сформировать новый запрос с дополнительным условием
"
вполне может следовать мысль сформировать recordset вида select count(*) where "F1=23"
и подсчитать -> .movelast -> .recordcount
Если по таблице есть хороший индекс по полю F1, это может оказаться быстрее цикла по рекордсету в памяти.
Особенно на выборке 500 000 записей)

То, что таких условий аж 9, выяснилось много позже)
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128546
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValK412
... сформировать recordset вида select count(*) where "F1=23"
и подсчитать -> .movelast -> .recordcount
....
Зачем подсчитывать, зачем movelast?
В таком рекордсете всегда recordcount=1.

Там еще FROM отсутствует, но это дела не меняет.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128552
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Занахрена усложнять что либо-рекордсет да еще и переменные:все решается SQL с минимальным использованием VBA,встроенными механизмами ACCESS
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128562
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
...А что значит ...рядом с Member [скрыт] ?...

Слово "скрыт" относится к профилю.
Это значит, что какая-то информация в профиле, по мнению модератора, нарушает какие-то правила форума.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128568
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValK412
Думаю, несколько напрасно грузите sdku.

Согласен, перегибы на местах всегда бывают, только из последующих постов становится понятно, что в ленточной форме дохрена всего и нужно не нарушая структуры её получить 9 количественных характеристик по набору данных...
Удивительно, что Панург с первого поста прованговал перспективы и выдал решение...
Удивительно что и ТС сам не допер, что где есть переменная i, там могут жить параллельно и j и k и ....
Что касается sdku, то нужно просто держать нос по ветру, в последнее время много спрашивающих со своими не стандартными закидонами, заковырками и не простым характером...
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128604
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle
Слово "скрыт" относится к профилю.

наверное да, но скорее всего это баг...
единственное что можно скрыть в профиле - это указанный e-mail, я пробовал у себя поставить галочку скрыть мыло, но у меня не появилась надпись [Скрыт] рядом с Member
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128614
ValK412
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предложенное Панургом решение, думаю, должно полностью удовлетворить ТС.

Из интереса только позанудствую.
В примерной таблице "Dano" (1млн.записей) (Id- long, счетчик; F23 - long, indexed;F33 - string 255),
поле F23 - заполнено случайными числами от 0 до 19.
эта таблица является источником для ленточной формы, время подсчета примерно такое:
1)cnt=DCount("*", "Dano", "F23=" & CStr(keyValue))
3 ms
2)With Me.Form.RecordsetClone
Do While Not .EOF()
If (!F23 = keyValue) Then recCnt = recCnt + 1
.MoveNext
Loop
1450 ms
4)With Set rs = CurrentDb.OpenRecordset("SELECT * FROM Dano", dbOpenSnapshot)
Do While Not .EOF()
If (!F23 = keyValue) Then recCnt = recCnt + 1
.MoveNext
Loop
5600 ms
5)Set rs = CurrentDb.OpenRecordset("SELECT count(*) as cnt FROM Dano WHERE F23=" & CStr(keyValue), dbOpenSnapshot)
recCnt = rs!cnt
14 ms
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128624
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle
Слово "скрыт" относится к профилю.
Это значит, что какая-то информация в профиле, по мнению модератора, нарушает какие-то правила форума.


похоже ROI разблокировали не до конца или произошел сбой разблокировки,
к нему нельзя зайти в профиль и посмотреть кто, что, откуда и когда...
в общем получился Агент-007 ...
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128634
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

Профиль скрывают модераторы.
Надо у них спросить, что за "криминал" там обнаружили и почему закрыли от просмотра.
Обычно после исправления открывают.

Где-то тут когда-то встречала объяснения этого явления.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128642
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle
vmag,

Профиль скрывают модераторы.
Надо у них спросить, что за "криминал" там обнаружили и почему закрыли от просмотра.
Обычно после исправления открывают.

Где-то тут когда-то встречала объяснения этого явления.

Да у них там наверно сбой произошел.
-"Нету у нас в профиле ни каких хобей."
Отныне буду " Агент-007 "
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128646
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
Удивительно, что Панург с первого поста прованговал перспективы и выдал решение...
А меня всего-то две три вещи и удивляют на всем белом свете:
1. Это почему на небе горят частые звездочки
2. Отчего я такой добрый и терпеливый при моей-то тяжелой жизни? Другой бы на моем месте давно всех убил, один остался...
3. Нахрена столько записей в ленточной форме выводить?

ValK412
Из интереса только позанудствую.
не пробовал пользоваться оформление в сообщении? https://www.sql.ru/faq/faq_topic.aspx?fid=202

Писал я ответы когда было неизвестно сколько там записей. Думаю при меньшем количестве записей картина будет несколько иной и накладные расходы открытия наборов перевесят цикл.
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128719
ValK412
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Спасибо за ссылку. Не увидел в интерфейсе этой возможности (оформления кода)
ValK412

Писал я ответы когда было неизвестно сколько там записей. Думаю при меньшем количестве записей картина будет несколько иной и накладные расходы открытия наборов перевесят цикл.
Согласен. К тому же, в моем примере при 500 записях время во всех вариантах меньше 1 ms.
Если учесть еще трудоемкость, не вижу смысла делать еще что-либо, кроме цикла.
Мой пост был скорей из серии - а вот еще бывает такое)
...
Рейтинг: 0 / 0
как узнать количество определенных записей для текущего Recordset?
    #40128762
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValK412
Мой пост был скорей из серии - а вот еще бывает такое)
дык второй мой совет про это.
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как узнать количество определенных записей для текущего Recordset?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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