Condividi tramite

Funzione dSum

Anonimo
2019-04-07T19:13:47+00:00

Salve a tutti

in un campo di una maschera sto utilizzando la funzione DSum per poter sommare i dati di un campo di una tabella seguendo determinati criteri.

La Query (Q_SCAD_DATAPGVUOTA] estratta dalla tabella contiene i seguenti una serie di CAMPI tra i quali [IMPORTO]  che è la parte "Espressione" della funzione DSum, poi ci sono campi con Date, tipo di pagamento ecc.

Tra i vari Campi ce ne uno che contiene i nomi delle banche, questi nomi sono anche riportati in una tabella chiamata appunto BANCHE.

Ho scritto la funzione seguendo questo criterio:

=DSum(" [Q_SCAD_DATAPGVUOTA]![IMPORTO] ";"[Q_SCAD_DATAPGVUOTA]";" [Q_SCAD_DATAPGVUOTA]![TIPO] = 'BONIFICO' AND [Q_SCAD_DATAPGVUOTA]![CLIFOR] ='CLIENTE' AND  [Q_SCAD_DATAPGVUOTA]![DATASC]> [DEC1MES1] AND  [Q_SCAD_DATAPGVUOTA]![DATASC] <= [DEC2MES1] ")

Nella casella dove ho scritto la funzione di cui sopra (che funziona benissimo), vado a sommare gli IMPORTI che soddisfano i seguenti criteri:

[TIPO] = "BONIFICO"

[CLIFOR]=CLIENTE

[DATASC]>DEC1MES1] (in cui è ovviamente riportata una data)

[DATASC]<=[DEC2MES1] (altra data)

volendo aggiungere un ulteriore criterio per sommare solo gli importi dei clienti con Bonifici solo su una certa banca, ho cominciato ad aggiungere nella funzione DSum un ulteriore AND, solo che, il nome della banca lo volevo prelevare da una casella combinata (cboBANCA) che recupera i dati dalla tabella BANCHE, ho quindi aggiunto alla funzione che è diventata:

=DSum(" [Q_SCAD_DATAPGVUOTA]![IMPORTO] ";"[Q_SCAD_DATAPGVUOTA]";" [Q_SCAD_DATAPGVUOTA]![TIPO] = 'BONIFICO' AND [Q_SCAD_DATAPGVUOTA]![CLIFOR] ='CLIENTE' AND  [Q_SCAD_DATAPGVUOTA]![DATASC]> [DEC1MES1] AND  [Q_SCAD_DATAPGVUOTA]![DATASC] <= [DEC2MES1] AND [Q_SCAD_DATAPGVUOTA]![BANCA] = [cboBANCA] ")

purtroppo non viene più visualizzato alcun dato.

Qualcuno sa dirmi dove sbaglio?

Grazie per la collaborazione

Ciro

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

Anonimo
2019-04-08T10:12:09+00:00

ciao Ciro,

ci mancano una serie di info per cui vado a rigor di logica.

Suipponendo che la cbobanca abbia questa origine riga :

SELECT Banche.IDbanca, Banche.ISTITUTO FROM Banche;

con colonna associata l'id numerico ed invece la query  impostata nella form estragga il testo, devi impostare la dsum in modo che estragga la colonna 1 e non la 0.

Oltre a questo se preferisci visualizzare il totale dell'importo indipendentemente che una selezione sia stta effettuata prova come segue :

=IIf(IsNull([cboBanca]);DSum("IMPORTO";"Q_SCAD_DATAPGVUOTA";"[TIPO] = 'BONIFICO' AND CLIFOR ='CLIENTE'");DSum("IMPORTO";"Q_SCAD_DATAPGVUOTA";"[TIPO] = 'BONIFICO' AND CLIFOR ='CLIENTE' and banca='" & [cboBanca].Column & "'"))

non ho inserito tutti criteri, solo quelli salienti.

Ovviamente se selezioni dalla combo una banca il valore dell'importo totale visualizzato sarà corripondente alla banca selezionata.

HTH.

Ciao, Sandro.

ps occhio a virgolette ed apici….spesso ingannano…!

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2019-04-08T08:53:53+00:00

    Grazie Arianna di aver risposto, avevo già letto l'articolo che mi hai linkato ma... non ho trovato la soluzione al mio problema

    Grazie ancora

    Ciro

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-04-08T08:52:44+00:00

    Ciao Sandro

    si il programma è quello dei filtri di qualche giorno fa ma la form è un'altra, in pratica la form riprende i dati dalla query "Q_SCAD_DATAPGVUOTA", derivata direttamente dalla tabella "SCADENZARIO", e crea una pianificazione finanziaria proiettata a 5 mesi.

    Ho quindi usato la funzione DSum per selezionare i dati da sommare che rispettano tutta una serie di criteri e, devo dire che funziona perfettamente. Il problema nasce quando decido di utilizzare come criterio anche la "BANCA" che, ovviamente vorrei scegliere direttamente nella form attraverso una casella combinata.

    Tale casella (cboBANCA), acquisisce i dati dalla tabella "BANCHE", di conseguenza, nella funzione DSum, uno dei criteri che vado ad adottare è:

    =DSum("...….AND [Q_SCAD_DATAPGVUOTA]![BANCA] = [cboBANCA] ") ma la casella riporta null, ovvero una casella vuota.

    Dove commetto l'errore?

    Ciao e grazie ancora

    Ciro

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2019-04-07T21:20:33+00:00

    Buongiorno

    Mi chiamo Arianna, consulente indipendente e sono qui ad aiutarti per risolvere il problema.

    La funzione non funziona? Oppure quale problema riscontri?

    Ti allego un link nel quale potrai verificare le impostazioni da te applicate:

    https://support.office.com/it-it/article/funzio...

    Cordialmente,

    Arianna

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2019-04-07T19:28:54+00:00

    ciao Ciro,

    se la somma dell'importo da come capisco lo stai visualizzando in una form, nel pie pagina della form hai provato semplicemente a creare una textBox non associata ed inserire nell'orogine riga =Somma(importo) ?

    In più se la form è quella con filtro di qualche giorno fa, in seguito all'applicazione del filtro visualizzerai solo l'importo totale relativo al filtro impostato.

    Facci sapere.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento