|
6 Кб. |
|
| С помощью процедур кн_Предмет_Вверх_Click и кн_Предмет_Вниз_Click на форме реализован механизм сортировки записей вручную.
Всё работает для текущего года и класа, но при их изменении, после сортировки предметов вручную с помощью кнопок "Вверх" и "Вниз", появляется сообщение "Текущая запись отсутствует".
Причина скорее всего в закладке.
После изменения года форма обновляется и закладка перестает соответстовать выбраной записи.
Но она после обновления мне уже и не нужна.
Может её как-то убрать до обновления формы в процедуре изменения года?
Но как ?
Вот процедура поднимающая запись вверх
Private Sub кн_Предмет_Вверх_Click()
Dim strSQL1, strSQL2 As String
Dim ID, Class, Num1, Num2 As Long
Dim bmk As Variant
If Me.Form.Recordset.AbsolutePosition = 0 Then Exit Sub
bmk = Me.Form.Bookmark
Class = [Forms]![LessClass]![Code_Class]
ID = [Forms]![LessClass]![ID]
Num1 = [Forms]![LessClass]![Num_Lesson] - 1
Num2 = Num1 + 1
strSQL2 = "UPDATE LessClass SET [Num_Lesson]=" & Num2 & " Where([Num_Lesson]=" & Num1 & " and [Code_Class]=" & Class & ")"
CurrentDb.Execute strSQL2
strSQL1 = "UPDATE LessClass SET [Num_Lesson]=" & Num1 & " Where [ID]=" & ID & ""
CurrentDb.Execute strSQL1
Me.Form.Requery
Me.Form.Bookmark = bmk
Me.Form.Recordset.MovePrevious
End Sub
|
Тут сама база
http://zalil.ru/32757203 | |
|
| |
|
|
|
| вместо
Me.Form.Bookmark = bmk
Me.Form.Recordset.MovePrevious
|
if not Me.Form.Recordset.BOF then Me.Form.Recordset.MovePrevious
|
| |
|
| |
|
|
|
| Заменил две строки на Ваш код - проблема не решилась. | |
|
| |
|
|
|
| Ура!!!!!
Проблему решил добавлением
Me.Form.Bookmark = FindFirst
|
в процедуру изменения года | |
|
| |
|
|
|
| Добавил такую же строку в процедуру изменения класса и появляется сообщение
"Недопустимая закладка" | |
|
| |
|
|
|
| уберите из кода все что касается
Bookmark
они вам не нужны | |
|
| |
|
|
|
|
уберите из кода все что касается
Bookmark
они вам не нужны
|
А как же без них ? | |
|
| |
|
|
|
| наблюдается вымирание программеров, не в обиду сказано. грустновастенька, 1с-ники блин | |
|
| |
|
|
|
| Я не 1с-ник...
Всем спасибо за помощь!
Добавил в процедуры обработчик ошибок и после обновления в каждой из них
поставил
Me.Recordset.FindFirst "[Num_Lesson] = 1"
|
Ошибки больше не появляются. | |
|
| |
|
|
|
| я не от тебе - вообще о жизни | |
|
| |