Come creare un report fattura in Access: tutorial pratico

Per creare un report fattura in Access devi separare correttamente testata, cliente, righe documento e totali: usa tabelle relazionate, una query affidabile per la fattura, un dettaglio o sottoreport per le righe e controlli calcolati per imponibile, imposta e totale. Se cerchi una guida pratica su report access, questa struttura è molto più robusta di una fattura costruita mettendo tutti i dati in un’unica tabella.

Prima di tutto: una fattura non è una sola tabella

Un modello relazionale corretto distingue almeno Clienti, Fatture, RigheFattura e, se necessario, Prodotti. La tabella Fatture contiene i dati di testata: IDFattura, numero documento, data, IDCliente, condizioni e stato. RigheFattura contiene invece una riga per ogni voce fatturata, collegata tramite IDFattura.

Questa separazione evita ripetizioni e rende possibile avere una fattura con una o cento righe senza duplicare ogni volta i dati del cliente. Il report deve rispettare la stessa logica: testata una volta, righe nel dettaglio, totali alla fine.

Struttura minima consigliata

Tabella Clienti

Può contenere IDCliente, RagioneSociale, indirizzo, CAP, città, provincia, partita IVA e altri dati realmente necessari. Non duplicare nella tabella Fatture tutte le informazioni anagrafiche se non hai un motivo legale o storico specifico. In sistemi che devono congelare i dati fiscali al momento dell’emissione, valuta però una strategia che conservi l’anagrafica storica del documento.

Tabella Fatture

Usa una chiave primaria IDFattura separata dal numero commerciale della fattura. Il numero documento può avere regole aziendali e cambiare formato; l’ID tecnico deve restare stabile.

Tabella RigheFattura

Contiene IDRiga, IDFattura, descrizione, quantità, prezzo unitario, sconto, aliquota e altri elementi necessari. Se il prodotto può cambiare descrizione o prezzo nel tempo, valuta quali valori copiare nella riga per preservare lo storico del documento.

Creare le relazioni

Collega Clienti a Fatture con una relazione uno-a-molti su IDCliente e Fatture a RigheFattura con una relazione uno-a-molti su IDFattura. Applica integrità referenziale quando la struttura e i dati lo consentono. In questo modo una riga non può riferirsi a una fattura inesistente.

La relazione corretta è fondamentale perché il report fattura dipende dalla capacità di recuperare esattamente una testata e le relative righe.

Creare la query della testata

Puoi creare una query che unisce Fatture e Clienti per esporre i campi necessari alla testata. Non selezionare colonne inutili. Includi IDFattura, NumeroFattura, DataFattura, RagioneSociale, indirizzo e gli altri dati che devono apparire.

Prova la query con una fattura nota. Deve restituire una sola riga per fattura. Se una fattura appare più volte, probabilmente hai introdotto una join di dettaglio troppo presto.

Creare la query delle righe

La query righe può collegare RigheFattura a Prodotti, ma devi decidere quali dati devono provenire dal catalogo corrente e quali sono storici. Per il calcolo della riga usa un’espressione chiara. Per esempio:

ImportoRiga: Round([Quantita]*[PrezzoUnitario]*(1-Nz([Sconto],0)),2)

Se Sconto è memorizzato come percentuale intera, per esempio 10 invece di 0,10, l’espressione deve essere adattata. Definisci uno standard e documentalo.

Creare il report principale

Usa la query di testata come Origine record. Nell’intestazione report o nelle sezioni appropriate inserisci logo, dati aziendali e titolo. Nel corpo o in una sezione dedicata mostra i dati cliente e del documento.

Evita di inserire le righe direttamente nella stessa query se questo fa ripetere i campi di testata e complica i totali. Un sottoreport collegato è spesso più pulito.

Creare il sottoreport righe

Crea un report secondario basato sulla query RigheFattura. Metti nel dettaglio descrizione, quantità, prezzo, sconto e importo riga. Inseriscilo nel report principale e imposta Collega campi master e Collega campi child su IDFattura.

Prova più fatture, incluse una con una sola riga e una con molte righe. Il sottoreport deve mostrare soltanto le righe della fattura corrente.

Calcolare imponibile

Nel piè del sottoreport puoi usare:

=Sum([ImportoRiga])

Assegna al controllo un nome chiaro, per esempio txtImponibile. Se il totale deve essere letto dal report principale, puoi riferirti al controllo del sottoreport, ma gestisci correttamente i casi Null.

Calcolare IVA

Se tutte le righe hanno la stessa aliquota, il calcolo è semplice. Con aliquote diverse devi raggruppare o calcolare l’imposta per ogni riga. Evita di moltiplicare l’imponibile totale per una sola aliquota se il documento contiene più aliquote.

Un approccio possibile è calcolare IVARiga nella query:

IVARiga: Round([ImportoRiga]*[AliquotaIVA],2)

e sommare poi le imposte. Verifica sempre le regole fiscali e di arrotondamento applicabili al tuo caso reale; Access è uno strumento tecnico, non sostituisce la consulenza fiscale.

Totale documento

Il totale può essere costruito come somma di imponibile e imposta, più eventuali altri componenti previsti. Usa controlli calcolati e nomi descrittivi. Non nascondere formule importanti dentro controlli chiamati Testo42.

=Round(Nz([Imponibile],0)+Nz([IVA],0),2)

Numero fattura e ID tecnico

Non usare necessariamente l’Autonumerazione come numero fiscale visibile. L’ID tecnico serve alle relazioni. Il numero documento può seguire serie, anno e regole specifiche. Mantieni distinti i due concetti per evitare problemi quando una numerazione deve essere gestita secondo requisiti aziendali.

Fatture con molte righe

Il sottoreport può continuare sulle pagine successive. Assicurati che le intestazioni di colonna si ripetano dove necessario. Usa Piè di pagina per numero pagina e dati di servizio. Prova una fattura abbastanza lunga da occupare almeno tre pagine.

Controlla Keep Together e le proprietà di gruppo per evitare grandi spazi vuoti, ma non forzare tutto il documento su una sola pagina.

Logo e dati aziendali

Inserisci il logo nell’intestazione con il comando Logo e usa modalità Zoom per mantenere le proporzioni. Dati societari, contatti e riferimenti possono essere testo fisso o provenire da una tabella configurazione.

Se i dati aziendali possono cambiare, una tabella Configurazione rende più semplice aggiornare più report senza modificare ogni oggetto.

Numero pagina

Per documenti multipagina usa:

="Pagina " & [Page] & " di " & [Pages]

Collocalo nel piè di pagina. Aggiungi eventualmente data/ora di generazione per distinguere copie prodotte in momenti diversi.

Filtrare la fattura da una maschera

Una maschera elenco fatture può avere un pulsante Stampa che apre il report filtrato sull’ID corrente:

DoCmd.OpenReport "rptFattura", acViewPreview, , "IDFattura=" & Me.IDFattura

WhereCondition è una clausola WHERE senza la parola WHERE. Verifica che IDFattura sia numerico; per testo servono delimitatori diversi.

Evitare parametri inattesi

Se Access chiede un parametro, controlla nomi dei campi nelle query e Origine controllo. Un campo rinominato o un controllo inesistente viene spesso interpretato come parametro.

Apri prima la query testata e poi la query righe. Se funzionano entrambe, controlla i controlli calcolati del report e i riferimenti al sottoreport.

Evitare totali duplicati

È uno degli errori più pericolosi. Se la query unisce testata e righe e poi un’altra tabella moltiplica le righe, Sum(ImportoRiga) può raddoppiare. Controlla il numero di record per IDFattura e confronta con RigheFattura.

Quando serve, aggrega prima in una query separata. La regola è semplice: conosci sempre la granularità del dataset prima di sommare.

Arrotondamenti

Definisci dove e quando arrotondare. Arrotondare ogni riga e poi sommare può produrre un risultato diverso dal sommare valori non arrotondati e arrotondare alla fine. Usa la regola coerente con il processo contabile reale e documentala.

Per importi usa tipi dati appropriati, evitando Single/Double quando la precisione decimale finanziaria richiede maggiore controllo.

Formato valuta

Imposta i controlli come Valuta o formato personalizzato. Non concatenare il simbolo euro a un numero se poi devi ordinarlo o calcolarlo. La formattazione deve essere separata dal dato.

PDF

Una fattura viene spesso esportata in PDF. Verifica logo, numerazione, margini e font. Controlla che il PDF contenga tutte le pagine e che non esistano pagine bianche dovute a larghezza eccessiva.

Microsoft 365 e Access 2024

Le funzioni di report descritte sono riferite ad Access desktop corrente, incluso Access per Microsoft 365 e Access 2024. La documentazione Microsoft sui report conferma l’uso di query, raggruppamenti, anteprima e stampa.

Access Runtime

Distribuisci il report già progettato. Gli utenti Runtime possono aprire, visualizzare e stampare secondo il flusso previsto, ma la progettazione deve essere fatta con Access completo. Crea pulsanti dedicati per anteprima e PDF.

32 bit e 64 bit

Il report standard non cambia. Se usi API, componenti, firma digitale, driver esterni o automazioni di posta, verifica compatibilità e riferimenti.

Backup e versione del documento

Prima di modificare report fiscali crea backup. Se il database è multiutente, distribuisci front-end versionati. Conserva un PDF di riferimento di una fattura campione per confrontare futuri aggiornamenti.

Checklist di collaudo

  1. Verifica una fattura con una riga.
  2. Verifica una con molte righe.
  3. Controlla imponibile.
  4. Controlla IVA.
  5. Controlla totale.
  6. Prova sconto zero e sconto presente.
  7. Prova valori Null.
  8. Controlla numero pagina.
  9. Esporta PDF.
  10. Confronta con calcolo indipendente.

Link interni utili

Consulta sempre la categoria Guide Access. Approfondisci come creare un report, report da query, totali nei report, subtotali e numero pagina.

Fonte Microsoft

La struttura e le funzioni di report sono state verificate sulla documentazione Microsoft Support sui report Access.

FAQ

Meglio report unico o sottoreport?

Per testata e righe documento, il sottoreport collegato tramite IDFattura è spesso più chiaro e manutenibile.

Posso calcolare l’IVA nel report?

Sì tecnicamente, ma la logica deve essere coerente con le aliquote e le regole di arrotondamento del tuo processo.

Perché il totale raddoppia?

Controlla join e duplicazioni della query. Una tabella di dettaglio aggiuntiva può moltiplicare le righe.

Posso stampare una sola fattura?

Sì, apri il report con WhereCondition sull’IDFattura.

Il Runtime va bene?

Sì per usare report già progettati, non per modificarne la struttura.

Come gestisco fatture multipagina?

Prova una fattura lunga, ripeti intestazioni necessarie e usa numero pagina nel piè di pagina.

Meglio memorizzare il totale?

Dipende dai requisiti. Molti sistemi ricalcolano dai dettagli, ma documenti fiscali possono richiedere una strategia storica specifica.

Posso usare Access su Mac?

Questa guida riguarda Access desktop Windows; non esiste una versione nativa moderna equivalente per macOS.

Conclusione

Creare un report fattura in Access richiede soprattutto una buona progettazione dei dati. Separa testata e righe, usa relazioni corrette, costruisci query verificabili e calcola importi con regole documentate. Inserisci le righe in un sottoreport quando è la soluzione più chiara, controlla imponibile, IVA e totale con campioni indipendenti e prova fatture corte e lunghe. Solo dopo rifinisci logo, margini, numerazione e PDF. In questo modo il report resta affidabile e più semplice da mantenere.

Lascia un commento