Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сосчитать...? / 15 сообщений из 15, страница 1 из 1
08.05.2004, 20:48
    #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
08.05.2004, 21:13
    #32511588
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сосчитать...?
2 раза Set rec перебор
Код: plaintext
1.
2.
Set rec = Me.Recordset
Set rec = rec.OpenRecordset

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

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

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

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

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

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

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

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

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

или, проще

dcount(...,"Flag=True")
...
Рейтинг: 0 / 0
09.05.2004, 13:48
    #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
09.05.2004, 13:52
    #32511693
Invisible
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сосчитать...?
Бальщёй спасиб, Вам господин GEO! Dcount сработал отлично.Как поговаривают: "А ларчик просто открывался". Жаль, конечно, что очередная моя попытка работы с RecordSet ничего не дала. (Вы можете себе представить - я никогда еще не исользовал RecordSet. Правда я пока только неделю вообще работаю с Access-ом)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сосчитать...? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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