Annullare modifiche in sottomaschera

di il
6 risposte

Annullare modifiche in sottomaschera

Ciao a tutti,
avrei un problema di questo tipo:

Dovrei annullare le modifiche fatte su un record tramite una maschera principale M_Commesse, sia sulla maschera principale, che sulla sottomaschera SM_Commesse.

Se nella routine di annullamento uso il comando Me.Undo mi annulla solo le modifiche fatte sulla maschera principale e non sulla sottomaschera… non so come fare per annullare anche le modifiche nella sottomaschera.

Chiedo di nuovo cortesemente il vostro prezioso aiuto. 

6 Risposte

  • Re: Annullare modifiche in sottomaschera

    Me!SM_Commesse.Undo
  • Re: Annullare modifiche in sottomaschera


    Me!SM_Commesse.Undo

    Grazie Osvaldo, come sempre.

    Avevo provato ma mi segnala “prprietà o metodo non supportati dall'oggetto”….

  • Re: Annullare modifiche in sottomaschera

    Prova questa

    Me!SM_Commesse.Form.Undo
  • Re: Annullare modifiche in sottomaschera

    25/01/2023 - OsvaldoLaviosa ha scritto:


    Prova questa

    Me!SM_Commesse.Form.Undo

    Niente, non funziona neanche così… però voglio rivedere bene l'impostazione di maschera / sottomaschera, non vorrei aver cannato qualcosa.

    Ti aggiorno appena riesco.

    Per ora grazie mille.

  • Re: Annullare modifiche in sottomaschera

    Ovvio che non funziona… ;-)

    Se si ragiona su come è strutturata una Relazione Form/SubForm e come Access gestisce i dati è evidente capire che appena si sposta il focus dalla SubForm alla Form, i dati della Form che sono legati da una Transazione al Record della Form(lato 1) hanno subito il COMMIT, quindi salvati.

    Nella sostanza puoi fare l'UNDO solo se dall'interno della SubForm non hai ancora generato il SAVE, allora è possibile fare l'UNDO.

    Chiaro che, se il Pulsante di UNDO si trovasse nella Form oppure tu spostassi il Focus in un controllo nella FORM il tutto non funzionerebbe più, e questo rende sostanzialmente ingestibile questa strada ovviamente.

    Nella pratica non è fattibile, ci sono alcune opzioni per farlo che prevedono l'uso di Recordset, ma complica molto le cose soprattutto per chi non ha sufficiente conoscenza del mezzo.

    Il metodo più funzionale in questi casi è lavorare in modalità SCONNESSA con la SubForm, ovvero su Current della Form si caricano i dati della tabella lato MOLTI e si popola la SubForm in modo NON ASSOCIATO, ma in quel caso serve gestire da codice tutto il pacchetto dati della SubForm sia per EDIT/NEW/UNDO ecc… tuttavia questa è la strada migliore.

    Questo è un articolo che spiega qualche concetto e da un suggerimento… da prendere con le pinze.

    https://vb123.com/undo-in-sub-forms/

  • Re: Annullare modifiche in sottomaschera

    26/01/2023 - @Alex ha scritto:


    Ovvio che non funziona… ;-)

    Se si ragiona su come è strutturata una Relazione Form/SubForm e come Access gestisce i dati è evidente capire che appena si sposta il focus dalla SubForm alla Form, i dati della Form che sono legati da una Transazione al Record della Form(lato 1) hanno subito il COMMIT, quindi salvati.

    Nella sostanza puoi fare l'UNDO solo se dall'interno della SubForm non hai ancora generato il SAVE, allora è possibile fare l'UNDO.

    Chiaro che, se il Pulsante di UNDO si trovasse nella Form oppure tu spostassi il Focus in un controllo nella FORM il tutto non funzionerebbe più, e questo rende sostanzialmente ingestibile questa strada ovviamente.

    Nella pratica non è fattibile, ci sono alcune opzioni per farlo che prevedono l'uso di Recordset, ma complica molto le cose soprattutto per chi non ha sufficiente conoscenza del mezzo.

    Il metodo più funzionale in questi casi è lavorare in modalità SCONNESSA con la SubForm, ovvero su Current della Form si caricano i dati della tabella lato MOLTI e si popola la SubForm in modo NON ASSOCIATO, ma in quel caso serve gestire da codice tutto il pacchetto dati della SubForm sia per EDIT/NEW/UNDO ecc… tuttavia questa è la strada migliore.

    Questo è un articolo che spiega qualche concetto e da un suggerimento… da prendere con le pinze.

    https://vb123.com/undo-in-sub-forms/

    Grazie mille Alex per le tue informazioni. Pensavo fosse più semplice… Comunque sto studiano una soluzione diversa senza l'uso della sottomaschera e apparentemente sembra funzionare, però devo testarla bene.

Devi accedere o registrarti per scrivere nel forum
6 risposte