28/11/2023 - gigia2710 ha scritto:
il seguente errore : "Impossibile trovare alcun record nella tabella ‘personale’ contenente campo ID_personale corrispondenti alla chiave.
Nel fatto specifico, stai tentando di aggiungere un nuovo record nella tabella in relazione “a molti”, con nessun record presente nella tabella collegato "A uno".
Per quanto riguarda invece l'approccio logico e strutturale al problema, è tipico di chi confonde access con excel e mi dispiace dirlo, ma è completamente sbagliato.
Quindi la struttura che hai fatto è completamente da rifare.
Nel fatto specifico, non puoi creare una tabella per ogni causale, come hai fatto ora.
Primo perchè i database non funzionano in questo modo, secondo, perchè se nel corso del tempo si dovessero aggiungere altre 20 tipologie, saresti costretta ad aggiungere fisicamente altre 20 tabelle, altre 20 maschere, altre 20 query, altri 20 report. Un lavoro assurdo.
I database, funzionano, raggruppando le varie causali in tipologie, gruppi o categorie. E se gli elementi tra i vari gruppi sono troppo diversi, sia in fase di archiviazione, sia in fase di elaborazione dei dati, al massimo si possono creare tabelle diverse. Ma sempre cercando di raggruppare quelle che appartengono alla stessa categoria.
Per un database basico, per gestire quello che vuoi gestire, dovresti avere, una anagrafica dei dipendenti ed una tabella dei vari movimenti, con cui gestisci tutte le possibili causali. Stop. Sarà poi in fase di interrogazione al database, che userai query e filtri per visualizzare i dati che ti ineterssano. Quindi avresti solo una relazione uno a molti, tra la tabella Anagrafica dipendenti e quella dei movimenti.
Se non si vuole fare una tabella con troppi campi, al massimo si possono fare altre tabelle che raggruppano le causali per categoria.
Malattia, 104, permessi, congedi straordinari, legge 151, congedi straordinari, ferie, assenze ingiustificate, permessi premio, permessi per funerali, congedi per maternità, congedi parenterali, aspettativa e via dicendo sono solo causali del gruppo che possiamo chiamare Assenze.
Quindi andrebbero gestiti in una unica tabella.
Visto che poi hai anche altre tipologie, come le azioni disciplinari, e vari permessi per studio e formazione, per una gestione più snella potresti creare delle tabelle separate.
Ma non perchè queste tabelle servono al database per funzionare meglio. E' solo semplicemente per tua comodità, per agevolare la creazione, la programmazione e lo sviluppo del database da parte tua.
Quindi, in questo caso, cioè ragionando per causali raggruppate in categorie, anche se devi aggiungere 1000 altre motivazioni, non farai altro che aggiungere una nuova voce al campo della relativa categoria. Ma non lo farai fisicamente, ma semplicmente aggiungendo una voce. Esattaamente come faresti per aggiungere un nuovo dipendente.