|
|
|
| Уважаемые разработчики ! Всех с Новым Годом !
Буду очень благодарен за помощь. Есть форма, содержащая подчиненную. В подчиненной форме есть поле, тип данных "логический", соответственно, часть записей отмечена "флажком". Как сосчитать именно эти записи и вывести результат в поле основной формы ? мучаюсь..
Посчитать все записи в подчиненной форме легко:
txtCount = Forms("frm_TList").Controls("frm_SubForm").Form.Recordset.RecordCount
А как сосчитать именно отмеченные "флажком" ? Спасибо. | |
|
| |
|
|
|
| можно так
условные обозначения
ОсновнаяФорма - имя основной формы
IDОсновнойФормы - поле на основной форме
ТаблицаПодФормы - таблица или запрос являющиеся источником записей для подчиненной формы
IDПодФормы - ключевое поле счетчик в таблице или запросе
IDОснФормы - поле в таблице или запросе для связи
флажок - флажок в ТаблицаПодФормы
dim txtCount as long
txtCount =dcount("[IDПодФормы]","[ТаблицаПодФормы]","[IDОснФормы]=" & forms![ОсновнаяФорма]![IDОсновнойФормы] & " and [флажок]=True")
можно вот так
dim rs as dao.recordset
dim asd as long
dim txtCount as long
set rs=Forms("frm_TList").Controls("frm_SubForm").Form.Recordsetclone
rs.movelast
asd=rs.recordcount
rs.movefirst
txtCount =0
for i=1 to asd
if rs.fields("флажок")=true then txtCount =txtCount +1
rs.movenext
next i
set rs=nothing | |
|
| |
|
|
|
| Спасибо Вам большое ! Не прошло и трех дней, и я наладился ) Прошел с Recorset - oм, вот окончательный вариант:
Dim rs As dao.Recordset
Dim CountContract As Long
If txtCount > 0 Then
Set rs = Forms("frm_TList").Controls("frm_SubForm").Form.RecordsetClone
CountContract = 0
rs.MoveLast
rs.MoveFirst
Do Until rs.EOF
If rs(5) = True Then CountContract = CountContract + 1 ' столбец, в котором "флажки" , под№5
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Me.txtCountContract = CountContract
End If
Set rs = Nothing
End Sub
С Новым Годом, творческих успехов ! | |
|
| |
|
|
|
|
А зачем закрывать то?
А не проще посчитать "скопом" применив Count или функцию DCount? | |
|
| |
|
|
|
| Мне, оказалось, не проще, не удалось наладить этот вариант. Кажется, только на первый взгляд он проще | |
|
| |