Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: 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 записей, проверял, но редактирование не происходит при переходе по строкам. Помогите побороть беду


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.