Convalida record

di il
6 risposte

Convalida record

Ciao a tutti,
ho una form "bustepaga" nella quale l'utente deve inserire nuovi record a partire dai capi "codicefiscale_datorelavoro", codicefiscale_dipendente", "mese", dopo di che inserisce vari dati per compilare la busta paga.
Vorrei che fosse impedito il salvataggio del record se, ovviamente si ripetono le tre condizioni in modo univoco, ossia non è possiible redigere più di una busta paga nel rapporto tra datore di lavoro e dipendente nello stesso mese.
In pratica se si verifica questa condizione in un record precedente, vorrei che tramite msgbox l'utente fosse avvisato e magari fosse anche segnalato quale è il record già compilato.
Grazie mille

6 Risposte

  • Re: Convalida record

    Ci sono diversi modi per farlo...
    Nel tuo caso io punterei all'evento BeforeInsert forzando CANCEL=True se sono già presenti Record con le 3 condizioni...!

    Per cercare l'eventualità, puoi semplificarti la vita usando DCOUNT(....guarda l'help...).
    Dovrai ovviamente concatenare le 3 condizioni con un AND logico.
  • Re: Convalida record

    Potresti anche creare un "Indice multicampo univoco". Di solito lo si crea a livello di tabella, non so se si può fare anche da maschera. Questa soluzione impedisce l'inserimento in tabella/maschera di dati identici su più campi e Access te lo segnala con un suo messaggio di errore. Non saprei aiutarti però su come si fa a segnalare il record antecedente avente quella combinazione di valori.
  • Re: Convalida record

    Crearlo lato Tabella significa una cosa, crearlo lato Maschera un'altra...

    La 2° si realizza in più modi ma in sostanza è quello che ho suggerito prima, che è la cosa meno complessa.

    La 1° è la soluzione tecnicamente più corretta, ma... ci sono molti ma... dovuti alla Complicazione della gestione delle eventuali Tabelle Collegate, di cui io non conosco l'esistenza nel progetto...
    Pensa se dovesse gestire Form con SubForm legate da questo INDICE MULTIPLO...
    Ovviamente si può fare, anzi sarebbe da fare proprio così, ma credo possa rendere molto scomodo il tutto.
    In questo caso basterebbe tuttavia attivare l'evento Form_Error ed intercettare il 3022(se non ricordo male) che è il tentativo di duplicazione PK, e forzare l'undo...
  • Re: Convalida record

    @Alex ha scritto:


    Ci sono diversi modi per farlo...
    Nel tuo caso io punterei all'evento BeforeInsert forzando CANCEL=True se sono già presenti Record con le 3 condizioni...!

    Per cercare l'eventualità, puoi semplificarti la vita usando DCOUNT(....guarda l'help...).
    Dovrai ovviamente concatenare le 3 condizioni con un AND logico.
    Grazie per le risposte ma purtroppo non mastico molta programamzione vba per cui ti chiederei:
    *su quale oggetto devo impostare BeforInsert e come faccio a scrivere le condizioni (ossia record in cui sono già presenti tutti e 3 i valori dei rispettivi campi (Codice fiscale datore, codicefiscale dipendente e mese)?
    So usare DCount ma solo nella form in una casella di testo per cui anche qui vorrei un aiuto, se possibile.
    Non so se mi sono spiegato bene: insomma, nessuno di questi 3 campi è la chiave primaria della tabella (che è il contatoreID), ma non deve essere possibile inserire gli stessi valori nei rispettivi campi su più di un record...
    Grazie ancora
  • Re: Convalida record

    Ti suggerisco di approfondire le questioni che ora per te rappresentano LACUNE, perchè ci metti nella condizione di scegliere se fornirti "TUTTO FATTO" o come spesso si dice "LA PAPPA PRONTA" e non è la mia filosofia, o piuttosto fare dei corsi Realtime per darti le spiegazioni mancanti..., e questa non è proprio la filosofia dei FORUM.

    In tutti i casi ti propongo di leggerti questi Articoli ed Esempi, che possono sia chiarire i concetti di base, ma anche darti delle dritte utili:


    Quì trovi nel sito MS la solizione che ti ha suggerito anche Osvaldolaviosa, quindi Indici Multipli:
    http://office.microsoft.com/en-us/access-help/prevent-entry-of-duplicate-values-mdb-HP005187564.aspx

    Quì trovi un'esempio, ma leggi il 3D....:
    http://www.utteraccess.com/forum/prevent-duplicate-records-t455985.html

    Quì un breve 3D utile:
    http://answers.microsoft.com/it-it/office/forum/office_2003-access/impedire-inserimento-maschera-di-valori-duplicati/41444df8-d31d-4701-911d-b84243d5b948

    Quì da KARL 2 concetti importanti ma da pesare con le adeguate conoscenze:


    quì trovi anche un Tutorial:
    http://en.allexperts.com/q/Using-MS-Access-1440/2008/4/preventing-duplicate-records.htm
  • Re: Convalida record

    @Alex ha scritto:


    Ti suggerisco di approfondire le questioni che ora per te rappresentano LACUNE, perchè ci metti nella condizione di scegliere se fornirti "TUTTO FATTO" o come spesso si dice "LA PAPPA PRONTA" e non è la mia filosofia, o piuttosto fare dei corsi Realtime per darti le spiegazioni mancanti..., e questa non è proprio la filosofia dei FORUM.

    In tutti i casi ti propongo di leggerti questi Articoli ed Esempi, che possono sia chiarire i concetti di base, ma anche darti delle dritte utili:


    Quì trovi nel sito MS la solizione che ti ha suggerito anche Osvaldolaviosa, quindi Indici Multipli:
    http://office.microsoft.com/en-us/access-help/prevent-entry-of-duplicate-values-mdb-HP005187564.aspx

    Grazie per i consigli

    Quì trovi un'esempio, ma leggi il 3D....:
    http://www.utteraccess.com/forum/prevent-duplicate-records-t455985.html

    Quì un breve 3D utile:
    http://answers.microsoft.com/it-it/office/forum/office_2003-access/impedire-inserimento-maschera-di-valori-duplicati/41444df8-d31d-4701-911d-b84243d5b948

    Quì da KARL 2 concetti importanti ma da pesare con le adeguate conoscenze:


    quì trovi anche un Tutorial:
    http://en.allexperts.com/q/Using-MS-Access-1440/2008/4/preventing-duplicate-records.htm
Devi accedere o registrarti per scrivere nel forum
6 risposte