Impedire il salvataggio automatico di record in access

Anonimo
2015-04-16T09:44:41+00:00

Buongiorno a tutta la Community.

Ho questo problema in una applicazione ho una maschera con sottomaschera collegata, al momento quando completo l'aggiornamento dei campi della maschera, quindi prima di iniziare l'inserimento in quelli della sottomaschera, i dati relativi alla maschera vengono salvati nella relatova tabella e, successivamente, completato l'inserimento dei dati nella sottomaschera anche questi vengono a loro volta salvati nella relativa tabella.

Bene io vorrei invece che entrambe le operazioni di salvataggio nelle due rispettive tabelle, avvenisse solo e soltanto al completamento dell'inseriemnto dati in estrambe le maschere, master e detail.

Si può fare?

Chi mi può aiutare indicandomi passo passo come fare.

Grazie

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

7 risposte

Ordina per: Più utili
  1. Anonimo
    2015-04-16T18:20:17+00:00

    ciao Lucio,

    ti ho creato un esempietto al volo che non ha molte pretese...

    in pratica prima di aggiornare il singolo controllo della form e subform effettui un controllo che ti impedisce di lasciarlo non compilato...

    qui  : http://1drv.ms/1CQ6e6n id4.accdb.

    in pratica su evento prima di aggiornare richiami una sub :

    If setControl2(Me.NomeCategoria) Then pmsgbox ("nomeCategoria"): Cancel = True

    questa :

    Public Function setControl2(ctrl As Access.Control) As Boolean

    If IsNull(ctrl.Value) Then setControl2 = Not setControl2

    End Function

    per cui se il controllo non è compilato restituisce vero di conseguenza lanci quest'altra sub:

    Sub pmsgbox(strCtrl As String)

    Dim strMsg As String

    Dim style As VbMsgBoxStyle

    strMsg = "attenzione, " & strCtrl & " non compilato"

    style = vbCritical

    VBA.MsgBox strMsg, style, strMsg

    End Sub

    che costruisce un messaggio di avvertimento

    il cancel=true annulla l'evento e resti lì finchè non compili il controllo....

    niente di che.... :-)

    HTH.

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-04-16T14:57:37+00:00

    Grazie infinite Mimmo, provo e ti aggiorno.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-04-16T14:32:18+00:00

    Ti premetto che non l'ho mai provato.

    Sulle proprietà della maschera principale imposta la proprietà Sequenza a Record corrente. Questa non scatena l'aggiornamento automatico del record.

    Lo stesso sulla sottomaschera.

    A questo punto devi prevedere un pulsante che aggiorni. Ovviamente devi aggiornare prima i dati della Main quindi il Datail.

    Penso che puoi consolidare gli aggiornamenti con :

    Me.Dirty = False 

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-04-16T13:35:54+00:00

    Ciao Mimmo,

    innanzitutto grazie per la celere risposta, puoi cortesemente darmi indicazioni dettagliate su quali procedimenti effettuare per raggiungere il risultato richiesto.

    Grazie ancora

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2015-04-16T12:45:56+00:00

    Ciao Lucio,

    forse puoi provare con la proprietà Sequenza della Form.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento