Cancellazione record corrente in tabella mediante VBA

di il
7 risposte

Cancellazione record corrente in tabella mediante VBA

Cari tutti, sono in crisi.
Sono su un record di una maschera continua frutto di una query.
Modifico il campo nome di un record esistente e quando sono all'interno della sub Form_AfterUpdate decido di cancellare il record.

Bene, ho provato tutti i modi per farlo ma non ci sono riuscito.
Ho provato con DoCmd.RunCommand acCmdDeleteRecord
ho provato con DoCmd.DoMenuItem acFormBar, ......

niente.
Sarà perché gli sto addosso e non posso cancellare qualcosa che ho sotto i miei piedi?
La domanda per chi sa tutto è:
Quando lo posso cancellare questo record? e in che modo?
Grazie
ciao
antonio

7 Risposte

  • Re: Cancellazione record corrente in tabella mediante VBA

    Non sarà mica che è proprio perchè sei su una QUERY (e non tabella)?
  • Re: Cancellazione record corrente in tabella mediante VBA

    Mi accodo al pensiero di Osvaldo, se devi interagire con la maschera (aggiungere , modificare ed eliminare record), dovresti pensare a delle maschere collegate o maschera-sottomaschera
  • Re: Cancellazione record corrente in tabella mediante VBA

    antocuomo ha scritto:


    Cari tutti, sono in crisi.
    Sono su un record di una maschera continua frutto di una query.
    La query è basata su una o due Tabelle?
    nella maschera è consentita l'eliminazione dei record?
    quali messaggi ricevi?
    Modifico il campo nome di un record esistente
    cos'è il campo nome di un record?
    Form_AfterUpdate decido di cancellare il record.

    Stai dicendo che dopo l'aggiornamento del record lo elimini...ma dai
    se
     DoCmd.RunCommand acCmdDeleteRecord
    lo metti nell'azione "Form_AfterUpdate"
    appena inserisci una dato in un qualsiasi controllo ti elimina il record senza avviso.
     DoCmd.RunCommand acCmdDeleteRecord
    dove lo hai messo ?...Fa parte di altro codice?...se si quale?
    Quando lo posso cancellare questo record?
    dopo aggiornamento della form, no di sicuro anche perchè se così fosse avresti una form senza nessun record...non ti pare?
    Saluti
    Gianni
  • Re: Cancellazione record corrente in tabella mediante VBA

    Sono contento che si è accesa una bella discussione e cerco di dare tutti i possibili ragguagli per giungere ad una soluzione.
    Certo. I miei dati sono in una tabella appoggiata ad una query.
    Io sto lavorando sulla tabella e voglio cancellare il mio record. Da Debug sono sicuramente uscito dall'evento BeforeUpdate e sono abbondantemente in quello AfterUpdate. Lancio qualsiasi comando di cancellazione, ci passa sopra ma senza effetto, neanche un messaggio di errore.
    Ho anche introdotto a monte un Me.AllowDeletions = True.
    Dirò di più: se dal record che sto editando clicco sul pulsante di un breve menù ove è possibile anche cancellare il record corrente, è tutto regolare. Il record scompare dalla visualizzazione. Ed il comando è quello classico: DoCmd.RunCommand acCmdDeleteRecord
  • Re: Cancellazione record corrente in tabella mediante VBA

    FERMI TUTTI.
    Involontariamente avevo omesso una cosa che ritenevo poco importante:
    E' pur vero che mi trovavo nell'ambito di AfterUpdate, ma per chiedere, ed operare la soppressione del record, mi sono appoggiato ad una Private Sub personale. In questo ambito, e mi piacerebbe sapere il perché, il mio comando non veniva eseguito.
    Giusto per scrupolo ho provato ad inviare il comando di cancellazione record direttamente dalla routine chiamante (AfterUpdate) e lì, miracolo (per me) ha funzionato.
    Cosa vuol dire questo? mi piacerebbe capire la regola
  • Re: Cancellazione record corrente in tabella mediante VBA

    Quando ci proponi un codice lo devi copia/incollare tutto a partire dalla private sub alla riga end sub:

    ad esempio quando dici:
    Private Sub Form_AfterUpdate()
     DoCmd.RunCommand acCmdDeleteRecord
    End Sub
    questo è quello che prospettavi tu...ma una maschera si aggiorna quando tu esci da un controllo qualsiasi.
    è diverso di:
    Private Sub IdCliente_AfterUpdate()
    DoCmd.RunCommand acCmdDeleteRecord
    End Sub
    Io sto lavorando sulla tabella e voglio cancellare il mio record. Da Debug sono sicuramente uscito dall'evento BeforeUpdate

    mah di cosa?
    e sono abbondantemente in quello AfterUpdate. Lancio qualsiasi comando di cancellazione, ci passa sopra ma senza effetto, neanche un messaggio di errore.
    se continui a spiegarci lo scenario così diventa faticoso aiutarti.
    Ho anche introdotto a monte un Me.AllowDeletions = True.
    "A monte"...no in collina o al mare
    Saluti
  • Re: Cancellazione record corrente in tabella mediante VBA

    antocuomo ha scritto:


    FERMI TUTTI.
    Involontariamente avevo omesso una cosa che ritenevo poco importante:
    E' pur vero che mi trovavo nell'ambito di AfterUpdate, ma per chiedere, ed operare la soppressione del record, mi sono appoggiato ad una Private Sub personale. In questo ambito, e mi piacerebbe sapere il perché, il mio comando non veniva eseguito.
    Giusto per scrupolo ho provato ad inviare il comando di cancellazione record direttamente dalla routine chiamante (AfterUpdate) e lì, miracolo (per me) ha funzionato.
    Cosa vuol dire questo? mi piacerebbe capire la regola
    Anche a noi piacerebbe capire cosa hai fatto, ma se non ce lo dici tu l'unica opzione che ci lasci è interpellare un chiromante!
Devi accedere o registrarti per scrivere nel forum
7 risposte