Abilitazione tasto Salva

di il
18 risposte

Abilitazione tasto Salva

Buon pomeriggio,

esiste un evento di maschera che permette di abilitare un tasto quando uno dei campi in essa contenuta viene modificato ?

Ho pensato di abilitare il tasto utilizzando l'evento "Su Modifica" delle caselle di testo ma... ad n caselle di testo presenti sulla maschera bisogna incollare Me.cmdSalva.Enabled = True n volte.

C'è un metodo più rapido ?

18 Risposte

  • Re: Abilitazione tasto Salva

    Devi usare l'evento BeforeUpdate di maschera.
    Leggi questo 3D:
    https://stackoverflow.com/questions/12953949/preventing-close-buttons-from-saving-records-in-ms-access
  • Re: Abilitazione tasto Salva

    Ciao Alex,

    grazie della risposta.

    Non ho capito leggendo il tread che mi hai indicato se l'approccio che uso io è sbagliato o se non sono stato capace di carpire il metodo giusto.

    Io già utilizzavo la proprietà Dirty del form per stabilire se chiudere la maschera senza salvare le modifiche:
    Private Sub cmdEsci_Click()
    Dim lRisposta As Long
    Dim sMsg As String
    Dim sTitle As String
    Dim bIsDirty As Boolean
    
    sMsg = "Sei sicuro di voler uscire senza aver salvato le modifiche ?"
    sTitle = "Modifica Noleggio"
    bIsDirty = Me.Form.Dirty
            
        If bIsDirty = False Then
            DoCmd.Close acForm, "mscModificaNoleggio"
        Else
            lRisposta = MsgBox(sMsg, vbQuestion + vbYesNo, sTitle)
    
            If lRisposta = vbYes Then
                    DoCmd.RunCommand acCmdUndo
                    DoCmd.Close acForm, "mscModificaNoleggio"
            End If
        End If
    
    End Sub
    Io volevo anche che il tasto cmdSalva si abilitasse solamente se l'utente effettua una modifica sul record.

    Forse la mia esigenza è inesistente perché potrei lasciare il tasto abilitato sempre...

    L'evento BeforeUpdate non si colloca temporalmente dopo la modifica e prima dell'aggiornamento del record?

    Se inserisco:
    Me.cmdSalva.Enabled = True 
    nell'evento BeforeUpdate della maschera, il comando non si abilita alla modifica di un campo.
  • Re: Abilitazione tasto Salva

    Per abilitare il pulsante devi usare evento Dirty e leggere la proprietà Dirty...
    Su Evento Dirty
    
    Me.Nomebutton.enabled=me.dirty
  • Re: Abilitazione tasto Salva

    Buon giorno Alex,

    grazie per la soluzione. Mi funziona con:
    Private Sub Form_Dirty(Cancel As Integer)
    
        Me.cmdSalvaCliente.Enabled = True
    
    End Sub
    Ho visto sul tuo sito il tutorial sulle API che non appena avrò la possibilità, leggerò con grande curiosità!

    Sempre grazie!
  • Re: Abilitazione tasto Salva

    Valuta anche il RESET del Button, probabilmente su Current di Maschera ed anche su AfterUpdate...?
    Vedi tu.
  • Re: Abilitazione tasto Salva

    Ciao Alex,

    grazie ancora per i tuoi suggerimenti.

    Purtroppo ho un ulteriore domanda

    Cosa intendi per RESET del button ?

    Ho provato
    Me.Comando.Default = True 
    ma non cambia nulla

    Non mi sembra ci sia una proprietà del comando "Reset" ne tantomeno un DoCmd.Reset
  • Re: Abilitazione tasto Salva

    Non inventarti cose che non esistono....!
    Dove hai trovato la proprietà DEFAULT...?

    Poi scusa segui il ragionamento... con il codice di prima hai gestito il cambiamento con la proprietà ENABLED... ora se dopo aver fatto l'edit, abiliti il button, poi nel caso no. Salvi o nel caso ti sposti di record cosa dovrebbe fare quel Button...?
    Secondo me, tornare ENABLED=FALSE.

    Per farlo devi usare il suggerimento dato sopra.
    Ragiona prima di rispondere frettolosamente.
  • Re: Abilitazione tasto Salva

    Sorry!

    Ora ti seguo

    Default è una proprietà del tasto ma... non chiedere a me a cosa serva!!!
  • Re: Abilitazione tasto Salva

    Non diciamo cavolate... Default non è assolutamente nulla... l'hai inventata.
    La proprietà si chiama DefaultValue, che anche se assomiglia non è quello che dici.
  • Re: Abilitazione tasto Salva

    Alex, non mi permetterei mai di contraddirti...

    forse non è una proprietà ma a me compare questa:
    Allegati:
    30193_ac703acadc804abf8f4082cfea4480c4.png
    30193_ac703acadc804abf8f4082cfea4480c4.png
  • Re: Abilitazione tasto Salva

    Hai ragione esiste, sinceramente non ne conoscevo l'esistenza, pare sia una nuova proprietà di Access365.

    Nella sostanza consente di impostare lo stato attivo sul controllo se impostato a True in modo da rendere funzionale l'uso di Enter come nei MessageBox quando si definisce il DefaultButton.

    Boh non ne comprendo sinceramente il senso e la differenza dal SetFocus.

    In tutti i casi grazie e mi scuso per la "cavolata".
  • Re: Abilitazione tasto Salva

    @Alex ha scritto:


    pare sia una nuova proprietà di Access365.
    Per curiosità sono andato a ripescare una vecchia installazione di Access2000 e già c'era.
  • Re: Abilitazione tasto Salva

    Alex non c'è assolutamente bisogno di scusarsi...
    Avessi io le lacune che hai tu (praticamente nessuna) !!!

    Grazie sempre a te
  • Re: Abilitazione tasto Salva

    Philcattivocarattere ha scritto:


    @Alex ha scritto:


    pare sia una nuova proprietà di Access365.
    Per curiosità sono andato a ripescare una vecchia installazione di Access2000 e già c'era.
    Ho cercato in MSDN e da riferimenti solo dal 365... che peraltro è quello che uso io... boh...
Devi accedere o registrarti per scrivere nel forum
18 risposte