Автоматизация записи конфликтов сообщений - PullRequest
1 голос
/ 18 апреля 2010

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

Ответы [ 2 ]

2 голосов
/ 26 мая 2011

Единственный известный мне способ избежать этого сообщения - это запросить ваш экран после запуска процесса или изменения данных в бэкэнд-базе данных (или сервере sql)

0 голосов
/ 27 мая 2011

Вы должны иметь возможность обрабатывать эти ошибки в комбинации из двух мест. Первое и самое важное - это событие Form_Error. Ваш код будет выглядеть примерно так:

Private Sub Form_Error(DataErr As Integer, Response As Integer)    
    If DataErr = 7787 Then
        MsgBox "Oops, this record was edited by someone else or " & _
               "in another screen while you were making edits." & _
                "Your edits cannot be saved."
        Response = acDataErrContinue
    End If
End Sub

Вам также нужно будет обработать ошибку 3021 везде, где вы запускаете команду сохранения в VBA, например:

Private Sub cmdSave_Click()
    On Error GoTo ErrHandler

    DoCmd.RunCommand acCmdSaveRecord

    Exit Sub

ErrHandler:
    If Err.Number = 3021 Then
        'Do Nothing
        Resume Next
    Else
        'Handle other errors here
        Resume Next
    End If
End Sub

Теперь, я с готовностью согласен с одним из комментариев, что более важно, чтобы вы пытались разрешить все, что вызывает эти ошибки, а не кодировать вокруг них. В моем случае я использую вышеупомянутое решение для обработки конфликтов записи, которые возникают, когда пользователь открывает два экземпляра одинаковой формы для одной и той же записи и вносит изменения в обоих экземплярах. Было бы лучше, если бы я запретил пользователю открывать одну и ту же запись дважды или запретил редактирование, разрешив пользователю вносить изменения только в один из экземпляров открытой формы, но ни один из них не совсем прост в реализации, особенно когда вы используете Собственная коллекция форм, так что, думаю, можно сказать, что я жду "дождливого дня".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...