Здравствуйте.
В БД на аксесс 2013+SQL Server есть таблица ПремияПоВсемОбъектам(Код - ключевое, счетчик;ТабНомер-числовой; Объект - короткий текст ПриведенныйПлан - одинарное с плавающей точкой).
Таблица заполняется запросом на добавление данных. Сделал форму с субформой, в которую содержимое таблицы без проблем выводится.
Далее понадобилось корректировать данные - умножить значения ПриведенныйПлан на корректирующий коэффициент для некоторых объектов или для определенных сотрудников по определенным объектам или просто для определенных сотрудников.
Для записи корректировок создал таблицы:
1)КорректировкаПоСотрудникамПоОбъектам(Сотрудник - числовой; Коэффициент - числовой; Объект- короткий текст)
2)КорректировкаПоСотрудникамПоВсемОбъектам(Сотрудник - числовой; Коэффициент - числовой)
Добавил на форму с выводом данных опремии субформы, в которые, в которые ввожу корректировки. Для корректировки (1) сделал такой обработчик:
Private Sub Кнопка26_Click()
DoCmd.SetWarnings False
With Me.SubKorrPoSotr.Form.RecordsetClone
.MoveFirst
Do Until .EOF
DoCmd.RunSQL ("Update ПремияПоВсемОбъектам" _
& " SET ПриведенныйПлан=ПриведенныйПлан*" & Replace(![Коэффициент], ",", ".") _
& " Where (ТабНомер=" & ![Сотрудник] & ")and(Объект='" & ![Объект] & "')")
.MoveNext
Loop
End With
DoCmd.SetWarnings True
Me.SubPrivedPlanPoDoc.Requery
SubPrivedPlanPoDoc - субформа,в которую выводится содержимое таблицы ПремияПоВсемОбъектам
для ввода корректировки (2)
сделал такой обработчик:
DoCmd.SetWarnings False
With Me.SubKorrPoSotrAllObjects.Form.RecordsetClone
.MoveFirst
Do Until .EOF
DoCmd.RunSQL ("Update ПремияПоВсемОбъектам" _
& " SET ПриведенныйПлан=ПриведенныйПлан*" & Replace(![Коэффициент], ",", ".") _
& " Where ТабНомер=" & ![Сотрудник])
.MoveNext
Loop
End With
DoCmd.SetWarnings True
Me.SubPrivedPlanPoDoc.Requery
вот с выполнением этого кода и возникает проблема - БД зависает на неопределенный срок...приходится принудительно завершать работу аксесса, в то время как первый обработчик отлично и быстро отрабатывает...
При этом после завершения работы приложения и после повторного открытия данные все пересчитаны... в чем проблема со вторым обработчиком? помогите пожалуйста....
http://www.sql.ru/forum/1162548/zavisanie-prilozheniya-pri-obnovlenii-tablicy-ciklom-po-polyam-subformy