powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Если некуда бежать
7 сообщений из 7, страница 1 из 1
Если некуда бежать
    #32751666
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникла проблема: У меня для формы используется запрос из таблицы с условием, ограничивающем набор, типа:

Код: plaintext
select * from some_table where some field=some_value

Есть кнопка удаления записи, которая на самом деле не удаляет запись, а ставит признак в таблицу, что запись удалена.

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

Если я остаюсь в форме на той же записи, возникает ошибка, что запись, отображаемая на форме не соответствует источнику RecordSource

Я подумал, что перед Requery и Refresh, надо бы переместиться на соседнюю запись, вперед или назад, в зависимости от того, куда можно (я могу находиться как в начале, так и в конце набора). Все было бы хорошо, но как быть в случае, если некуда перемещаться? Если EOF и BOF = TRUE ?
...
Рейтинг: 0 / 0
Если некуда бежать
    #32751748
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, что если после нажатия кнопки и выполнения операции на ней поизвести Me.Recalc, то все проблемы снимутся...
...
Рейтинг: 0 / 0
Если некуда бежать
    #32751789
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub кнопка_Click()
On Error GoTo Err_кнопка_Click
If Forms![Работа].i_regime =  3  Then  ' восстановление 
    Me.del =  0 
Else  ' удаление 
    Me.del =  1 
End If
If Me.Recordset.EOF Then
    Me.Recordset.MovePrevious
Else
    Me.Recordset.MoveNext
End If
Me.Recalc
Exit_кнопка_Click:
    Exit Sub
Err_кнопка_Click:
    MsgBox "Осталась последняя запись"
    Resume Exit_кнопка_Click
End Sub
...
Рейтинг: 0 / 0
Если некуда бежать
    #32751795
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все было бы ничего, Если в исходном наборе >1 записи, отрабатывает примерно так: записи пропадают с формы, по мере нажатии на кнопку

остается когда последняя запись появляется бокс с соответствующим сообщением. (ошибка генерируется одним из контролов - это поле со списком, берущее значения из заблицы. - значений нет)

При нажатии на кнопку - форма остается без полей, потому как некуда перемещаться - записей не остается. Причем Ошибки не возникает.

Но Если в исходном наборе 1 запись была, глюки - сперва один бокс "Осталась последняя запись" на свободной от полей форме, потом еще один -

Multiple-step operation generated errors. Check each status value
...
Рейтинг: 0 / 0
Если некуда бежать
    #32751801
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы сделал так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub кнопка_Click()
On Error GoTo Err_кнопка_Click

If Forms![Работа].i_regime =  3  Then  ' восстановление 
    Me.del =  0 
Else  ' удаление 
    Me.del =  1 
End If
Me.Recalc

Exit_кнопка_Click:
    Exit Sub
Err_кнопка_Click:
    MsgBox "Осталась последняя запись"
    Resume Exit_кнопка_Click
End Sub

Если возникает ошибка в некотором контроле, то ошибку надо устранять там или как-то обрабатывать здесь.
...
Рейтинг: 0 / 0
Если некуда бежать
    #32751814
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще всего сделать получилось так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub кнопка_Click()
On Error GoTo Err_кнопка_Click

If Forms![Работа].i_regime =  3  Then  ' восстановление 
    Me.del =  0 
Else  ' удаление 
    Me.del =  1 
End If
Me.Recalc

Exit_кнопка_Click:
    Exit Sub
Err_кнопка_Click:
    Err.Clear  ' те ошибки в контролах - непонятно откуда берутся. не должно их быть 
    Resume Exit_кнопка_Click
End Sub
...
Рейтинг: 0 / 0
Если некуда бежать
    #32751815
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пришлось только убрать с формы кнопки перехода по записям... информация там почему-то не обновляется... Запись пропала, а количество не сменилось
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Если некуда бежать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]