Clausola Having Generatore di espressioni

di il
12 risposte

Clausola Having Generatore di espressioni

Ciao a tutti,
è possibile inserire la clausola Having nel generatore di espressione di un report qaundo si usa la funzione di aggregazione Somma?
Tipo:

=Somma([PREZZO]/100)[IVA]) HAVING [PREZZO] <> 100 ....

Grazie

12 Risposte

  • Re: Clausola Having Generatore di espressioni

    Ti risulta che HAVING sia una Funzione del generatore di Espressioni...?

    [HAVING] è una Clausola del linguaggio SQL.

    Quello che chiedi si ottiene in altri modi ma a seconda dell'esigenza si usa quello più adatto... e tu non hai spiegato l'esigenza ma solo l'intenzione.
  • Re: Clausola Having Generatore di espressioni

    Era sufficiente un SI o NO saputa la risposta.
  • Re: Clausola Having Generatore di espressioni

    No, è sufficiente se la risposta serve solo ad una persona non interessata a migliorare... ma siccome il Forum serve a MOLTI e molti leggono i 3D per imparare, la filosofia è di rispondere argomantando.

    Tu poi leggi solo quello che ti serve e lascia che chi risponde lo faccia con l'intento più alto di contribuire al Forum.
  • Re: Clausola Having Generatore di espressioni

    Concosci la clausola Having di sql per una una funzione di aggregazione?
    Conosci la sintassi del generatore di espressione della maschera di access?
    Se si puoi rispondere alla domanda:
    è possibile inserire la clausola Having nel generatore di espressione di un report quando si usa la funzione di aggregazione Somma?
  • Re: Clausola Having Generatore di espressioni

    Fai attenzione... e rileggi, ti ho già risposto mi pare di essere stato CHIARISSIMO.
    Cosa non hai capito quando ho detto che la Clausola "Having" è sintassi SQL...?

    Per un utente BASE di Access è normale sapere che non consente di scrivere sintassi SQL ma solo sintassi di funzioni VBA... quindi la risposta era tanto ovvia quanto scontata.

    Lo conosci il generatore di Espressioni...?

    Ho poi aggiunto che nei Report si gestisce in altro modo..., ma se spieghi l'esigenza si può passare oltre... di questo cosa non ti è chiaro...?

    Tuttavia se vuoi perdere 2 minuti per insegnarmi le risposte alle 2 domande io ascolto... sai c'è sempre da imparare... anche dopo 20anni di uso del Sw nei quali non ho mai usato nè generatore di espressioni nè la clausola Having ...!
  • Re: Clausola Having Generatore di espressioni

    Ma scusa con tutta la buona volontà ma se dici:
    non ho mai usato nè generatore di espressioni nè la clausola Having
    come fai a rispondere alla domanda con cognizione di causa?
    Dovresti dire: mi dici cosa sono il generatore di espressioni e la clausola Having?
    Il punto è poi che non mi interessano soluzioni alternative o ibridi ma quella indicata sopra.
    Perche? Ti rispondo
    In una casella di testo devo mettere la somma della colonna di una tabella escludendo alcuni record specifichi.
    1. da codice faccio un loop escludendo gli scarti. Fatto
    2. uso da mashera la funzione di aggregazione da origine di controllo con il generatore di espressione escludendo pero gli scarti. In SQL si può usare la clausola Having. Nel generatore di espressione forse no ma non credo.
    Meglio la 2 ma bisogna conoscere bene la sintassi usata nel generatore di espressione.
  • Re: Clausola Having Generatore di espressioni

    Speravo che la tua sagacia arrivasse a farti capire che era sarcasmo il mio...!

    Forse qualche cosa di mio gira nel WEB da 20anni in moltissimi forum e newsGroup...

    Mi pare che tuttavia non ti sia chiaro... NON SI PUO' USARE HAVING nel generatore di espressioni in quanto sono 2 cose completamente distinte.
    Il Generatore di Espressioni è semplicemente un Tool per accedere alle funzionalità del VBA(Access-Client) che nulla ha a che vedere con la parte di Database(JET) di cui il linguaggio SQL è parte.

    Quindi ribadisco che la domanda era sbagliata e la risposta è NO.

    Ora non si tratta di fare accrocchi... ma si fare le cose giuste che consentano di ottenere il risultato, solo che spesso si parte da un'errore di concetto...!

    Per risponderti... se nel Report hai dei Raggruppamenti, puoi inserire la TextBox con la Funzione Somma nella sezione del Ragruppamento... altrimenti devi escogitare un trucchetto da eseguire nell'evento Format della sezione Corpo(quella che valorizza i dati RECORD per RECORD)...
    In quell'evento puoi, andare ad effettuare la Somma INcrementale condizionata...
    
    Private Corpo_FOrmat(...... non ricordo i parametri)
       If CONDIZIONE=True then Me!txtTOT=me!txtTOT+Me!CampoTestoConValore
    End If
  • Re: Clausola Having Generatore di espressioni

    Sebbene la domanda fosse sbagliata la risposta era:
    NON SI PUO' USARE HAVING nel generatore di espressioni
    volendo essere più sagaci anche: NO

    Per il resto del 3D buona l'idea:
    Private Corpo_FOrmat(...... non ricordo i parametri)
    If CONDIZIONE=True then Me!txtTOT=me!txtTOT+Me!CampoTestoConValore
    End If
    perchè risparmi un accesso a DB non facendo loop ma si tratta sempre di codice da richiamare da evento.
  • Re: Clausola Having Generatore di espressioni

    Ripeto che la mancanza del concetto di base è tua... io ho dato una risposta TECNICA scontata... devi progredire.

    Per il resto è trasparente... l'evento viene GENERATO sempre... ad ogni riga...!
  • Re: Clausola Having Generatore di espressioni

    Senza dubbio devo progredire anche se non ho le tue ambizioni in campo Access.
    Tu invece a mio avviso devi progredire nel modo di porti e rispondere ai 3D.
    In ogni caso al seguente link:
    http://office.microsoft.com/it-it/access-help/esempi-di-espressioni-HA010096295.aspx
    trovi la possibilità di eseguire una somma nel generatore di espressione escludendo dei valori.
    Ho scritto:
    Tipo:

    =Somma([PREZZO]/100)[IVA]) HAVING [PREZZO] <> 100 ....
    Forse con dei modi migliori e vista la tua ventennale esperienza in campo Access avresti anche potuto capire.
  • Re: Clausola Having Generatore di espressioni

    Fai attenzione a 3 cose...
    1) L'esperienza nei FORUM non è di docenza scolastica, ma di tecnica di sviluppo... quindi non è detto io, o chi risponde, si debba essere un buon docente.

    2) Un minimo di BASI serve averle, perchè il FORUM non è un CORSO ONLINE, quindi è il richiedente che deve avere il miglior modo di interfacciarsi con un mondo che è forzatamente tecnico... se volevi risposte scolastiche da un docente facevi un CORSO a pagamento, li avevi un SIMPATICO E DISPONIBILE docente che rispondeva con il massimo dell'educazione...!

    3) Il link che porti ad esempio è corretto, ma non la considerazione... la funzione DSUM che consente la condizione filtrante è TUTT'altro concetto... e non si basa minimamente sui dati pertinenti nel REPORT... e come ribadisco HAVING non si può usare.

    Nella sostanza prima di fare una scelta tecnica, e quella che credo tu abbia fatto è una PEZZA non valida, serve STUDIARE perchè le funzioni di AGGREGAZIONE SUI DOMINI(DSUM/DLOOKUP/DMAX....) sono da usare con le PINZE...!

    Il tutto è a prescindere dalle ambizioni... perchè chi poi non ha ambizioni è inutile che cerchi di fare cose per le quali non è portato.
  • Re: Clausola Having Generatore di espressioni

    L'educazione prescinde da ogni contesto.
    Riporto l'origine del 3D:
    Ciao a tutti,
    è possibile inserire la clausola Having nel generatore di espressione di un report qaundo si usa la funzione di aggregazione Somma?
    Tipo:

    =Somma([PREZZO]/100)[IVA]) HAVING [PREZZO] <> 100 ....

    Grazie
    Se devo utilizzare un evento come mi hai indicato senza avere l'ambizione di usare le funzioni di aggregazione come DSum non c'è possibilità di progresso e quindi il valore aggiunto del 3D è nullo.
Devi accedere o registrarti per scrivere nel forum
12 risposte