Radeon79,
non hai specificato la relazione che vuoi assicurare fra la tabella Anagrafica e quella ove vuoi gestire le presenze del personale.
Inoltre devi stabilire quale sia il formato dati per gestire le informazioni relative alle presenze o assenze giornaliere, in modo da assicurare la situazione riepilogativa (mensile o di altro tipo).
Ciò alla luce di quanto esponi:
radeon79 ha scritto:
In pratica voglio avere un tabellone con tutti gli assunti e imputare filtrando per data la presenza giornaliera per ciascuno di essi a seconda se sia avvenuta o meno. Trattandosi di un centinaio di persone farlo con una maschera di rapporto per ognuno di loro è poco pratico. Per questo volevo aprire un form con una griglia che me li fa visualizzare tutti, selezionare la data da menu a tendina e infine apporre segno di spunta per coloro che hanno lavorato in quel giorno. Questo andrebbe fatto ogni giorno. La reportistica delle presenze in maniera elegante non sarebbe un problema. È questo che non riesco ad ottenere.
In generale, se parti da una relazione 1<->N fra Anagrafica e Presenze dovrai inserire i dati in modo prefissato (ad esempio con un inserimento automatico e massivo delle presenze giornaliere/settimanali/mensili/annuali ed aggiornare successivamente la assenza quando questa si verifica.
In tale scenario dovrai effettuare un filtro per data/periodo otterrai i dati incolonnati (nominativo e data) in modo da modificare la situazione di presenza del personale.
Sfrutti in tale modo le opportunità offerte dal DBMS e se vuoi presentare dei dati puoi avvalerti delle query a campi incrociati, ove avrai (a lato) i nominativi ed (in testa) i periodi giornalieri in esame, con al centro le risultanze di assenza/presenza.
In tale contesto hai opportunità di ottenere un "tabellone" di sintesi, ma non potrai agire con un aggiornamento diretto sui dati sottostanti.
Se per te è importante agire attraverso un calendario ove si voglia la presentazione dei nominativi su un arco temporale più ampio di quello giornaliero, dovresti implementare una matrice di corrispondenza, in modo da porvi i dati memorizzati, presentarli e dopo l'aggiornamento riportare le modifiche apportate nelle tabelle.
Per ottenere ciò è, chiaramente, richiesta una maggiore conoscenza e competenza sul linguaggio VBA.
In tale ambito, inoltre, è da tenere presente che qualora si accetti di stravolgere la la situazione relazionale per cercare di velocizzare le operazioni, si può tentare di accorpare i dati della situazione di presenza/assenza, per uno specifico periodo.
Ad esempio si potrebbe pensare di impiegare un record con l'identificativo del nominativo e 12 campi (uno per ciascun mese) al fine di coprire una situazione annuale.
Utilizzando, per i dati mensili, dei campi di tipo testo con un massimo di 31 caratteri, ove il dato giornaliero è fornito da un singolo carattere che rappresenti, posizionalmente nella stringa, la presenza o assenza (ad esempio "P" od "A").
Qualora si voglia una situazione più estesa di quella mensile si può pensare a impiegare una dimensione più ampia nel numero di caratteri (con i vincoli di Access di un campo di tipo "testo breve" pari a 255 o nel "testo lungo" ex "memo" di 65535).
Concludendo, ti consiglio di effettuare una analisi del requisito da soddisfare e su questo procedere alla implementazione della struttura dati e della interfaccia.