Dsum con criteri multipli

di il
3 risposte

Dsum con criteri multipli

Buongiorno,
Ho il seguente problema.
Devo fare un report che visualizzi giorno per giorno le ore lavorate da dipendenti (Ordinarie straordinarie). Inoltre devo evidenziare le ore prese di permesso, ferie, Malattia Visita medica etc.

Il mio DB è costruito nel seguente modo:
Ogni dipendente registra le sue ore sulle commesse ([CODICE]) in cui ha lavorato. Le Ferie, Malattie, Permessi sono delle "speciali" commesse sulle quali vengono registrate le ore "lavorate".

Nel mio report riassume tutte le ore lavorate (ordinarie e straordinarie) raggruppandole per Mese/anno e per dipendente. Sono riuscito ad evidenziare per singolo giorno le ore lavorate su queste speciali commesse, però avrei bisogno anche di fare la somma. Ho inserito nel pièdipagina del dipendente la funzione =DSum("[Totaleore]";"ELENCOLAVORAZIONIXPAGHE";"[STATO]=" & "'" & "FERIE" & "'") e funziona, ma mi restituisce ovviamente il totale delle ore lavorate da tutti i dipendenti per l'intero arco temporale del database.

Dovrei inserire un ulteriore criterio di ricerca nella funzione Dsum che tenga conto del raggruppamento per mese/anno e per dipendente. Ho provato ad inserire un nuovo criterio con AND ma no ha funzionato, evidentemente perchè sbaglio la sintassi...

Grazie per l'aiuto che vorrete darmi.

Andrea

3 Risposte

  • Re: Dsum con criteri multipli

    Proponici il Predicato corrispondente al criterio che hai usato, magari la sintassi possiamo verificarla meglio se ci dai un dato iniziale...
  • Re: Dsum con criteri multipli

    Avevo provato con:
    =DSum("[Totaleore]";"ELENCOLAVORAZIONIXPAGHE";"[STATO]=" & "'" & "FERIE" & "'" And "[Dipendente]=" & Report!Dipendente.Value And "[DATA]=" & Report!DATAGRUPPO.Value)

    dove DATAGRUPPO è : =Format$([Data];"mmmm yyyy")

    grazie, Andrea
  • Re: Dsum con criteri multipli

    Buongiorno, Andrea;
    credo Tu possa provare ad utilizzare la funzione “Ordinamento e raggruppamento” disponibile nella struttura dei Report.
    Questa funzione, opportunamente strutturata, Ti permette di ottenere delle somme parziali suddivise per Data, Nominativo Dipendente, imputazione (ore lavorate, ferie ecc.) e per Commessa; inoltre, solo alla fine del Report, puoi avere la somma di tutti i dati parziali. Personalmente, quando necessario, la utilizzo con buoni risultati.
    Utilizzando ACCESS 2000 il form dei totali parziali e per i totali globali è sempre =Somma([ORE]), dove [ORE] contine i tempi impiegati per ogni fase di avanzamento della Commessa.

    Cordiali saluti e buon lavoro.

    Nel caso non sia stato abbastanza esaustivo, sono a Tua disposizione.

    Giuseppe Guernieri
Devi accedere o registrarti per scrivere nel forum
3 risposte