|
|
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Есть ленточная форма, в записях которой присутствует флажок по полю "Вывод". Хочется при нажатии на кнопку закрытия формы подсчитать кол-во включенных флагов и сохранить их в переменной. Я пытался сделать фильтр и потом вывести RecordCount, но чой-то у меня с синтаксисом RecordSet-a не совсем выходит. Максимум, что мне удалось написать, так, чтобы оно ни объектов не запрашивало, ни ругалось, что не найти там ему таблицы... это вот: Private Sub Кнопка14_Click() Set rec = Me.Recordset rec.Filter = "[Вывод]=False" Set rec = rec.OpenRecordset wer = rec.RecordCount End Sub Но ОНО что-то не то считает :) Хелп плииз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 20:48 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
2 раза Set rec перебор Код: plaintext 1. 2. я бы открыл recordset по базовой таблице /запросу с соответствующим Where "[Вывод]=False ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 21:13 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Аммм... Я с этого и начал :) Хотел открыть recordset таблицы на основе которой сделан запрос. Но как-то синтаксис не удался. Как правильно будет выглядеть эта функция, если открывать таблицу "Детали". А форма называется "Вывод деталей". Использовал OpenRecordSet, но тщетно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 21:24 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Поможите, люди умные! Подкиньте пару строчек плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 22:22 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Можем ли мы глянуть на то, что не работало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 22:29 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Да, писал я так: dim rec as recordset rec=CurrentDb.OpenRecordSet ("Детали") После чего пытался применить тот же фильтр, но он толком рекордсет не хотел открывать, не говоря уже о том, чтобы открыть с применением Where. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 23:05 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Что значит толком не хотел открывать? Выдавалась какая-то ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 23:07 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Сорри. dim rec as recordset Set rec=CurrentDb.OpenRecordSet ("Детали") И ошибка была Type mismatch. Я убрал явное определение (конечно и Option Explicit пришлось убрать) и он прголотил эту строчку. А как теперь правильно задать условия отбора Where или может все таки фильтр? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 23:19 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
dim rec as dao.recordset - и все запашет. Если других ошибок не будет, конечно. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 23:25 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Сенкс. А как именно синтаксичеккм задать в VBA openrecordset c условием Where? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 23:28 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Прямо так. Set rec=CurrentDb.OpenRecordSet ("select * from Детали where трампампам") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 23:40 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Уже даже запрос отдельный сделал - все работает, все фильтрует. Аж взял его SQL форму полностью, ничего не меняя. А RecordCount по прежнему равен единице, вне зависимости от того сколько я там флагов уберу или поставлю... Гмм... Та же самая единица у меня вылезала, огда я пользовался фильтром в форме, описанным в первом сообщении. Set rec = CurrentDb.OpenRecordset("SELECT Детали.* FROM Детали WHERE (((Детали.Вывод)=True));") и ничего... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2004, 13:10 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
on error resume next rs.movelast rs.recordcount или, проще dcount(...,"Flag=True") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2004, 13:18 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
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, это более наглядный вариант для автора вопроса.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2004, 13:48 |
|
||
|
Как сосчитать...?
|
|||
|---|---|---|---|
|
#18+
Бальщёй спасиб, Вам господин GEO! Dcount сработал отлично.Как поговаривают: "А ларчик просто открывался". Жаль, конечно, что очередная моя попытка работы с RecordSet ничего не дала. (Вы можете себе представить - я никогда еще не исользовал RecordSet. Правда я пока только неделю вообще работаю с Access-ом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2004, 13:52 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32511582&tid=1674758]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
197ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 524ms |

| 0 / 0 |
