DCount con 2 o più condizioni ( basato su query).

Anonimo
2022-07-19T07:45:05+00:00

Buongiorno a tutti.

Ho al seguente situazione:

Ho la seguente query:

SELECT DISTINCT TblAnagrafica.Matricola, TblAnagrafica.Grado, TblAnagrafica.Cognome, TblAnagrafica.Nome, DLookUp("Categoria","TblGradi","[Grado]='" & [Grado] & "'") AS Categoria, TblAnagrafica.Data_Nascita, TblAnagrafica.Sesso, TblAnagrafica.In_Forza, TblArrivo_Partenza.Arrivo_Nucleo, TblArrivo_Partenza.Reparto_Assegnazione, TblArrivo_Partenza.Articolazione_Assegnazione, TblArrivo_Partenza.Gruppo_Assegnazione, TblArrivo_Partenza.Data_Nuovo_Incarico, TblArrivo_Partenza.Tipo_Nuovo_Incarico, TblResidenza.Citta, TblResidenza.Indirizzo, TblArrivo_Partenza.Data_Ass_Sezione, TblResidenza.Provincia, TblResidenza.Data_Variazione

FROM (TblAnagrafica INNER JOIN TblResidenza ON TblAnagrafica.ID_Anagrafica = TblResidenza.ID_Anagrafica) INNER JOIN TblArrivo_Partenza ON TblAnagrafica.ID_Anagrafica = TblArrivo_Partenza.ID_Anagrafica

WHERE (((TblAnagrafica.In_Forza)=True) AND ((TblArrivo_Partenza.Arrivo_Nucleo) Is Not Null) AND ((TblResidenza.Data_Variazione)=(Select Max(A.Data_Variazione) From tblResidenza As A Where A.Id_Anagrafica = tblResidenza.[ID_Anagrafica])))

ORDER BY TblAnagrafica.Cognome;

Ho creato un Report dalla seguente query e dovrei ottenere, con diversi Dcount il conteggio dei dipendenti che sono in forza ai diversi uffici ed appartengono alle 4 diverse categorie :UFFICIALI;ISPETTORI;SOVRINTENDENTI e APPUNTATI.

Ho creato la prima funzione :

=DCount("*";"Query_Ricerca_Indirizzo";"[Gruppo_Assegnazione]= ""Ufficio Collocamento""" And "[CATEGORIA]=""UFFICIALI""")

in questo modo mi conteggia tutti i dipendenti censiti e non quelli che rientrano nelle due condizioni previste dalla funzione ed indicati in grassetto.

ho provato pure in quest'altro modo:

= DCount("*"; "Query_Ricerca_Indirizzo"; "[Gruppo_Assegnazione] = '" & Ufficio Comando & "' And [CATEGORIA] = '" & UFFICIALI & "'")

ed ottengo questo messaggio di errore:

Ad ora, provando in più modi, non ottengo il risultato sperato,

In realtà dovrei ottenere un numero pari a 27 Ufficiali che sono in forza all'Ufficio Collocamento.

Chiedo il vostro consiglio su come perfezionare la presente funzione per poter ottenere il conteggio esatto basato su più condizioni e poterlo estendere ad altre condizioni di conteggio.

Spero di essere stato chiaro.

Ciao, Nicola

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
domenico laurenza 9,900 Punti di reputazione Moderatore volontario
2022-07-20T15:59:56+00:00

Ciao Nicola,

questa dovrebbe essere la formula che cercavi:

=DCount("*";"QueryForzaOrganica";"[Gruppo_Assegnazione]= 'Ufficio Comando' And  [CATEGORIA]= 'UFFICIALI'")

Se ho capito il problema, ho pochi dati per i test, forse potresti utilizzare una query del genere per estrarre tutti i dati con una sola query:

TRANSFORM Count(TblAnagrafica.ID_Anagrafica) AS ConteggioDiID_Anagrafica

SELECT TblArrivo_Partenza.Gruppo_Assegnazione

FROM (TblAnagrafica LEFT JOIN TblArrivo_Partenza ON TblAnagrafica.ID_Anagrafica = TblArrivo_Partenza.ID_Anagrafica) INNER JOIN TblGradi ON TblAnagrafica.Grado = TblGradi.Grado

WHERE (((TblAnagrafica.In_Forza)=True))

GROUP BY TblArrivo_Partenza.Gruppo_Assegnazione

PIVOT TblGradi.Categoria;

La report, se utilizzi questa query, dovrebbe essere completamente rivista.

Facci sapere

Mimmo

La risposta è stata utile?

0 commenti Nessun commento

14 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2022-07-20T16:40:29+00:00

    Grazie mille, Mimmo. Provo quanto mi suggerisci e ti informo.

    Ciao, Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2022-07-20T14:08:04+00:00

    Ciao Mimmo, grazie.

    La query l'ho impostata come da tue indicazioni.

    Ora, nelle varie caselle di testo non associate, evidenziate in giallo dovrei inserire molte Dcount con diversi criteri di ricerca.

    Immagine

    Immagine

    Le varie Dcount devo agire sempre sui due campi in giallo, per esempio, in una casella di testo non associata ( nel Report), evidenziate in giallo ( poi l'abbino io nella casella ti testo esatta per il mio database) occorre che mi conteggi quanti APPUNTATI ci sono nel Gruppo_Assegnazione.

    Io continuo a fare come tu mi hai indicato in questo modo, ma ottengo sempre questo messaggio:

    Immagine

    =DCount("*";"QueryForzaOrganica";"[Gruppo_Assegnazione]= '" & Ufficio Comando & "' And [CATEGORIA]= '" & APPUNTATI & "'")

    =DCount("*";"QueryForzaOrganica";"[Gruppo_Assegnazione]= '" & Ufficio Comando & "' And [CATEGORIA]= '" & [APPUNTATI] & "'")

    P.S. la query in grassetto è il nuovo nome che ho dato dopo avermi postato il giusto Sql.

    Ti ringrazio tantissimo, Mimmo.

    Ciao, Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2022-07-20T13:06:47+00:00

    Ciao Nicola,

    la query QueryProva che hai condiviso presenta la colonna seguente che non può richiamare se stessa

    ContaUff: DCount("*";"QueryProva";"[CATEGORIA]= '" & [UFFICIALI] & "'")

    Quindi per proseguire l’ho eliminata.

    La colonna:

     Categoria: DLookUp("Categoria";"TblGradi";"[Grado]='" & [Grado] & "'")

    È perfettamente inutile perché ti basta aggiungere la tabella tblGradi alla query per estrarre la Categoria.

    Quindi la query si riduce al seguente codice Sql

    SELECT TblAnagrafica.Grado, TblAnagrafica.Matricola, TblAnagrafica.Cognome, TblAnagrafica.Nome, TblAnagrafica.In_Forza, TblArrivo_Partenza.Gruppo_Assegnazione, TblGradi.Categoria

    FROM (TblAnagrafica INNER JOIN TblArrivo_Partenza ON TblAnagrafica.ID_Anagrafica = TblArrivo_Partenza.ID_Anagrafica) INNER JOIN TblGradi ON TblAnagrafica.Grado = TblGradi.Grado

    WHERE (((TblAnagrafica.In_Forza)=True));

    Nella report ReportForzaOrganica non so dove e cosa devi impostare.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2022-07-20T10:41:25+00:00

    Ciao Mimmo, sono riuscito a creare un db di prova a questo link:

    https://1drv.ms/u/s!Ali6qqOH3dOAziKhZ6CCgzfOdz0h

    La query di prova dove ho creato la Dcount si chiama QueryProva.

    Il report sul quale dovrei ottenere i risultati finali con le varie Dcount, si chiama ReportForzaOrganica.

    Attendo un tuo gentile riscontro.

    Ciao, Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento