powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сосчитать...?
15 сообщений из 15, страница 1 из 1
Как сосчитать...?
    #32511582
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ленточная форма, в записях которой присутствует флажок по полю "Вывод". Хочется при нажатии на кнопку закрытия формы подсчитать кол-во включенных флагов и сохранить их в переменной. Я пытался сделать фильтр и потом вывести RecordCount, но чой-то у меня с синтаксисом RecordSet-a не совсем выходит. Максимум, что мне удалось написать, так, чтобы оно ни объектов не запрашивало, ни ругалось, что не найти там ему таблицы... это вот:
Private Sub Кнопка14_Click()
Set rec = Me.Recordset
rec.Filter = "[Вывод]=False"
Set rec = rec.OpenRecordset
wer = rec.RecordCount
End Sub

Но ОНО что-то не то считает :) Хелп плииз.
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511588
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 раза Set rec перебор
Код: plaintext
1.
2.
Set rec = Me.Recordset
Set rec = rec.OpenRecordset

я бы открыл recordset по базовой таблице /запросу с соответствующим Where "[Вывод]=False
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511590
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аммм... Я с этого и начал :) Хотел открыть recordset таблицы на основе которой сделан запрос. Но как-то синтаксис не удался. Как правильно будет выглядеть эта функция, если открывать таблицу "Детали". А форма называется "Вывод деталей". Использовал OpenRecordSet, но тщетно...
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511602
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поможите, люди умные! Подкиньте пару строчек плз.
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511603
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можем ли мы глянуть на то, что не работало?
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511613
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, писал я так:

dim rec as recordset
rec=CurrentDb.OpenRecordSet ("Детали")

После чего пытался применить тот же фильтр, но он толком рекордсет не хотел открывать, не говоря уже о том, чтобы открыть с применением Where.
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511614
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Что значит толком не хотел открывать? Выдавалась какая-то ошибка?
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511618
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри.

dim rec as recordset
Set rec=CurrentDb.OpenRecordSet ("Детали")

И ошибка была Type mismatch. Я убрал явное определение (конечно и Option Explicit пришлось убрать) и он прголотил эту строчку.

А как теперь правильно задать условия отбора Where или может все таки фильтр?
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511619
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dim rec as dao.recordset
- и все запашет. Если других ошибок не будет, конечно. :^)
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511620
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сенкс. А как именно синтаксичеккм задать в VBA openrecordset c условием Where?
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511623
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Прямо так.

Set rec=CurrentDb.OpenRecordSet ("select * from Детали where трампампам")
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511682
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже даже запрос отдельный сделал - все работает, все фильтрует. Аж взял его SQL форму полностью, ничего не меняя. А RecordCount по прежнему равен единице, вне зависимости от того сколько я там флагов уберу или поставлю... Гмм... Та же самая единица у меня вылезала, огда я пользовался фильтром в форме, описанным в первом сообщении.

Set rec = CurrentDb.OpenRecordset("SELECT Детали.* FROM Детали WHERE (((Детали.Вывод)=True));")

и ничего... :(
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511684
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
on error resume next
rs.movelast
rs.recordcount

или, проще

dcount(...,"Flag=True")
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511691
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Set rec = CurrentDb.OpenRecordset("SELECT * FROM Детали WHERE Вывод;")
if rec.bof then
...=0
else
rec.movelast
...=rec.recordcount
endif
rec.close

или:

Set rec = CurrentDb.OpenRecordset("SELECT count(*) FROM Детали WHERE Вывод;")
if rec.bof then
...=0
else
...=rec.fields(0)
endif
rec.close

(Это не исправления к ответу Geo, это более наглядный вариант для автора вопроса.)
...
Рейтинг: 0 / 0
Как сосчитать...?
    #32511693
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бальщёй спасиб, Вам господин GEO! Dcount сработал отлично.Как поговаривают: "А ларчик просто открывался". Жаль, конечно, что очередная моя попытка работы с RecordSet ничего не дала. (Вы можете себе представить - я никогда еще не исользовал RecordSet. Правда я пока только неделю вообще работаю с Access-ом)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сосчитать...?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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