Tasto Annulla/Uscita

di il
5 risposte

Tasto Annulla/Uscita

In una normalissima form su un record vorrei utilizzare un tasto che fa l'undo se ci sono state modifiche
lasciando la maschera sempre in editing (normalissimo me.undo)
mentre se non ci sono state modifiche chiude la form (me.close o chiamata ad un'altra sub che poi chiude)
ricordo il vecchio Clipper:
if updated()
'fai questo o quello...
endif
esiste qualcosa in vba?
ps
non uso la macro annulla ma solo codice perche' per la chiusura form effettuo una chiamata a una sub che fa delle cose prima di chiudere

5 Risposte

  • Re: Tasto Annulla/Uscita

    Salve,

    Walter61 ha scritto:


    non uso la macro annulla ma solo codice perche' per la chiusura form effettuo una chiamata a una sub che fa delle cose prima di chiudere
    Ma la macro annulla fa quello che chiedi?

    Se cosi chiami la macro automatica e la converti in vba.
    Saluti
  • Re: Tasto Annulla/Uscita

    Magari sono io che non sto afferrando il senso della domanda ma:

    Walter61 ha scritto:


    In una normalissima form su un record vorrei utilizzare un tasto che fa l'undo se ci sono state modifiche
    lasciando la maschera sempre in editing (normalissimo me.undo)
    ma me.Undo lo realizzi "Solo" se hai fatto modifiche mi spiego meglio, per cui se inserito in un tasto scriverai
    Su clik:
    me.undo
     'fai questo o quello...
    
    se hai fatto modifiche "Annulla" altrimenti resta sulla form se non hai inserito altre azioni.

    Saluti
  • Re: Tasto Annulla/Uscita

    Grazie Gianni55 disponibile come sempre
    quello che vorrei che facesse il pulsante annulla modificato e'
    A) se dati digitati fai undo e resta nella maschera
    B) se nessun dato modificato o se hai gia' fatto annulla (gia' fatto undo) chiudi form

    ho convertito in codice il semplice pulsante macro Annulla record
    Function Macro1()
    On Error GoTo Macro1_Err
    
        With CodeContextObject
            On Error Resume Next
            DoCmd.RunCommand acCmdUndo
            If (.MacroError <> 0) Then
                Beep
                MsgBox .MacroError.Description, vbOKOnly, ""
            End If
        End With
    
    
    Macro1_Exit:
        Exit Function
    
    Macro1_Err:
        MsgBox Error$
        Resume Macro1_Exit
    
    End Function
    ma il comportamento non e' lo stesso della macro
    in sostanza dove c'e' i beep e il msgbox io vorrei uscire e chiamare la chiusura form
  • Re: Tasto Annulla/Uscita

    Io userei l'evento UNLOAD di maschera.
    
    PrivatebSub Form_Unload( Cancel as Integer)
       If me.Dirty then 
          Me.Undo
          cancel=true
       End if
    End Sub
    
    Quando la chiudi sia dal pulsanxen X nativo che da qualsiasi comando vba genera il controllo.

    P.s. per chiudere una maschera si fa cosi:
    
    Docmd.Close acForm, Me.Name
    Non esiste Me.Close... non inventare le cose...
  • Re: Tasto Annulla/Uscita

    Non esiste Me.Close... non inventare le cose...
    Grazie Alex
    perfetto puntuale e 'chirurgico' come sempre
    si chiaramente intendevo dire docmd.close
    If Me.Dirty e' l'alter ego di If Updated() esattamente quello che cercavo
Devi accedere o registrarti per scrivere nel forum
5 risposte