ник: User
Захотелось автоматизировать заполнение поля "количество" в заказе. Создал для этого процедуру.
Dim rs As DAO.Recordset 'использем для доступа к таблице заказов
Dim db As Database
Dim a As Long 'суток
Dim k As Long 'количество
Dim c As Long 'категория
Dim d As Long 'документ
Dim e As Long 'количество
Dim w As Long 'Возраст
Dim strSql As String
Set db = CurrentDb()
a = Forms![Заказпрог]![Список76] ' число суток
c = Forms!Заказпрог!SubZak!id_kat_zak
d = Forms!Заказпрог!SubZak!Тип_док 'документ 1-билет 2-наряд
w = Forms!Заказпрог!SubZak!Id_Vozr 'Возраст 1- шк 2- взр 5 - всё
strSql = _
"SELECT tabZak.id_Prog_zak, tabZak.id_kat_zak, tabZak.Id_Vozr, tabZak.Тип_док, tabZak.Kol " & _
"FROM tabZak " & _
"WHERE tabZak.id_Prog_zak=" & Me.id_Закпрог
If c = 2 Then
k = Me.Всего_гр
e = a * k
ElseIf c = 3 Then
e = Me.Всего_гр
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
e = Me.Детей
Else
e = 0
End If
Set rs = db.OpenRecordset(strSql)
rs.MoveLast
rs.MoveFirst
Do Until rs.EOF ' начало цикла
rs.Edit ' редактирование
rs.Fields(4) = e ' присваение значению переменной нужной мне расчётной величины
rs.Update
rs.MoveNext
Loop 'конец цикла
rs.Close
Set rs = Nothing
Me.SubZak.Requery
|
Один недостаток. Не работает. Значение поля "кол" принимается правильно, но по значению, которое должно быть в строке, где стоит курсор и заполняет всю таблицу. Рекордсет имеет 8 записей, проверял, но редактирование не происходит при переходе по строкам. Помогите побороть беду