Impedire cancellazione di un record specifico.

di il
6 risposte

Impedire cancellazione di un record specifico.

Buona sera e buon anno a tutti.

Ho l'esigenza di non dover far cancellare alcuni record specifici, che contengono delle voci di impostazioni base dell'applicazione, ma al tempo stesso nella tabella che le contiene l'utente, può aggiungere voci personalizzate modificabili e cancellabili a piacere.

La via più breve che ho trovato è quella di gestire con il classico

if....then

le opzioni per il blocco di record che conosco sono:

espressione.recordlocks

.AllowDeletions = False

ma, a meno che non mi sfugga qualcosa sul loro uso, non fanno al caso mio.

Esiste un metodo o proprietà nativa che non conosco, da poter utilizzare, senza dover passare per il VBA?

Grazie.

6 Risposte

  • Re: Impedire cancellazione di un record specifico.

    “Concettualmente” parlando quello che chiedi non ha molto senso.


    Per una tabella puoi impedire la cancellazione di record IN GENERALE, ma non di specifici record.
    Dal punto di vista del modello relazionale dei dati, non ha senso.
    Quello che puoi fare e' salvare i record in una tabella separata, dove vai SOLO in inserimento e lettura, e MAI in cancellazione.

    Quando fai una query, fai l'UNIONE della query sulla tabella che ti interessa PIU' la stessa query sull'altra tabella.

  • Re: Impedire cancellazione di un record specifico.

    01/01/2023 - migliorabile ha scritto:


    “Concettualmente” parlando quello che chiedi non ha molto senso.


    Per una tabella puoi impedire la cancellazione di record IN GENERALE, ma non di specifici record.
    Dal punto di vista del modello relazionale dei dati, non ha senso.
    Quello che puoi fare e' salvare i record in una tabella separata, dove vai SOLO in inserimento e lettura, e MAI in cancellazione.

    Quando fai una query, fai l'UNIONE della query sulla tabella che ti interessa PIU' la stessa query sull'altra tabella.

    Si, hai ragione, ma cercavo la via facile e veloce.

  • Re: Impedire cancellazione di un record specifico.

    Sulla falsa riga di quanto suggerito da migliorabile, potresti usare una tabella config_base che contiene i records non modificabili e una tabella config_custom che contiene i records variabili dell'utente.

    Altra soluzione: usi un'unica tabella con la colonna booleana che chiami AllowDelete, IsInternal o quello che preferisci. A livello applicativo, nelle query di modifica e logiche varie riconoscerai e filtrerai i records in base al valore booleano di cui sopra.

  • Re: Impedire cancellazione di un record specifico.

    01/01/2023 - Toki ha scritto:


    Altra soluzione: usi un'unica tabella con la colonna booleana che chiami AllowDelete, IsInternal o quello che preferisci. A livello applicativo, nelle query di modifica e logiche varie riconoscerai e filtrerai i records in base al valore booleano di cui sopra.

    Che diamine, che poi di solito uso cose del genere, ma in questo caso non mi era venuto in mente.

    Vero. Con una semplice booleana, anche senza passare per forza per la query, ma assegnandola alla column della combobox, ottengo il risultato senza colpo ferire, e potrei, da pannello di amministrazione nella versione utente, bloccare ulteriori valori senza dover passare per forza dalla versione di sviluppo.
    E' l'età che avanza…

    Grazie.

  • Re: Impedire cancellazione di un record specifico.

    Di nulla e buon anno!

  • Re: Impedire cancellazione di un record specifico.

    01/01/2023 - Toki ha scritto:


    Di nulla e buon anno!

    Grazie, anche a te.

    Tra parentesi con la prima soluzione che mi era venuta in mente, se avevo 10 voci da bloccare, dovevo includerle tutte nel confronto, invece in questo modo, mi basta un solo valore.

Devi accedere o registrarti per scrivere nel forum
6 risposte