Newsgroup: it.comp.appl.access
Titolo: gestione ferie dipendenti

sta finendo l'anno e con l'occasione dell'anno nuovo, vorrei gestire le
ferie e congedi vari dei dipendenti con un bel programmino access.
Quindi, creo una tabella inserendo i dati generali e anagrafici dei
dipendenti, poi mi creo un'altra tabella dove vado ad inserire i vari tipi
di congedi di ogni singolo dipendente.
Mi devo creare una maschera in cui chiamando un dipendente, venga
visualizzata la lista dei propri congedi, con il riporto del totale preso,
da fare e il riporto di ferie dell'anno precedente.
Come consigliate di organizzarmi?
premetto che i dipendenti sono indicizzati per matricola
grazie 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Se la tabella delle anagrafiche dei dipendenti si chiama tblAnagrafica ed ha
una struttura simile a questa:
Matricola            Testo e chiave primaria
Cognome            Testo
Nome                 Testo
ecc. ecc.
Creati una tabella chiamata tblFerie e avente una struttura simile a questa:
ID                          Contatore e chiave primaria
Matricola               Testo
AnnoRiferimento    Numerico
Causale                  Numerico
GiorniFerie             Numerico
dove Causale può assumere il valore 1 per le ferie residue degli anni
precedenti all'AnnoRiferimento, il valore 2 per le ferie spettanti per
l'AnnoRiferimento e 3 per le ferie usufruite relative all'AnnoRiferimento.
La causale 1 la userai solo una volta per dipendente al momento che crei la
tabella; la tabella sarà di tipo storico e i suoi record non andranno mai
cancellati, neppure quelli degli anni precedenti. Su di essa non dovrà
essere effettuata alcuna elaborazione a fine hanno; ad inizio anno dovranno
essere invece inseriti per ogni dipendente i record con Causale 2.
Le due tabella saranno in relazione uno-a-molti in base ai relativi campi
Matricola.
Creati una query che abbia il seguente codice SQL:
SELECT tblFerie.ID, tblFerie.Matricola, tblFerie.AnnoRiferimento,
tblFerie.Causale, tblFerie.GiorniFerie
FROM tblFerie
WHERE (((tblFerie.AnnoRiferimento)=Year(Date())) AND ((tblFerie.Causale)=3))
ORDER BY tblFerie.Matricola, tblFerie.AnnoRiferimento;
Creati una maschera principale che abbia come origine record tblAnagrafica;
in questa maschera inserisci una sottomaschera che abbia come origine record
la query di cui sopra. Nell'intestazione della maschera inserisci una
casella combinata non associata chiamata MiaCombo che abbia due colonne di
cui la prima non sia visibile; la casella combinata deve avere come origine
riga il seguente codice SQL:
SELECT DISTINCTROW tblAnagrafica.Matricola, [Cognome] & " " & [Nome] AS
CognomeNome
FROM tblAnagrafica
ORDER BY [Cognome] & " " & [Nome];
A fronte dell'evento "Dopo aggiornamento" della casella combinata esegui il
seguente codice VBA:
Private Sub MiaCombo_AfterUpdate()
Me.Filter = "Matricola = '" & Me!MiaCombo & "'"
Me.FilterOn = True
End Sub
Nella maschera principale inserisci una casella di testo non associata
chiamata ResiduoAnniPrecedenti e nella sua origine controllo scrivi:
= Nz(DSum("GiorniFerie"; "tblFerie"; "Matricola = '" & [Matricola] & "'  And
AnnoRiferimento <= " & Year(Date()) & " And Causale = 1"); 0) +
Nz(DSum("GiorniFerie"; "tblFerie"; "Matricola = '" & [Matricola] & "'  And
AnnoRiferimento < " & Year(Date()) & " And Causale = 2"); 0) -
Nz(DSum("GiorniFerie"; "tblFerie"; "Matricola = '" & [Matricola] & "'  And
AnnoRiferimento < " & Year(Date()) & " And Causale = 3"); 0)
Nella maschera principale inserisci anche una casella di testo non associata
chiamata SpettantiAnnoInCorso e nella sua origine controllo scrivi:
= Nz(DSum("GiorniFerie"; "tblFerie"; "Matricola = '" & [Matricola] & "'  And
AnnoRiferimento = " & Year(Date()) & " And Causale = 2"); 0)
Nella maschera principale inserisci anche una casella di testo non associata
chiamata ResiduoAnnoInCorso e nella sua origine controllo scrivi:
= [ResiduoAnniPrecedenti] + [SpettantiAnnoInCorso] - Nz(DSum("GiorniFerie";
"tblFerie"; "Matricola = '" & [Matricola] & "'  And AnnoRiferimento = " &
Year(Date()) & " And Causale = 3"); 0)
A questo punto apri la maschera principale e seleziona dalla casella
combinata il nominativo di un dpendente; nel corpo della maschera principale
visualizzerai i data anagrafici del dipendente selezionato, le sue ferie
residue dell'anno precedente, le ferie spettanti dell'anno in corso e le
ferie residue dell'anno in corso; nella sottomaschera avrai il dettaglio
delle ferie usufruite relative all'anno in corso.
Spero che sia quello che ti serviva.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Spero che sia quello che ti serviva.
Come al solito sei stato formidabile per il dettaglio delle spiegazione!!!!
metterò subito in pratica i tuoi consigli e vedrò lo sviluppo dello stesso.
ti faroò sapere!
grazie e.......saluti roma :-))
luigi


 luigi


Roberto da casa ha scritto:



















Robe'
fino alla creazione della query ci sono arrivato, ma poi alla casella
combinata miacombo mi sono bloccato, anche perchè la maschera principale,
dopo una prima apertura non apre la maschera e da errore.
una mia idea è: (e non chiamarmi paraculo) non potresti mettere il file
sul sito comune? :-)) dato che non oso chiederti di mandarmelo in privato?
grazie!


mi dici anche con quale versione di access devo farlo dato che con access
xp non ci riesco?



Sei fortunato avevo fatto anch'io il db suggerito da Roberto per esercizio.
guarda la posta.
Daniele

 xp non ci riesco?
Spero che tu abbia risolto con il database che ti ha inviato cidi, in caso
contrario rifatti vivo.
