Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [ACCESS] Aggiornare la visualizzazione record dopo una DELETE

    Salve.

    In due parole.
    Ho una maschera con sottomaschera, NOMINE -> Nominati, e ho inserito un bottone con questo comando:
    codice:
    DoCmd.SetWarnings False
    
    DoCmd.RunSQL "DELETE FROM Nominati WHERE IDNomina = " & Me![IDNomina]
    DoCmd.RunSQL "DELETE FROM Nomine WHERE IDNomina = " & Me![IDNomina]
        
    DoCmd.SetWarnings True
    La Delete funziona... solo che quando viene eseguita vorrei che la visualizzazione passasse al record precedente... come si fa?

    Grazie
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  2. #2
    spero di aver capito bene, hai provato con: DoCmd.GoToRecord , , acPrevious

  3. #3
    Ho provato come mi hai detto... ma il risultato è di poco migliore la mio.

    Mi spiego meglio, sono stato poco chiaro:
    diciamo che io sono sul record 25 di 30 e premo CANCELLA. per logica io dovrei far sparire il contenuto di quel record, passare al precedente (o al successivo... basta sia) e i record mi dovrebbero diventare 29.

    Col mio procedimento, è di conseguenza anche col tuo, ottengo solo di passare al record precedente, ma mi rimane cmq un record 25 di 30 con scritto #ELIMINATO# in tutti i campi (mi rimane nella maschera, nella tabella ovviamente è sparito).

    Piano B?
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  4. #4
    Dim MyRecord As String
    MyRecord = CurrentRecord() -1



    DoCmd.SetWarnings False

    DoCmd.RunSQL "DELETE FROM Nominati WHERE IDNomina = " & Me![IDNomina]
    DoCmd.RunSQL "DELETE FROM Nomine WHERE IDNomina = " & Me![IDNomina]

    DoCmd.SetWarnings True


    Docmd.Requery

    DoCmd.GoToRecord , , acGoTo, MyRecord

    prova così, in pratica utiliziamo la variabile MyRecord per memorizzare il record corrente (es. il 25 di 30), passiamo al tuo codice per cancellare, facciamo un requery e poi indichiamo al database di tornare al record memorizzato - 1 (ovvero al 24 di 30).
    dovrebbe funzionare fammi sapere

  5. #5
    Ti ho battuto di un nanosecondo...
    ho appena modificato la procedura con un semplice Me.Requery e pare funzionare...
    salvo imprevisti dovrebbe andar bene, cmq tengo in nota anche la tua proposta (che tutto sommato gli somiglia parecchio).

    Grazie
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  6. #6
    ok alla prossima, oltretutto il codice che ti ho scritto contiene un errore( ), non è docmd.requery ma forms!tuamaschera(od il me).Requery

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.