Dcount con filtro date

di il
14 risposte

Dcount con filtro date

Buongiorno a tutti, ho un report semplice di access con presenze mensili.
Il report all'apertura mi chiede un filtro date per comodità e per report mensili. Fin qui tutto bene se non che la dcount relativa al numero delle presenze effettuate in Campagna e in magazzino non tiene conto del filtro dati all'apertura e mi restituisce tutti i record trovati nella tabella presenze.
Come potrei risolvere?
db caricato qui:
http://www.filedropper.com/presenze

14 Risposte

  • Re: Dcount con filtro date

    Immagino/spero tu abbia una QUERY sottostante il report. Tale query deve essere esplicitata DOPO l'inserimento del "filtro parametro" (così mi pare di capire). Quindi è soltanto dopo che puoi sapere il reale valore di DCount.
  • Re: Dcount con filtro date

    Ciao Osvaldo si ci sta una select sulla tabella presenze, anche richiamando una query specifica chiaramente uguale ottengo però sempre lo stesso errore anzi mi da addirittura #errore.
    Hai avuto modo di aprire il file? dove sbaglio???
  • Re: Dcount con filtro date

    radeon79 ha scritto:


    Come potrei risolvere?
    db caricato qui:
    http://www.filedropper.com/presenze
    Hai avuto modo di aprire il file? dove sbaglio???
    Non è nello spirito del forum aprire database e risolvere. Sforzati di raccontare testualmente il problema. Cita sempre nomi propri di tabelle, query, campi e spiega il problema relativo ad essi...

    radeon79 ha scritto:


    ci sta una select sulla tabella presenze
    Che vuol dire? Sta su un campo a uso casella combinata? Racconta la visualizzazione struttura query della SELECT (a me più familiare...puoi allegare una immagine screenshot), oppure scrivi la SELECT SQL (copia/incolla)
  • Re: Dcount con filtro date

    Mai pensato e mai voluto che venisse risolto da Voi. Se fosse stato inteso così me ne scuso.
    Cerco di farmi capire.

    All'apertura del report viene eseguita questa select:
    SELECT *
    FROM Dipendenti LEFT JOIN Presenze ON Dipendenti.ID = Presenze.IdDipendente
    WHERE (((Presenze.DataPresenza) Between [data Iniziale] And [Data Finale] And (Presenze.DataPresenza) Is Not Null));

    Inserisco il filtro dati che mi appare correttamente all'avvio:
    Esempio 01/09/2021 e 15/09/21 e il report mi restituisce correttamente il numero delle presenze effettuate in quel periodo.
    Nei riepiloghi in basso vorrei però avere il numero delle presenze effettuate in una determinata sede.
    Il campo in questione si chiama LuogoPresenza di tipo testo nella tabella Presenze.

    Digitando =DCount("LuogoPresenza";"Presenze";"[LuogoPresenza] = 'Campagna' AND [IdDipendente] = " & [ID])

    Mi restituisce purtroppo il numero di TUTTE le presenze effettuate nel luogo Campagna a prescindere dal filtro data effettuato in precedenza.
  • Re: Dcount con filtro date

    radeon79 ha scritto:


    Nei riepiloghi in basso vorrei però avere il numero delle presenze effettuate in una determinata sede.
    Direi che la query deve prevedere anche il filtro su una determinata sede, oltre alle DataIniziale e DataFinale. Dopo di che, nel piè di pagina report puoi mettere una casella di testo che calcola il Conteggio (Count), leggi qui
    https://support.microsoft.com/it-it/office/funzione-conteggio-6923a7b3-aa59-4027-ada6-d774525a4009
    Qui puoi leggere le osservazioni sul confronto tra DCount e Count
    https://support.microsoft.com/it-it/office/funzione-dcount-f6b5d78b-ad0b-4e42-be7a-11a64acbf3d3
  • Re: Dcount con filtro date

    Eh ma così facendo avrei un riepilogo incompleto se ho inteso quanto mi dici. Il report è questo in allegato. Se filtrassi ad esempio per Campagna a monte vedrei un solo record in griglia come in immagine ma non voglio questo. I record ci devono stare tutti.
    Oltretutto dovrei fare due report separati per sede e non è il caso.
    Allegati:
    25421_82fed3938f9c16e00e3b4479d51a7d97.png
    25421_82fed3938f9c16e00e3b4479d51a7d97.png
  • Re: Dcount con filtro date

    Forse c'è una soluzione più elegante, ma io riesco a ragionare per più piccoli passi:
    1. Crea una nuova query che poggia sulla QueryParametrica (quella delle date) e abbia un filtro su "Campagna": QueryCampagna. Idem un'altra query con filtro su "Magazzino": QueryMagazzino.
    2. Nel report crei 2 caselle di testo dove dentro ci scrivi rispettivamente:
    =DCount("*";"QueryCampagna")
    =DCount("*";"QueryMagazzino")

    P.S.: ...mmhhh...temo che QueryCampagna e QueryMagazzino ti chiederanno nuovamente di inserire DataInizio e DataFine. Per risolvere questo inconveniente sarebbe meglio se tu avessi una piccola MascheraX con 2 caselle di testo. Ci metti anche una etichetta dove spieghi cosa si deve digitare dentro, quindi digiti le 2 date. Poi tutte le query (anche QueryParametrica) dovranno fare riferimento ai rispettivi valori di [Maschere]![MascheraX]![DataInizio] e [Maschere]![MascheraX]![DataFine]
  • Re: Dcount con filtro date

    Ammetto di averci pensato alla soluzione della doppia query (che poi sarebbe addirittura quadrupla in quanto i luoghi possibili di lavoro sono addirittura 4) ma temevo appunto di dover essere costretto a digitare più volte la data e se me lo confermi tu che sicuramente sei più esperto di me sarà sicuramente così.....
    Immagina ad esempio uno scenario in cui si è lavorato sempre alla stessa parte e dover digitare 8 volte la data per nulla.....

    Vorrei evitare la soluzione form penso che esista (o almeno spero) un metodo diverso per poter fare quanto chiedo.
  • Re: Dcount con filtro date

    Scusa ma i Dcount a mio avviso non servono a nulla anzi tecnicamente, se ho ben inteso, sono proprio errati ed esattamente per i motivi che hai accennato...

    Si mette un controllo textbox per ogni riepilogo che serve nel piedipagina report e come origine controllo si crea una somma con contenuto il.controllo associato alle ore ai gg ed ai costi....

    Cosa mi sta sfuggendo...?
  • Re: Dcount con filtro date

    @Alex ha scritto:


    Cosa mi sta sfuggendo...?
    radeon79 vuole un "Conteggio in base a Campagna" e un "Conteggio in base a Magazzino" (se non ho capito male). Anche se 15 riferito a Magazzino...non ho capito da dove viene fuori.

    Per radeon79: non è che ti serve invece un DSum?
  • Re: Dcount con filtro date

    OsvaldoLaviosa ha scritto:


    @Alex ha scritto:


    Cosa mi sta sfuggendo...?
    radeon79 vuole un "Conteggio in base a Campagna" e un "Conteggio in base a Magazzino" (se non ho capito male).
    Quindi....? Somma il vore se il controllo vale Campagna altrimenti lo forza a ZERO e viceversa con Magazzino.
    =Somma(iif(controllo="Campagna";Controllodasommare;0))
    Stessa cosa per Magazzino ...
  • Re: Dcount con filtro date

    Mai avrei pensato alla IIf. Se funziona, si evitano altre query e DCount connessi. radeon79, segui il suggerimento di @Alex.
  • Re: Dcount con filtro date

    Sono ad un matrimonio (preferirei continuare con access.... ) Grazie di tutto proverò domani o lunedì e vi dico.
  • Re: Dcount con filtro date

    Buongiorno a tutti e buon inizio settimana.
    @Alex e @Osvaldo infinite grazie tutto ok con iif!
Devi accedere o registrarti per scrivere nel forum
14 risposte