RICHIESTA DI CONFERMA MODIFICA IN MASCHERA

Anonimo
2013-10-17T00:33:09+00:00

Salve dopo il prezioso aiuto di Mimmo57 ora ho un altro nuovo quesito:

Ho una maschera che ha circa 40 campi.

Vorrei che quando faccio una modifica ad un qualsiasi valore della mia maschera, prima di chiudere mi appaia una finestra che mi dica:

Hai modificato i seguenti dati:

NomeCampo: old   modificato in: new

Nome: Massimo modificato in: MASSI

Città: VA modificato in: Varese

Telefono: 0332 modificato in: 0332-XX.XX.XX

Vuoi salvare le modifiche e chiudere la scheda? Si-No

Si >> naturalmente sostituisce i vecchi valori con i nuovi, salva e chiude la maschera

No >> mi apre una maschera con le stesse voci con magari una campo di selezione che mi fa scegliere quali voci tenere e quali ripristinare tipo:

|_|   Nome: Massimo modificato in: MASSI

|_|   Città: VA modificato in: Varese

|_|   Telefono: 0332 modificato in: 0332-XX.XX.XX

Seleziona le voci che vuoi realmente modificare, mentre quelle non selezionate saranno ripristinate come prima!  OK

OK >> altra maschera con:

Hai modificato:

Nome in: MASSI

Telefono in: 0332-XX.XX.XX 

Mentre:

Città: VA

sono rimasti invariati >> OK

OK>> salva le modifiche e chiudi.

*********************************************************************

Inizialmente ho provato a fare una cosa del genere:

all'apertura della maschera copio tutti i valori dei miei campi in una maschera nascosta

poi faccio le modifiche ed alla chiusura con le classiche funzioni "If" faccio confrontare i valori ma spesso e volentieri non salva le modifiche e soprattutto non so come fare per far selezionare i campi che si vogliono realmente modificare.

Potete darmi una mano e spiegarmi un metodo più veloce e soprattutto affidabile?

Grazie Massi

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-10-22T07:23:40+00:00

Ciao Massi MamO,

prova a modificare il ciclo in questo modo:


    For Each ctl In Me.Controls

        If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then

            If CStr(Nz(ctl.Value, "")) <> CStr(Nz(ctl.OldValue, "")) Then

                col.Add ctl.Name

            End If

        End If

    Next ctl


lasciando il resto invariato

David

La risposta è stata utile?

0 commenti Nessun commento

13 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-10-17T19:36:33+00:00

    Ma c'è un modo per far riepilogare il  campo/i  modificato/i senza dover scrivere tutto a mano?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-10-17T11:01:47+00:00

    Il valore impostato all'avvio della maschera.

    If me.dirty     ti dice che c'e stata almeno una variazione in maschera rispetto ai valori origine.

    Per ciascun campo puoi chiederti come è  il valore (contenuto del controllo) attuale rispetto al proprio xxxxxx.OldValue.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-10-17T10:32:47+00:00

    cioè?

    Intendi il valore predefinito nella maschera proprietà?

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-10-17T07:03:48+00:00

    Ciao,

    su di una maschera ogni controllo ha la proprietà campo.OldValue a disposizione prima di finalizzare una modifica.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento