У меня есть поле со списком в 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
, но это также вызывает ошибку, потому что он пытается пройтисамо событие перед обновлением. Как видите, я закомментировал эту часть кода.