Creare un report in Microsoft Access significa trasformare dati provenienti da tabelle o query in un output ordinato, stampabile e adatto alla consultazione, al riepilogo o alla distribuzione. Un report può essere un semplice elenco clienti, una fattura, un riepilogo vendite per mese, un inventario, una scheda prodotto o un documento con gruppi, subtotali e totale generale.
Access offre più modi per creare report: lo strumento Report, la Creazione guidata Report, Report vuoto e la visualizzazione Struttura. In questa guida vedremo il flusso consigliato nelle versioni desktop correnti di Access per Microsoft 365 e Access 2024 su Windows, con indicazioni utili anche quando il database viene distribuito tramite Access Runtime.
Indice
- A cosa serve un report
- Scegliere origine record e campi
- Creare un report rapido
- Usare la Creazione guidata Report
- Creare da una query
- Layout e Struttura
- Raggruppamento e ordinamento
- Totali e campi calcolati
- Intestazioni e piè di pagina
- Filtri e parametri
- Stampa e PDF
- Prestazioni e Runtime
- Troubleshooting e FAQ
Che cos’è un report in Access
Un report è un oggetto pensato per presentare dati in forma leggibile e controllata. A differenza di una tabella, che serve soprattutto a memorizzare dati, o di una maschera, che è progettata per interagire con i record, il report è orientato alla presentazione. Microsoft definisce i report uno strumento per visualizzare, formattare e riepilogare informazioni presenti nel database.
La documentazione ufficiale corrente è Introduction to reports in Access. Le funzioni descritte si applicano alle versioni desktop recenti, tra cui Access per Microsoft 365 e Access 2024.
Report, maschera o query?
Una query seleziona, combina e calcola i dati. Una maschera consente all’utente di visualizzarli e modificarli in modo interattivo. Un report prende i dati e li organizza per stampa, anteprima o esportazione. In un’applicazione ben progettata questi oggetti collaborano: una query prepara i record, una maschera permette di cercarli e un report produce il documento finale.
Per esempio, una query qryVenditeMese può unire Ordini, Clienti e RigheOrdine, calcolare gli importi e filtrare il periodo. Il report rptVenditeMese usa la query come origine record, raggruppa per cliente e mostra subtotali e totale generale.
1. Definire lo scopo prima di creare il report
Prima di usare la procedura guidata, scrivi l’obiettivo. Deve essere un elenco, un documento singolo, un riepilogo per gruppo o un dettaglio? Chi lo leggerà? Verrà stampato, esportato in PDF o consultato soltanto in Access? Quali informazioni sono indispensabili?
Un report professionale non mostra tutti i campi disponibili. Mostra quelli utili alla decisione o al documento. Una fattura ha esigenze diverse da un elenco contatti. Un report di controllo può includere ID tecnici; una scheda destinata al cliente probabilmente no.
2. Scegliere l’origine record
L’origine record può essere una tabella o una query. Se i dati provengono da una sola tabella e non richiedono calcoli o filtri complessi, la tabella può essere sufficiente. Se servono campi di più tabelle, criteri, join, calcoli o ordinamenti preliminari, usa una query.
Microsoft documenta espressamente l’uso di una query come origine record di maschere e report in Use a query as the record source for a form or report. Puoi impostare la proprietà Record Source su una query salvata oppure costruire una query specifica.
Esempio di query per vendite
Supponiamo di avere Clienti, Ordini e RigheOrdine. Una query può restituire IDOrdine, DataOrdine, RagioneSociale, Prodotto, Quantità, Prezzo e un campo calcolato Importo. In SQL Access un’espressione possibile è Importo: [Quantita]*[PrezzoUnitario] nella griglia, oppure in SQL SELECT ..., [Quantita]*[PrezzoUnitario] AS Importo FROM ....
Il report non deve ripetere la logica di join se la query la prepara già. Questo rende più semplice testare i dati prima di occuparsi della formattazione.
3. Creare un report rapido con lo strumento Report
Nel riquadro di spostamento seleziona la tabella o query desiderata. Vai alla scheda Crea e scegli Report. Access genera rapidamente un report tabellare e lo apre in visualizzazione Layout. È un ottimo modo per ottenere una base immediata.
Il risultato può includere molti campi e superare la larghezza di una pagina. Elimina le colonne non necessarie, ridimensiona le altre e controlla il layout. Microsoft consiglia di adattare il report prima di applicare raggruppamenti se la larghezza è eccessiva.
4. Creare un report con la Creazione guidata Report
Per avere maggiore controllo fin dall’inizio usa Crea > Creazione guidata Report. La procedura permette di selezionare una tabella o query, aggiungere i campi desiderati, definire eventuali livelli di raggruppamento, scegliere ordinamenti e impostare un layout iniziale.
La documentazione Microsoft Create a query, form, or report in Access indica il flusso essenziale: selezionare Report Wizard, scegliere origine e campi, indicare il campo di raggruppamento e completare le schermate.
Perché la procedura guidata è utile
È particolarmente comoda quando vuoi includere campi di più origini già correlate, creare gruppi o ottenere un primo layout senza disegnare manualmente ogni controllo. Non considerarla però un risultato definitivo: dopo la creazione passa in Layout o Struttura per rifinire dimensioni, etichette, sezioni e proprietà.
5. Creare un report vuoto
Report vuoto è utile quando conosci già il layout desiderato e vuoi aggiungere campi manualmente. Access apre un report vuoto e mette a disposizione l’elenco campi. Puoi trascinare i controlli e organizzare la pagina senza partire da una struttura tabellare automatica.
Questa modalità richiede più lavoro ma offre libertà. È adatta a documenti con grafica precisa, blocchi informativi, logo, sezioni personalizzate o campi calcolati non disposti come una tabella.
6. Capire le sezioni del report
Un report può contenere Intestazione report, Intestazione pagina, Intestazioni di gruppo, Dettaglio, Piè di pagina di gruppo, Piè di pagina pagina e Piè di pagina report. Ogni sezione ha una funzione diversa.
L’Intestazione report appare all’inizio del documento ed è adatta a titolo e informazioni generali. L’Intestazione pagina può ripetersi su ogni pagina, utile per titoli di colonna. La sezione Dettaglio viene ripetuta per ogni record. I piè di pagina di gruppo ospitano subtotali; il Piè di pagina report è adatto al totale generale.
7. Layout o Struttura?
La visualizzazione Layout è intuitiva perché consente di vedere dati reali mentre si ridimensionano e spostano i controlli. La Struttura offre maggiore precisione su sezioni, proprietà ed eventi. Microsoft descrive entrambe in Modificare un report.
Un metodo pratico consiste nell’usare Layout per larghezze, ordine delle colonne, font e allineamento, poi Struttura per intestazioni, piè di pagina, controlli calcolati, proprietà Can Grow/Can Shrink ed eventi.
8. Impostare raggruppamento e ordinamento
Un report diventa molto più utile quando i record sono raggruppati logicamente. Un report vendite può raggruppare per Regione, Cliente o Mese. Access offre il riquadro Raggruppa, ordina e totale, disponibile da Layout o Struttura.
Microsoft documenta il processo in Create a grouped or summary report. Puoi aggiungere livelli di gruppo, ordinamenti e opzioni come intestazione e piè di pagina di gruppo.
Ordinamento su più campi
Per un elenco clienti potresti ordinare prima per Provincia e poi per RagioneSociale. Per ordini, prima DataOrdine discendente e poi NumeroOrdine. Il riquadro Raggruppa, ordina e totale gestisce più livelli in modo più controllabile rispetto a un singolo ordinamento rapido.
9. Aggiungere totali
Access può aggiungere somme, medie, conteggi e altre aggregazioni nei report. Il totale di un gruppo deve essere collocato nel relativo piè di pagina; il totale generale nel piè di pagina del report.
Per esempio una casella di testo nel footer Cliente può avere Origine controllo =Sum([Importo]). Nel Piè di pagina report la stessa espressione calcola il totale di tutti i record elaborati dal report. Un conteggio può usare =Count(*) oppure =Count([IDOrdine]) in base al risultato desiderato.
10. Evitare doppi conteggi
Quando la query contiene join uno-a-molti, verifica la granularità. Se un ordine con tre righe appare tre volte, sommare un campo TotaleOrdine memorizzato nella tabella Ordini produce un totale triplo. In questi casi calcola il valore a livello riga oppure usa una query aggregata appropriata prima del report.
Il report mostra correttamente ciò che riceve; non può capire automaticamente che un valore duplicato deriva da un join. Controlla quindi sempre la query di origine in foglio dati prima di progettare i totali.
11. Campi calcolati nel report
Un controllo non associato può contenere un’espressione. Esempi: =[Quantita]*[PrezzoUnitario], =Format([DataOrdine],"mmmm yyyy"), =Nz([Sconto],0). Per calcoli complessi o riutilizzati in più oggetti, è spesso meglio spostarli nella query.
Il vantaggio della query è che puoi testare il risultato indipendentemente dal report e riutilizzarlo per esportazioni o altre maschere.
12. Inserire titolo, data e informazioni del documento
Aggiungi un titolo comprensibile. Se il report rappresenta un periodo, indica il periodo direttamente. Una data di generazione è utile nei documenti distribuiti perché chiarisce a quale momento si riferisce la copia.
Puoi usare =Date() per la data corrente e =Now() se serve anche l’ora. Formatta il controllo con il formato desiderato senza trasformare necessariamente la data in testo nella query.
13. Intestazioni e piè di pagina
Le intestazioni di pagina sono adatte ai titoli di colonna che devono ripetersi. Il piè di pagina pagina può contenere numero pagina o informazioni brevi. Intestazione e piè di pagina report compaiono una volta all’inizio o alla fine dell’intero documento.
Microsoft spiega che le sezioni di intestazione e piè di pagina di pagina o report vengono aggiunte in coppia. Il riferimento dettagliato è Guide to designing reports.
14. Gestire campi di testo lunghi
Se un campo Note può essere lungo, attiva Can Grow per consentire al controllo e alla sezione di espandersi quando serve. Can Shrink può ridurre lo spazio per valori brevi o Null. Testa record con contenuti molto lunghi per verificare interruzioni pagina e sovrapposizioni.
Non usare una casella alta dieci centimetri soltanto perché un record eccezionale contiene molte note. Lascia che il controllo si espanda dinamicamente quando il layout lo consente.
15. Inserire immagini e logo
Un logo nell’Intestazione report può rendere riconoscibile il documento. Mantieni dimensioni ragionevoli e usa immagini ottimizzate. Per foto o immagini legate a ogni record, valuta il tipo di campo e la strategia di archiviazione prima di incorporare file molto pesanti nel database.
Se il report deve essere esportato in PDF, prova la qualità finale. Un logo ad altissima risoluzione aumenta il peso senza migliorare necessariamente la stampa.
16. Filtrare il report
Puoi aprire un report con una condizione WhereCondition, per esempio da una maschera. Un pulsante nella scheda cliente può eseguire DoCmd.OpenReport "rptSchedaCliente", acViewPreview, , "IDCliente=" & Me.IDCliente. Il report mostra così soltanto il cliente corrente.
Questa architettura è molto più sicura della stampa diretta di una maschera quando serve un documento ben impaginato. Vedi anche Come stampare una maschera Access.
17. Query parametro come origine
Un report può usare una query parametro, ma l’esperienza utente deve essere progettata bene. Un prompt generico Inserire parametro può essere poco professionale. Spesso è preferibile una maschera con controlli DataDa, DataA, Cliente o Stato e una query che legge tali valori.
Se usi parametri data, dichiarali esplicitamente nella query per evitare interpretazioni errate. La sintassi SQL può includere PARAMETERS [Data iniziale] DateTime, [Data finale] DateTime;.
18. Anteprima di stampa
Prima di stampare usa Anteprima di stampa per controllare larghezza, pagine, margini e interruzioni. Verifica anche record con testo lungo e gruppi che cambiano pagina. Un report corretto in Layout può mostrare un problema soltanto quando viene impaginato.
19. Configurare orientamento e margini
Un report con poche colonne funziona spesso in verticale. Un elenco con molti campi può richiedere orientamento orizzontale. Evita di ridurre il font a dimensioni illeggibili soltanto per far entrare tutto: elimina invece colonne secondarie o crea una versione dettagliata separata.
Una larghezza appena superiore all’area stampabile può generare pagine bianche o quasi vuote. Se succede, riduci il bordo destro e controlla la larghezza totale dei controlli.
20. Esportare in PDF
Il PDF è spesso il formato migliore per distribuire un report perché conserva il layout. Puoi esportare manualmente o automatizzare con DoCmd.OutputTo. Prima dell’esportazione assicurati che il report sia filtrato correttamente e che il nome file sia valido per Windows.
Se archivi report periodici, includi data o periodo nel nome, per esempio Vendite_2026-08.pdf. Evita caratteri non validi nei nomi file.
21. Stampare
Per la stampa manuale apri l’anteprima e seleziona stampante, pagine e copie. In VBA puoi usare DoCmd.PrintOut sull’oggetto attivo, ma per flussi professionali controlla quale report è aperto e gestisci gli errori della stampante.
Per una stampa ripetitiva valuta un pulsante nella maschera che salva il record corrente, apre il report filtrato e mostra l’anteprima. In Access Runtime questo approccio è particolarmente importante perché l’utente deve disporre dei comandi direttamente nell’applicazione.
22. Report e Access Runtime
Il Runtime può aprire, visualizzare, stampare ed esportare report se l’applicazione è progettata per farlo. Non fare affidamento sul riquadro di spostamento o sui comandi di progettazione. Predisponi maschere di navigazione, pulsanti per anteprima e stampa e gestione degli errori.
Se il report dipende da query o tabelle collegate, verifica che i collegamenti siano disponibili sulla macchina Runtime. Un problema di connessione al back-end può impedire l’apertura del report anche se il file front-end è corretto.
23. Access per Microsoft 365 e Access 2024
La struttura fondamentale dei report è comune alle versioni correnti. Access per Microsoft 365 può ricevere miglioramenti tramite aggiornamenti del canale Office, mentre Access 2024 appartiene alla versione perpetua. Progetta sulla versione minima realmente usata dall’organizzazione e testa lì il file.
24. 32 e 64 bit
Report, query e funzioni standard non richiedono generalmente modifiche tra 32 e 64 bit. Le differenze diventano rilevanti se il report attiva VBA con API Windows, controlli ActiveX o librerie COM esterne. In quei casi verifica dichiarazioni PtrSafe, disponibilità del componente e riferimenti.
25. Prestazioni dei report
Un report lento spesso deriva dalla query di origine, non dal layout. Controlla join, criteri, indici e funzioni di dominio. Evita DLookup o DSum ripetuti per migliaia di righe se lo stesso risultato può essere prodotto con join o query aggregate.
Se il back-end è SQL Server, applica i filtri il più vicino possibile al server. Non scaricare centinaia di migliaia di righe se il report deve mostrare soltanto il mese corrente.
26. Checklist di progettazione
- Scopo del report chiaro
- Origine record testata
- Campi necessari soltanto
- Ordine e gruppi coerenti
- Totali verificati
- Titolo e periodo evidenti
- Intestazioni ripetute quando servono
- Campi lunghi testati
- Orientamento e margini controllati
- Anteprima verificata
- Filtro del record corrente testato
- PDF e stampa provati
- Prestazioni accettabili
- Runtime testato se previsto
Problemi comuni e troubleshooting
Il report è vuoto
Apri l’origine record direttamente e verifica che restituisca righe. Controlla criteri, parametri e filtri applicati all’apertura. Se la query legge controlli di una maschera, assicurati che la maschera sia aperta.
Il report mostra record duplicati
Controlla i join nella query. Una relazione uno-a-molti produce correttamente più righe sul lato molti. Se non vuoi dettagli, aggrega prima i dati o modifica la granularità della query.
Il totale è troppo alto
Verifica che non stai sommando un totale già ripetuto per ogni riga di dettaglio. Calcola gli importi alla granularità corretta e usa il footer del gruppo appropriato.
Compare una pagina bianca
La larghezza del report più margini probabilmente supera la larghezza stampabile. Riduci il bordo destro, i controlli o i margini.
Le intestazioni non si ripetono
Usa l’Intestazione pagina per titoli di colonna che devono apparire su ogni pagina oppure configura Repeat Section per intestazioni di gruppo quando appropriato.
Il report si apre lentamente
Ottimizza la query di origine, aggiungi indici sui campi usati in join e criteri, riduci funzioni di dominio e filtra prima il dataset.
FAQ
Qual è il modo più semplice per creare un report?
Seleziona una tabella o query e usa Crea > Report. Per scegliere campi, gruppi e ordinamenti già durante la creazione, usa la Creazione guidata Report.
Meglio una tabella o una query come origine?
La tabella va bene per casi semplici. La query è più flessibile quando servono più tabelle, calcoli, filtri o campi derivati.
Posso modificare i dati da un report?
Il report è principalmente un oggetto di presentazione e stampa, non l’interfaccia ideale per l’editing. Usa una maschera per modificare i dati.
Posso aprire un report sul solo record corrente?
Sì, usando WhereCondition in DoCmd.OpenReport, normalmente con la chiave primaria del record selezionato.
I report funzionano in Access Runtime?
Sì. Devi però fornire all’utente pulsanti e flussi per aprirli, stamparli o esportarli.
Posso creare report su Access per Mac?
Access desktop non è disponibile nativamente su macOS. Queste procedure si riferiscono ad Access su Windows.
Conclusione
Creare un report in Microsoft Access è un processo che parte dai dati e termina con la presentazione. Definisci lo scopo, prepara una tabella o query affidabile, genera la struttura con Report o Creazione guidata, poi rifinisci raggruppamenti, totali, intestazioni, filtri e impaginazione. Verifica sempre anteprima, record estremi e prestazioni prima della distribuzione.
Per continuare consulta tutte le Guide Microsoft Access di Guide-Pratiche.it, con tutorial dedicati a query, maschere, report, VBA e integrazioni.