Report su una sola riga in access

di il
10 risposte

Report su una sola riga in access

Ciao a tutti,
ho una query proveniente da due tabelle collegate una con anagrafica (nome, cognome ecc) la cui chiave il il codice fiscale e l'altra tabella con gli interventi retributivi sempre come chiave il codice fiscale (duplicati ammessi). Mentre la prima tabella il codice fiscale è univoco nella seconda ci possono essere piu' interventi (codice fiscale, tipo, anno, note).
Ora il mio problema è quello di creare un report in modo che per ogni riga di anagrafica venga inserita nella stessa riga il tipo e l'anno in modo univoco e spalmato su tre anni. Esempio di report che vorrei nelle varie combinazioni: (praticamente se c'è l'anno della tabella interventi vedo a che corrisponde e lo inserisco in riga se manca non scrivo nulla e se c'è due volte uguale duplico la riga con lo stesso nome mettendo l'anno nella corretta colonna e il tipo)
come posso fare per fare una cosa del genere?
Grazie
Beppe

nome anno tipo anno tipo anno tipo
Pippo 2013 UT 2014 IR 2015
pluto 2014 UC 2015 IR
mario 2013 UT
mario 2013 IT
claudio

10 Risposte

  • Re: Report su una sola riga in access

    Quello che chiedi, così come lo hai descritto, non si può realizzare.
    Invece hai sottovalutato l'ipotesi di creare un report/sottoreport basati direttamente sulle due tabelle Anagrafica/Interventi retributivi. In questo modo potresti vedere 1 Persona in alto e n record che lo riguardano, poi la 2a persona e i suoi n record, ecc... senza vedere ripetuti i campi di Anagrafica.
  • Re: Report su una sola riga in access

    Allora, quello che chiedi è fattibile in realtà, i Report consentono personalizzazioni molto più ampie di quanto si possa pensare...!
    Il problema è se sei in grado di farlo.

    In sostanza su Evento Format della Sezione Corpo, dove risiedono i Controlli puoi scrivere codice personalizzato che realizzi l'estrazione di cui hai parlato, magari da una Query alla quale passi i Parametri del Record Corrente, ed i risultati li puoi inserire in Controlli non associati posizionati nel Report sempre nella sezione Corpo in questo caso...!
    Ovviamente a questo punto è evidente che puoi fare di tutto... basta saperlo fare... e quì solo tu sai che autonomia di VBA puoi mettere in campo.
  • Re: Report su una sola riga in access

    Grazie per la dritta Alex, conosco VBA ma pensavo che si potesse fare senza farne uso magari appoggiandosi ad una query dove poter mettere sulla stessa riga i campi provenienti dagli interventi e quindi poi creare il report da questa oppure usare un report a colonne.
  • Re: Report su una sola riga in access

    OsvaldoLaviosa ha scritto:


    Quello che chiedi, così come lo hai descritto, non si può realizzare.
    Invece hai sottovalutato l'ipotesi di creare un report/sottoreport basati direttamente sulle due tabelle Anagrafica/Interventi retributivi. In questo modo potresti vedere 1 Persona in alto e n record che lo riguardano, poi la 2a persona e i suoi n record, ecc... senza vedere ripetuti i campi di Anagrafica.
    Ciao Osvaldo grazie ma credo che in questo caso non riuscirei lo stesso a mettere n record in riga
  • Re: Report su una sola riga in access

    beppenet ha scritto:


    nella stessa riga il tipo e l'anno in modo univoco e spalmato su tre anni
    Scusa, avevo ignorato questo particolare. Non più di 3 per ogni persona: la tua richiesta ha ancora un briciolo di senso se vuoi scrivere in linea Tipo e Anno...ma non è chiaro di quali record tu stia parlando. La tua query ha già calcolato i max 3 record a persona? Si tratta degli ultimi 3 anni? Partendo da una buona organizzazione della query, si può pensare di impostare la tua richiesta "orizzontale".
    Se intuisco la query, bada bene però che l'intero ciclo di operazioni che Access deve compiere (assolutamente innaturale) sarebbe talmente lungo che non so quanto vale la pena di impostare l'intero report come hai detto tu. Ricordo una volta di aver impostato una cosa simile anch'io, su un massimo di 3 record assoluti da spalmare in orizzontale e la procedura ci impiegava quei 5 secondi di troppo che mi davano la sensazione che non fosse poi così immediata.
  • Re: Report su una sola riga in access

    Scusa, avevo ignorato questo particolare. Non più di 3 per ogni persona: la tua richiesta ha ancora un briciolo di senso se vuoi scrivere in linea Tipo e Anno...ma non è chiaro di quali record tu stia parlando. La tua query ha già calcolato i max 3 record a persona? Si tratta degli ultimi 3 anni? Partendo da una buona organizzazione della query, si può pensare di impostare la tua richiesta "orizzontale".
    Se intuisco la query, bada bene però che l'intero ciclo di operazioni che Access deve compiere (assolutamente innaturale) sarebbe talmente lungo che non so quanto vale la pena di impostare l'intero report come hai detto tu. Ricordo una volta di aver impostato una cosa simile anch'io, su un massimo di 3 record assoluti da spalmare in orizzontale e la procedura ci impiegava quei 5 secondi di troppo che mi davano la sensazione che non fosse poi così immediata.
    IO ho la query uno a molti ed in linea voglio appunto scrivere al massimo tre anni per persona ma la mia query non funziona per il report che io ho fatto. Ho provato con un sottoreport nella parte degli interventi ma li mette sempre in più righe sotto l'unica anagrafica. Avevo pensato di fare una pivot in access ma non credo che anche questa sia la soluzione.
  • Re: Report su una sola riga in access

    Scusami "beppenet", non so se ho bene interpretato la tua richiesta, ma non sarebbe un caso classico da Report basato su una Query a Campi Incrociati ?! ove, scegliendo bene tra i Campi di Riga e Colonna,se il dato esiste viene scritto od altrimenti no ?...Può darsi che ho capito male, ma nel caso prova (!). Certo, con VBA nella sez. corpo del Report viene sicuramente meglio, comunque...
    Saluti
  • Re: Report su una sola riga in access

    Abi52 ha scritto:


    Scusami "beppenet", non so se ho bene interpretato la tua richiesta, ma non sarebbe un caso classico da Report basato su una Query a Campi Incrociati ?! ove, scegliendo bene tra i Campi di Riga e Colonna,se il dato esiste viene scritto od altrimenti no ?...Può darsi che ho capito male, ma nel caso prova (!). Certo, con VBA nella sez. corpo del Report viene sicuramente meglio, comunque...
    Saluti
    Ciao Abi52 praticamente io ho una tabella anagrafica collegata con una interventi dal codice fiscale ovviamente quella interventi può avere più record per la stessa anagrafica e vorrei fare un report in modo che alla persona x dell'anagrafica metto nella riga del report gli n interventi che ha affiancati (al massimo comunque sarebbero 4). Hop provato con report e sottoreport ma non funziona. Eventualmente la query a campi incociati come la dovrei fare? grazie
  • Re: Report su una sola riga in access

    Ciao beppenet,
    se comprendo bene tu hai due tabelle relazionate; se crei una query richiamandole e scegliendo l'opzione "campi incrociati" nella griglia in basso ti appaiono 7 parametri, tra cui "Campi Incrociati". Lì devi scegliere cosa inserire, un campo Intestazione riga, di colonna o valore. Puoi inserire max 3 campi di intestazione di riga, uno di colonna ed uno in valore. Nel tuo caso mi pare che nel campo Int. riga tu puoi inserire il nome/cognome della persona (?!).Nel campo Int. Colonna inserirai la data "anno" oppure (Format([anno];"aaaa") se non già formattato. Il campo valore sarà, se non erro, il tipo intervento/i realizzato.
    Ovviamente gli altri 6 parametri della griglia query sono: il Campo, la Tab. di appartenenza, la Formula (somma, raggruppam.to, ecc.) ed i Criteri che ti servirà applicare per i tuoi risultati.
    Prova, al limite la combinazione (se la mia è sbagliata) la puoi incrociare diversamente tu.
    Sui risultati della query puoi costruire il Report.
    Spero di non averti fatto intraprendere una strada inutile.
    Ciao
  • Re: Report su una sola riga in access

    Abi52 ha scritto:


    Spero di non averti fatto intraprendere una strada inutile.
    Ciao
    Grazie Abi52 ci provo e ti faccio sapere.
Devi accedere o registrarti per scrivere nel forum
10 risposte