-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


2001 Предыдущая операция прервана пользователем

Четверг, 01 Декабря 2016 г. 00:10 + в цитатник
Access 2003

Есть главная и табличная подчинённая формы. При старте в подчинённую форму по умолчанию загружаются данные по запросу qryLasWorkParam. Для ввода новой записи по нажатию кнопки на панели отрабатывается функция MnuNewEntry() из модуля главной формы.

Private Function MnuNewEntry()
'Реакция на пункт меню "Новая запись"
 Forms![frmWorkRegime].[sfrmWorkParam].Form.RecordSource = "qryWorkParam"
 Forms![frmWorkRegime].Controls![sfrmWorkParam].Form.Controls![cboOdjectLine].ColumnHidden = False
 Forms![frmWorkRegime].Controls![sfrmWorkParam].Form.Controls![txtObject_Name].ColumnHidden = True
 Forms![frmWorkRegime].Controls![sfrmWorkParam].Form.Controls![txtLine_Number].ColumnHidden = True
 Forms![frmWorkRegime].[sfrmWorkParam].Form.AllowAdditions = True
 Forms![frmWorkRegime].[sfrmWorkParam].Form.KeyPreview = True
 Forms![frmWorkRegime].[sfrmWorkParam].Form.DataEntry = True
 Forms![frmWorkRegime].Controls![sfrmWorkParam].SetFocus 'Передача фокуса к подчинённой форме.
End Function


В подчинённой форме появляется одна пустая строка для ввода новой записи. После заполнения последнего поля и нажатия Enter отрабатывается процедура из модуля подчинённой формы Form_AfterUpdate().

Private Sub Form_AfterUpdate()
On Error GoTo lblError
 Forms![frmWorkRegime].[sfrmWorkParam].Form.Filter = ""
 Forms![frmWorkRegime].[sfrmWorkParam].Form.FilterOn = False
 Forms![frmWorkRegime].[sfrmWorkParam].Form.RecordSource = "qryLasWorkParam"
 Me.Form.Controls![cboOdjectLine].ColumnHidden = True
 Me.Form.Controls![txtObject_Name].ColumnHidden = False
 Me.Form.Controls![txtLine_Number].ColumnHidden = False
 If Me.Form.AllowAdditions = True Then Me.Form.AllowAdditions = False
 If Me.Form.AllowEdits = True Then Me.Form.AllowEdits = False
 If Me.Form.KeyPreview = True Then Me.Form.KeyPreview = False
 If Me.Form.DataEntry = True Then Me.Form.DataEntry = False
 Forms![frmWorkRegime].Controls![sfrmWorkParam].SetFocus 'Передача фокуса к подчинённой форме.
 Exit Sub
lblError:
   MsgBox Err.Source & " " & Err.Number & " " & Err.Description ' Место для обработчика ошибок.
End Sub


и подчинённая форма опять переходит в режим демонстрации последних введённых параметров. Показывает в таблице с прочими и ту запись, что только что была введена. Всё окей.

Дабы пользователь мог отказаться от ввода новых данных ему нужно нажать на клавиатуре клавишу Esc, после чего отрабатывается процедура из модуля подчинённой формы Form_KeyPress(KeyAscii As Integer), которая принудительно вызывает процедуру Form_AfterUpdate() из модуля подчинённой формы.

Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = 27 And Me.Form.RecordSource = "qryWorkParam" Then Call Form_AfterUpdate
End Sub


И вот тут на строке
Forms![frmWorkRegime].[sfrmWorkParam].Form.RecordSource = "qryLasWorkParam"

в процедуре Form_AfterUpdate() вылезает ошибка 2001 Предыдущая операция прервана пользователем. Смены Рекордсета не происходит и подчинённая форма остаётся в режиме ввода новой записи. Закрываю главную форму и загружаю её по новому.

Подскажите плз что за предыдущая операция не завершена и как её завершить.

http://www.sql.ru/forum/1240880/2001-predydushhaya-operaciya-prervana-polzovatelem


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку