Condividi tramite

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. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2022-07-19T18:53:35+00:00

    Sono senza PC e non l,'ho provata.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2022-07-19T18:45:35+00:00

    Ciao Mimmo, buona sera. Grazie per il tuo cortese riscontro. Domattina provo la tua soluzione e ti aggiorno.

    Ciao, Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2022-07-19T17:58:11+00:00

    Ciao,

    Proviamo con la prima

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

    Facci sapere

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2022-07-19T09:29:37+00:00

    A titolo informativo e di apprendimento, poichè ho letto che le funzioni sui domini devono essere utilizzate poco poichè rallentano tanto la loro esecuzione, in alternativa, potrebbe essere utile creare delle funzioni tipo la seguente ( trovata in rete e da adattare al mio scenario) per poter essere più veloci oppure è la stessa cosa?

    Public Function OrdersCount(ByVal strCountry As String, _ ByVal dteShipDate As Date) As Integer OrdersCount = DCount("[ShippedDate]", "Orders", _ "[ShipCountry] = '" & strCountry & _ "' AND [ShippedDate] > #" & dteShipDate & "#") End Function

    Attendo curiosa un vostro professionale parere sull'uso delle funzioni sui domini.

    Ciao, Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento