Codice o macro per seguire query

di il
11 risposte

Codice o macro per seguire query

Ciao, parto con un nuovo topic per una esigenza diversa, il database è sempre quello relativo al topic QUERY SU BASE TRIMESTRALE
(https://www.iprogrammatori.it/forum-programmazione/access/query-base-trimestrale-t37326.html)
Quello che succede è mi serve di esportare in un report il NUMERO di SOGGETTI che sono stati in trattamento nel trimestre appena finito(e a fine anno il report sara annuale) che risponde a detrmionate caratteristiche, tipò fascia d'eta, titolo di studio, occupazione...
Il numero ottenuto deve essere divise per soggetti femmina, soggetti maschio e soggetti totali

Ora sto cercando di capire come impostare il pannello che lanci questi report

Parto dalle query gia create, due per ogni parametro, ad esempio query per titolo di studio per femmine e query per titolo di studio per maschi
e cosi via
Tutte queste query hanno solo 2 variabile. La data di inizio trattamento e la data fine trattamento, grazie alle quali riesco ad individuare i sogggetti trattati nel trimestre

Nel pannello vorrei 5 bottoni
4 bottoni che mi lancino tutte le query per il ogni trimestre(a seconda del pulsante scelto) e mi apra il report conseguente con tutti i conteggi
Il 5 che faccia lo stesso ma sull'anno
Quindi col pulsante dovrei passare i due valori relative alle date e poi lanciare tute le query relative
Per quanto coonosco io posso farlo solo con macro , (dove pero non so bene com epassare i due dati
Immagino si possa fare con VB, ma avendone scarsa conoscenza per me sarebbe difficile
Che ne dite, quale strada possibile?


per semplificare potrei creare delle query con le date dei trimestri gia pronte, ma questo significherebbe moltiplicare tutte le query x 4 ne senso di numero di query da coistruire...una quantità enorme
grazie

11 Risposte

  • Re: Codice o macro per seguire query

    1. Tu predisponi tutte le query che ritieni utili (non entro nei dettagli)
    2. Puoi risolvere con un semplice comando, puoi scegliere tra macro o VBA:
    2.1 via macro: azione macro ApriQuery (con tutti i suoi argomenti)
    https://support.office.com/it-it/article/azione-di-macro-apriquery-d3f1eed8-9cc4-4962-9039-f4ae5966ccf5
    2.2 via VBA: DoCmd.OpenQuery (con tutti i suoi argomenti)
    https://docs.microsoft.com/en-us/office/vba/api/access.docmd.openquery
    3. Queste azioni di apertura query le fai sottomettere alle azioni di pulsante "Su clic"
  • Re: Codice o macro per seguire query

    Ok quindi in termini di "pesantezza" di calcolo se uso macro o vba non cambia molto?

    poi un altra cosa queste macro o vb lanceranno delle query ognuna delle quali mi restituisce un numero, il conteggio dei valori presenti per un determinato filtro
    Questo numero lo ottengo con una prima query che selezziona e raggruppa eventuali duplicati
    la seconda query li conta
    Vorrei farlo tutto in un unica query ma ancora non so come

    In ogni caso il punto è che non necessito di aprirle le query ma ottenere da ognuna un numero che poi apparira nel report che invece si aprira
    Ora ho fatto una prova
    Questa è la query che conta
    SELECT Count(dateTQ2.ID) AS ConteggioDiID
    FROM dateTQ2;
    
    Sul report ho impostato una casello di testo il cui valore è
    =[dateTQ Query]![ConteggioDiID]
    pero il risultato che viene è NOME?ho provato a inserire nella tabella origine dati la query stess, ma poi mi chiede i valori di filtro che invece gli ho gia passato attraverso la maschera da cui lancio l operazione
    Come faccio a trasferire i risultati di tutte le query(ripeto, un numero, che sarebbe un conteggio, per ogni query, nel report?
  • Re: Codice o macro per seguire query

    Non cambia nulla. Se riesci a usare VBA è meglio.
  • Re: Codice o macro per seguire query

    Ok sembra che tutto funzioni
    ho usato il docmd per aprire il report che contiene il valore
    sono quasi alla fine del processo primario, si tratta poi di creare tutte le query personalizzate per i diversi filtri

    a tale propostio, ruibadisco la domanda di prima
    mettere in una sola query quello che faccio in due query

    questa mi seleziona i record univoci
    SELECT DISTINCT date_trattamenti.ID
    FROM date_trattamenti
    GROUP BY date_trattamenti.ID, date_trattamenti.dal, date_trattamenti.al
    HAVING (((date_trattamenti.dal) Between [Maschere]![Ricerche]![datada] And [Maschere]![Ricerche]![dataa])) OR (((date_trattamenti.al) Between [Maschere]![Ricerche]![datada] And [Maschere]![Ricerche]![dataa]));
    

    questa li conta
    SELECT Count(dateTQ2.ID) AS ConteggioDiID
    FROM dateTQ2;
    
    dove dateTQ2 è la query di prima

    è possibile riunire tutto in un unica?
  • Re: Codice o macro per seguire query

    Se impieghi direttamente la seconda query (di conteggio) dal momento che fa riferimento alla prima query ("dateTQ2") verrà richiamata in modo automatico (a ritroso) in modo da offrire il risultato conclusivo basato sui dati precedenti.
  • Re: Codice o macro per seguire query

    Si quello che volevo dire è che vorrei creare meno query
    in questo modo devo creare 2 query per ognuno dei paramteri di ricerca di cui ho bisogno
    dal momento che sono molti questi parametri, dico a occhio una cinquantina, ma anche di piu
    questo significherebbe creare 50 quesry di selezione e 50 query di conteggio
    farne una che fa tutto dimezzerebbe il numero di query da creare!

    p.s. quella che hai visto è solo il primo criterio di selzione, basato sul tempo, l unico criterio variabikle

    poi una volta impostato il tempo dovro avere il numero di utenti divise per fascie di eta, il numero di utenti divisi per titolo di studio, per occupazione, e ognuna diviso per sesso
    capisci che sono tantissime query...
    oppure impostare il conteggioa nel docmd con cui apro i report? o qualcosa del genere
  • Re: Codice o macro per seguire query

    Allora sono riuscito a immetere nel report il conteggio della query DATETQ2, senza usare la query che li conta quindi
    Già questo è un passo avanti notevole
    Forse sarebbe ppiù pulito farlo comunque nella query di partenza, cosi da non avere un report pieno di cose
  • Re: Codice o macro per seguire query

    Devi analizzare se puoi suddividere l'insieme delle query per le parti comuni mentre per quelle variabili gestirle attraverso parametri.
    Comunque, valuta che se devi ottenere un certo numero di risultati finali tale operazione la puoi porre in maschera/report che abbia al suo interno (con sotto-maschere o sotto-report) le relative query con i calcoli in modo che attivando la form/report si ottenga la presentazione conclusiva.
  • Re: Codice o macro per seguire query

    Le parti comunu sono
    1 periodo temporale, la ricerca avviene er trimestre
    2 suddivisione per sesso

    Di qui in poi ci sono tanti parametri da aggiungere
    fascie di eta (circa 5)
    titolo di studio (5 valori)
    occupazione(6 valori)
    eta prima assunzione (5 valori)
    sostanza di assunzione(4 valori
    2 sostanza di assunzione( 4 valori)
    e qualcos altro

    ora cio che devo farem, da un pannello di controllo è impostare il trimnestre di riferimento ed avere tutte le statische di cui sopra, il numero di rilevanze, divise per maschio, femmina e totali
    Mi servono solo questa serie di numeri

    ps
    comunque il count nel report non funziona, appena metto altre query il conteggio sballa
  • Re: Codice o macro per seguire query

    Stefanocps: mi raccomando, il discorso ha preso tutta un'altra piega e parla di tutt'altro rispetto al titolo con il quale hai iniziato. Apri nuovi thread, quanti ne vuoi, non ci sono limiti.
  • Re: Codice o macro per seguire query

    Ok
Devi accedere o registrarti per scrivere nel forum
11 risposte