MS Access до обновления отменить событие не работает для несвязанного поля со списком - PullRequest
0 голосов
/ 02 октября 2019

У меня есть поле со списком в Access, который имеет источник строки, который привязан к таблице, но не использует тот же источник записи, что и форма. Я хочу, чтобы пользователь мог выбирать элементы из выпадающего списка, но я хочу предупредить их, прежде чем они что-то поменяют, и если они скажут «нет», отмените изменения следующим образом:

Private Sub cboSelectAddress_BeforeUpdate(Cancel As Integer)
    Dim rs As New ADODB.Recordset
    Dim prevAddress As String

    'prevAddress = Me.cboSelectAddress.Value

    If MsgBox("Are You sure you want to change the value of the combo box?", vbQuestion + vbYesNo + vbDefaultButton2, "CTNO change altert") = vbYes Then

        'DO SOMETHING
    Else
        'Me.cboSelectAddress.Value = prevAddress
        Cancel = True
    End If

End Sub

Как толькокогда я изменяю значение поля со списком, значение поля со списком изменяется, а затем и только тогда происходит событие before_update.

Чтобы смягчить это, я попытался сохранить значение адресного поля перед изменением и установить его обратно в исходное значение, если пользователь выбирает NO, но это также вызывает ошибку, потому что он пытается пройтисамо событие перед обновлением. Как видите, я закомментировал эту часть кода.

1 Ответ

0 голосов
/ 03 октября 2019

Я только что узнал, что событие перед обновлением срабатывает после изменения значения поля со списком даже в связанном элементе управления. Чтобы смягчить это, я добавил: Me.cboSelectAddress.Undo, если пользователь не выбирает

...