Condividi tramite

Salvare dati in maschera e sottomaschera con avviso

Anonimo
2015-07-12T18:28:29+00:00

Buonasera a tutti,

chiedo cortesemente il vostro aiuto per risolvere un problema relativo al salvataggio dei dati.

Ho una maschera con sottomaschera le cui tabelle Tbl Clienti e TblAppuntamenti sono tra loro in relazione.

In un modulo vi è una funzione che mi consente di salvare nella maschera principale il nuovo record o la modifica di uno esistente con relativo avviso di conferma.

Quello che non sono riuscito ad ottenere è la possibilità di richiamare detta funzione anche quando inserisco o modifico i dati nella sottomaschera.

In un vecchio post del 27.1.2010 Giorgio Rancati suggeriva di inserire nell’evento Dopo inserimento della maschera  il seguente codice:

Me.NomeSottomaschera.Requery (ovviamente ho inserito il nome effettivo della sottomaschera), ma putroppo con esito negativo, ricevendo avviso di conferma solo per i dati modificati nella maschera principale.

Grazie.

Abitante

P.s. Qual è la procedura per allegare un file di Access?

Microsoft 365 e Office | Accesso | 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

  1. Anonimo
    2015-07-13T08:37:41+00:00

    ciao Abitante,

    sei sicuro che quel :

    [..]

      Case vbCancel

               Cancel = True

    [..]

    sia ok se poni l'option explicit nel modulo?

    vedrei meglio la funzione pubblicata in un modulo standard come sotto mostrato ( ho commentato il codice superfluo) e richiamata su before update così, in modo da poterla richiamare su ogni form.

    Generalmente se una routine deve restituire un qualcosa si procede con una funzione altrimenti con una sub.

    Private Sub Form_BeforeUpdate(Cancel As Integer)

    If Avviso Then

        Cancel = True

        Me.Undo

    End If

    End Sub

    ciao, Sandro.

    funzione nel modulo standard.

    Public Function Avviso() As Boolean 'chiede conferma prima di salvare o dopo una modifica

          'Dim retValue    As Integer

          Dim strTtl      As String

          Dim strMsg      As String

          Dim bool        As Boolean

          strTtl = "Salvare il record?"

          strMsg = "I dati sono cambiati." & vbCrLf & _

                   "Vuoi salvare le modifiche?"

         'retValue = MsgBox(strMsg, vbQuestion + vbYesNo, strTtl)

         If MsgBox(strMsg, vbQuestion + vbYesNo, strTtl) = vbNo Then bool = Not bool

         Avviso = bool

          'Select Case retValue

          '  Case vbYes

                 'non fare nulla

          '   Case vbNo

                 'DoCmd.RunCommand acCmdUndo

             'Case vbCancel

        'End Select

      End Function

    La risposta è stata utile?

    0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-07-13T07:46:35+00:00

    Ciao Sandro,

    in effetti mi sono accorto che sull'evento Prima di aggiornare della sottomaschera non avevo inserito il codice che richiama la funzione:

    Private Sub Form_BeforeUpdate(Cancel As Integer)

    Call Avviso

    End Sub

    Questo è il codice della funzione:

    'FUNZIONE SALVA NUOVO INSERIMENTO O MODIFICA

    Function Avviso() 'chiede conferma prima di salvare o dopo una modifica

         Dim retValue As Integer

         Dim strTtl As String

         Dim strMsg As String

         strTtl = "Salvare il record?"

         strMsg = "I dati sono cambiati." & vbCrLf & _

                  "Vuoi salvare le modifiche?"

        retValue = MsgBox(strMsg, vbQuestion + vbYesNoCancel, strTtl)

         Select Case retValue

           Case vbYes

                'non fare nulla

            Case vbNo

                DoCmd.RunCommand acCmdUndo

            Case vbCancel

               Cancel = True

       End Select

     End Function

    Grazie

    Abitante

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-07-12T18:46:09+00:00

    ciao Abitante,

    il requery serve per aggiornare  la sottomaschera invocato nel modo che ci mostri, non credo da solo sia sufficiente.

    alla funzione viene passato il parametro dell'oggetto maschera tipo un :

    public miaFunzione(frm as access.form) as qualcosa?

    posta la funzione magari, così vediamo...

    per pubblicare un file devi avere un account per esempio su oneDrive o dropbox.

    qui per oneDrive: per scaricarlo :  https://onedrive.live.com/about/it-it/download/

    guida : http://windows.microsoft.com/it-it/windows-8/getting-started-onedrive-tutorial

    ciao!

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento