更新前的MS Access取消事件不适用于未绑定的组合框

问题描述 投票:0回答:1

我在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,则将其设置回原始值,但这也会产生错误,因为它尝试通过更新前的事件本身。如您所见,我已经注释掉了那部分代码。

ms-access access-vba
1个回答
0
投票

我刚刚了解到即使在绑定控件中,组合框值更改后也会触发before update事件。为了减轻这种情况,我添加了:Me.cboSelectAddress.Undo如果用户选择否

© www.soinside.com 2019 - 2024. All rights reserved.