BeforeUpdate Combobox Ripristino valore precedente

di VBAndre il
3 risposte

Ci risono…

Su una form ho inserito un controllo sul BeforeUpdate di una combo per chiedere conferma sulla volontarietà della modifica ma in caso di risposta negativa? Cancel=true? Cmd.Undo e mi aspetterei che nella combo visualizzassi il valore prima della modifica e invece rimane visualizzato il nuovo valore.

Private Sub CmbMesi_BeforeUpdate(Cancel As Integer)
    If MsgBox("Proseguendo le eventuali modifiche andranno perse!" & Chr(13) & Chr(10) & "Confermi?", vbOKCancel) = vbCancel Then
        Cancel = True
        Me.CmbMesi.Undo
    End If
End Sub

Suggerimenti?

3 Risposte

  • Temo tu abbia “omesso” un dettaglio fondamentale, che provo a chiarire io e magari sarà a conferma.

    La tua ComboBox è un controllo NON ASSOCIATO, fai una verifica facendo la medesima cosa su una Combo Associata e vedrai che ritorna al valore PRE modifica.

    Per questo motivo non può ripristinare il valore precedente… temo non ci sia soluzione, almeno a me non viene in mente su 2 piedi-

  • Esattamente come sospettavi.

    Avevo scritto del codice sull'AfterUpdate ma vedrò di spostarlo su un pulsante per evitare modifiche involontarie

    Grazie

  • Ciao.

    Non sono sicuro che funzioni, ma salvare l utimo valore in una variabile mettendo il codice sull evento down e poi ripristinarlo dopo l undo?

Devi accedere o registrarti per scrivere nel forum
3 risposte