Richiesta conferma inserimento dati prima di scrivere record

di il
6 risposte

Richiesta conferma inserimento dati prima di scrivere record

Ciao, sono alle prese con un grattacapo di access 2003.
Ho creato un database in cui ho creato una maschera che mi inserisce i dati nella tabella principale, nella maschera ho disabilitato il tasto x per poter evitare una chiusura accidentale della maschera e il salvataggio del record incompleto. Ho creato in fondo alla maschera due pulsanti uno salva e uno annulla. Sul tasto annulla sono riuscito a far chiudere la maschera senza creare il record. Sul tasto salva vorrei far comparire un messaggio di richiesta "Hai inserito tutti i campi?" con l'opzione di scelta "Si" o "No" con il si mi dovrebbe creare il record e chiudere la maschera con il no tornare alla indietro e lasciarmi la maschera aperta con i dati che fin ora ho inserito.
Chiedo che qualcuno più esperto di me mi dia due righe di codice per creare il tutto


grazie

6 Risposte

  • Re: Richiesta conferma inserimento dati prima di scrivere record

    Diciamo che non hai usato il metodo più adatto...!

    Le maschere offrono la possibilità di interagire con le azioni tra l'utente ed il Database.
    Nel tuo caso devi distinguere non solo l'azione di chiudura della Maschera che può rendere INCOMPLETO l'inserimento del NUOVORECORD, ma anche lo spostamento ad un Nuovo o Precedente o primo Record... che ByPassa la tua logica.

    Nel momento di Inserimento Record ci sono 2 EVENTI da gestire che offrono l'opzione di controllo sui dati ed un 3° evento che consente il controllo della chiusura.
    IN realtà le opzioni sono maggiori ma le puoi vedere anche tu dal VISUALIZZATORE OGGETTI
    
    Private Sub From_BeforeInsert(Cancel As Integer)
    ....
    End Sub
    
    Private Sub From_BeforeUpdate(Cancel As Integer)
    ....
    End Sub
    
    Private Sub From_Unload(Cancel As Integer)
    ....
    End Sub
    Tutti gli eventi che ti ho esposto come puoi notare espongono un PARAMETRO chiamato CANCEL.
    Il forzamento del parametro ad un valore di TRUE forza di conseguenza l'annullamento dell'evento e delle conseguenze che questo avrebbe generato.
    Quindi se in quegli eventi vai ad inserie la VALIDAZIONE dei campi che ritieni OBBLIGATORI
    puoi, in caso di mancata validazione, forzare CANCEL=TRUE ed annullare l'azione conseguente...
    compreso INSERIMENTO e CHIUSURA.

    Fai qualche prova, apri la GUIDA IN LINEA e verifica la corretta sintassi ed i vari esempi proposti per avere una visione più completa.
  • Re: Richiesta conferma inserimento dati prima di scrivere record

    Per lo spostamento ad un nuovo record o a quello precedente o successivo l'ho disabilitato quando apro la maschera mi si apre al primo record vuoto e mi da tutti i campi vuoti e non ci sono i tasti di spostamento tra i record.

    Inoltre non posso creare dei campi obbligatori perchè potrei averne di vuoti.

    mi serve solo una richiesta di conferma della chiusura.
    attualmente se premo salva si chiude la maschera e mi scrive il record in tabella, se premo annulla mi conferma che perderò i dati e se seleziono ok mi chiude la maschera.
  • Re: Richiesta conferma inserimento dati prima di scrivere record

    junkerpz ha scritto:


    per lo spostamento ad un nuovo record o a quello precedente o successivo l'ho disabilitato quando apro la maschera mi si apre al primo record vuoto e mi da tutti i campi vuoti e non ci sono i tasti di spostamento tra i record.
    Di solito si apre una Maschera in modalità AGGIUNTA proprio per evitare fronzoli...

    junkerpz ha scritto:


    Inoltre non posso creare dei campi obbligatori perchè potrei averne di vuoti.
    Questa non l'ho capita...
    Definire i Campi OBBLIGATORI è facoltativo e definibile Campo per Campo, non solo...
    da VBA, anche se non hai definito Obbligatori i campi lato Tabella, puoi gestire la VALIDAZIONE dell'inserimento in modo completamente indipendente.
    VALIDAZIONE significa controllare che l'inserimento sia conforme a quanto atteso... può essere NUMERO o TESTO o semplicemente che sia compilato...

    junkerpz ha scritto:


    mi serve solo una richiesta di conferma della chiusura.
    attualmente se premo salva si chiude la maschera e mi scrive il record in tabella, se premo annulla mi conferma che perderò i dati e se seleziono ok mi chiude la maschera.
    Io ti ho suggerito la tecnica corretta... ti serve provare a sviluppare quello che ti ho suggerito, se poi hai difficoltà ne possiamo parlare ma almeno prova.
  • Re: Richiesta conferma inserimento dati prima di scrivere record

    Ne ho provati già tanti che ho trovato nei vari forum, io cercavo qualche riga di codice molto semplice che mi faccia uscire solo una maschera di conferma prima di chiudere
  • Re: Richiesta conferma inserimento dati prima di scrivere record

    Ciao.
    Se ti fa piacere realizzare il tuo pensiero, credo che mettendo all'inizio della routine dell'evento 'click' del tuo CommandButton queste poche righe, dovrebbe andare bene:
    
    Dim X
    
    X = MsgBox("Hai Inserito tutti i campi...??!!", vbYesNo, "CONFERMA SALVATAGGIO")
    
    If X = vbYes Then
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    Else
        Exit Sub
    End If
    
    Salute.
  • Re: Richiesta conferma inserimento dati prima di scrivere record

    Grazie luky il tuo suggerimento è andato benissimo
Devi accedere o registrarti per scrivere nel forum
6 risposte