ник: kot_k_k
1. Пример в студию.
2. Эту хрень
ElseIf (c = 4 Or 5 Or 10) And (d = 1 And w = 2) Then
e = Me.Всего_взр
ElseIf (c = 4 Or 5 Or 10) And (d = 1 And w = 1) Then
|
я не досмотрел до конца - наверно еще один Select Case лепить хуже.
3.
Вот тут и возникает главный вопрос ПОЧЕМУ значение "е" или "rs.Fields(4)" определяется ПРАВИЛЬНО(!) для первой
записи в таблице на которую установлен курсор и этим значением заполняется ВЕСЬ рекордсет.
|
исчё раз:
движение по рекордсету происходит
вот тут - rs.MoveNext (твой пример кода)
а движения по ФОРМЕ НЕТ, т.е. одно и тоже значения тулится всей табле - результат который имеем.
нужно двигаться по Форме (Me.RecordsetClone) и перемещаться в по табле исходя из формы.
т.е.
Dim rs_ФОРМА As DAO.Recordset
Set rs = db.OpenRecordset(strSql)
set rs_ФОРМА=me.recordsetclone
a = Forms![Заказпрог]![Список76] - судя по всему из другой формы и оно постоянно
Do Until rs_ФОРМА.EOF ' начало цикла
If rs_ФОРМА!id_kat_zak = 2 Then
k = rs_ФОРМА!Всего_гр
e = a * k
ElseIf rs_ФОРМА!id_kat_zak = 3 Then
e = rs_ФОРМА!Всего_гр
ElseIf (rs_ФОРМА!id_kat_zak = 4 Or 5 Or 10) And (rs_ФОРМА!Тип_док = 1 And rs_ФОРМА!Id_Vozr = 2) Then
e = rs_ФОРМА!Всего_взр
ElseIf (rs_ФОРМА!id_kat_zak = 4 Or 5 Or 10) And (rs_ФОРМА!Тип_док = 1 And rs_ФОРМА!Id_Vozr = 1) Then
e = rs_ФОРМА!Детей
Else
e = 0
End If
rs.Edit ' редактирование
rs.Fields(4) = e ' присваение значению переменной нужной мне расчётной величины
rs.Update
rs_ФОРМА.MoveNext
rs.moveFist ' вот не помню это нужно делать или нет для тго чтобы FindFist сработал правильно
rs.FindFist "id_Prog_zak=" & rs_ФОРМА.id_Prog_zak
Loop
|