Nuovo record e Cancellazione record da maschera e sottomaschera

Anonimo
2015-07-30T12:47:46+00:00

Buonasera a tutta la community,

nell'attesa di ricevere una risposta alla mia precedente domanda,

vi chiedo cortesemente se potete attenzionare questo problemino.

Nel db ho creato una maschera con all'interno una sottomaschera. Nella maschera

inserisco i dati generici di una campagna promozionale, nella sottomaschera

inserisco i tabelloni pubblicitari che affitto (quindi la relazione è 1: molti).

Nel piè di pagina della maschera ho inserito 2 pulsanti: "Nuovo Record" e "Elimina Record".

Vorrei che clikkando sul pulsante "Nuovo Record" sia la maschera che la sottomaschera si

predisponessero per ricevere nuovi dati. Stessa cosa per l'eliminazione. Clikkando il

pulsante "Elimina Record" vorrei che venisse eliminato il record della maschera con tutti

i record della sottomaschera ad esso relazionati.

Spero di essere stato chiaro nella spiegazione

Ringrazio sin d'ora tutti per l'aiuto.

fausto

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
2015-07-30T17:43:36+00:00

ciao Fausto,

consiglio...

imposta sempre l'option explicit nei moduli, che siano moduli standard, di classe, o i moduli delle forms, che sono comunque di classe pure quelli, è un'aiuto al debug notevolissimo.

Non sei distantissimo dalla corretta impostazione....però lanci una currentDb execute e cancelli il record e poi una cancellazione del record con runcommand...forse ridondante come approccio, a meno che la seconda cancellazione non sia del record parent.

ti posto un esempio :  http://1drv.ms/1JynaWm fausto.accbd, basato sul fatto di NON avere impostato la cancellazione a catena.

il codice è il seguente.

A cancellazione avvenuta il recorset si sposta sul record corrente pre-cancellazione, ho inserito la gestione errori ed il controllo sul newRecord.

HTH.

ciao, Sandro.

Option Compare Database

Option Explicit

Private Sub cmdElimina_Click()

On Error GoTo errorHandler

Dim intId As Integer

If Not Me.NewRecord Then

    If MsgBox("vuoi cancellare il fornitore :" & Me.NomeSocietà & vbNewLine _

             & " e tutti i records ad esso correlati?", vbCritical + vbYesNo, "Attenzione") = vbYes Then

         intId = Me.CurrentRecord

         DBEngine(0)(0).Execute "delete * from prodotti where idfornitore=" & Me.IDFornitore

         DBEngine(0)(0).Execute "delete * from fornitori where idfornitore=" & Me.IDFornitore

         Me.Requery

         Me.Recordset.Move intId - 1

    End If

Else

    MsgBox "ti trovi su un nuovo record, non ci sono dati da cancellare", vbInformation, "avviso£"

End If

ext_errorHandler:

    Exit Sub

errorHandler:

   With Err

       MsgBox "ERR#" & .Number _

            & vbNewLine & .Description _

            , vbOKOnly Or vbCritical

     End With

End Sub

Private Sub cmdNewRecord_Click()

DoCmd.GoToRecord acDataForm, Me.Name, acNewRec

End Sub

La risposta è stata utile?

0 commenti Nessun commento

9 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-07-31T12:14:24+00:00

    ciao Fausto,

    se inserisci un command button in una maschera a scorrimento continuo come nell'esempio che ti ho mostrato, ottieni in visualizzazione normale n bottoni corrispondenti a quanti sono i record della sottomaschera.

    quindi....l'operatore non deve fare altro che cliccare sul commandbutton corrispondente al record da eliminare.

    in una parola sola SI, il codice suggerito esegue esattamente quanto hai  richiesto.

    Mi riferisco ovviamente a maschere a scorrimento continue, lo ripeto.

    Facci sapere.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento