PMI: prima nota con Access

di Nicola Santangelo

Pubblicato 15 Gennaio 2015
Aggiornato 1 Giugno 2020 15:31

logo PMI+ logo PMI+
Per molte incombenze amministrative, una piccola azienda può anche ricorrere ai comuni pacchetti per la produttività. Vediamo come usare Microsoft Access per le attività di prima nota.

Nella vita delle imprese è indispensabile l’uso di un software per la gestione della contabilità. Qualche volta, però, è possibile compilare e utilizzare un semplice database Access per la prima nota. Affinché sia semplice da realizzare, il database deve contenere almeno quattro tabelle di base più due dedicate esclusivamente alle registrazioni delle operazioni contabili.

=>Scarica l’esempio

Le prime saranno nominate: Causali, con la descrizione breve sul tipo di operazione che si andrà a registrare (Fattura attiva, Incasso, Pagamento, ecc.); CliFo, con l’elenco dei clienti e dei fornitori a cui l’operazione contabile è riferita (ideale per permettere ad Access la stampa dell’estratto conto clienti e fornitori); Conti che conterrà il piano dei conti utilizzato dall’impresa; Sezioni che conterrà la struttura del bilancio.Dopo avere creato un nuovo database e rinominato Prima_Nota inseriremo la tabella Causali composta dal campo “Causale” di tipo Testo, dimensione 32, Indicizzato con duplicati non ammessi e Chiave Primaria. La tabella CliFo sarà composta dai seguenti campi: “Ragione_Sociale” di tipo Testo, dimensione 128, Indicizzato con duplicati non ammessi e Chiave Primaria; Indirizzo di tipo Testo, dimensione 64; Citta di tipo Testo, dimensione 64; CAP di tipo Testo dimensione 5; Prov di tipo testo, dimensione 2; Partita_IVA di tipo Testo, dimensione 11. Infine, se ritenute necessarie, è possibile completare la tabella con informazioni del tipo telefono, fax, sito Web e email.

=> Gestione entrate e uscite con Microsoft Access

La tabella Conti sarà composta dai seguenti campi: “Conto” di tipo Testo, dimensione 64, Indicizzato con duplicati non ammessi e Chiave Primaria; Codice di tipo Testo, dimensione 8; Sezione di tipo Testo, dimensione 18, Indicizzato con duplicati ammessi (poiché dovrà attingere le informazioni dall’omonimo campo della tabella Sezioni è necessario selezionare la visualizzazione di una casella combinata associata alla prima colonna).

La tabella Sezioni sarà composta dal campo “Sezione” di tipo Testo, dimensione 18, Indicizzato con duplicati non ammessi e Chiave Primaria. Tale tabella, creata per definire la struttura del bilancio, conterrà esclusivamente tre record: Stato Patrimoniale, Conto Economico, Conti d’Ordine (utile nel caso si voglia ampliare il database con la stampa del bilancio).

Per la registrazione delle operazioni in prima nota sarà necessario realizzare due tabelle che saranno utilizzate in modalità testata/dettaglio e che chiameremo rispettivamente Testata_Prima_Nota e Dettaglio_Prima_Nota.

La tabella Testata_Prima_Nota sarà composta dai seguenti campi: Numero di tipo Contatore, dimensione Intero lungo, Indicizzato con duplicati non ammessi e Chiave Primaria; Data di tipo Data/Ora; Causale di tipo Testo, dimensione 32, Indicizzato con duplicati ammessi (poiché dovrà attingere le informazioni dall’omonimo campo della tabella Causali è necessario selezionare la visualizzazione di una casella combinata associata alla prima colonna); Data_Fattura di tipo Data/Ora; Numero_Fattura di tipo Numerico, dimensione Intero lungo; Protocollo di tipo Numerico, dimensione Intero lungo; Ragione_Sociale di tipo Testo, dimensione 128, Indicizzato con duplicati ammessi (poiché dovrà attingere le informazioni dall ‘ omonimo campo della tabella CliFo è necessario selezionare la visualizzazione di una casella combinata associata alla prima colonna); Credito (il valore che l’operazione contabile riconoscerà come credito in un’operazione collegata ad un cliente) di tipo numerico, precisione doppia, formato valuta, due posizioni decimali; Debito (il valore che l’operazione contabile riconoscerà come debito in un’operazione collegata ad un fornitore) di tipo numerico, precisione doppia, formato valuta, due posizioni decimali.

=> Un modello di fattura integrato con database

La tabella Dettaglio_Prima_Nota sarà composta dai seguenti campi: Numero_Riga di tipo Contatore, dimensione Intero lungo, Indicizzato con duplicati non ammessi e Chiave Primaria; IDTestata di tipo Numerico, dimensione Intero lungo, Indicizzato con duplicati ammessi; Conto di tipo Testo, dimensione 64, Indicizzato con duplicati ammessi (poiché dovrà attingere le informazioni dall’omonimo campo della tabella Conti è necessario selezionare la visualizzazione di una casella combinata associata alla prima colonna); Dare di tipo Numerico, dimensione Precisione doppia, formato Valuta, posizioni decimali 2; Avere di tipo Numerico, dimensione Precisione doppia, formato Valuta, posizioni decimali 2; Descrizione di tipo Testo, dimensione 255.

Le tabelle dovranno essere relazionate fra di loro: la tabella Causali con la tabella Testata_Prima_Nota attraverso il campo Causale; la tabella Clifo con la tabella Testata_Prima_Nota attraverso il campo Ragione_Sociale; la tabella Conti con la tabella Dettaglio_Prima_Nota attraverso il campo Conto; la tabella Conti con la tabella Sezioni attraverso il campo Sezione; la tabella Testata_Prima_Nota con la tabella Dettaglio_Prima_Nota con i campi Numero e IDTestata. Tutte le relazioni saranno di “uno a molti” e a tutte dovrà essere applicata l’integrità referenziale, l’aggiornamento dei campi correlati a catena e l’eliminazione dei record correlati a catena.

Completata la struttura del database è possibile applicare le maschere alle tabelle (ad eccezione della tabella Sezioni) avendo cura di comporre la maschera relativa all’inserimento della prima nota in modalità testata/dettaglio e, quindi, con sottomaschera di tipo foglio dati.

Prima di poter utilizzare il database è necessario compilare le tabelle di base affinché i dati inseriti siano richiamabili dalle caselle combinate. Per inserire il piano dei conti terremo conto della struttura indicata dagli articoli 2424 e 2425 del codice civile.

Per rendere il database completo, verranno inseriti due report, rispettivamente la stampa dei mastrini e l’estratto conto dei clienti e dei fornitori.

La stampa dei mastrini sarà lanciata da una maschera che avrà lo scopo di filtrare i record tramite una query. Per fare questo è necessario creare una maschera contenente tre campi (Dal, Al e Conto) e un pulsante. Al pulsante sarà associata una macro che eseguirà la query chiamata Q_Stampa_Mastrini e aprirà il report.

L’istruzione SQL della query Q_Stampa_Mastrini sarà la seguente:
SELECT DATA, DETTAGLIO_PRIMA_NOTA.CONTO, DETTAGLIO_PRIMA_NOTA.DARE, DETTAGLIO_PRIMA_NOTA.AVERE, DETTAGLIO_PRIMA_NOTA.DESCRIZIONE
FROM DETTAGLIO_PRIMA_NOTA
LEFT JOIN TESTATA_PRIMA_NOTA
ON DETTAGLIO_PRIMA_NOTA.IDTESTATA = TESTATA_PRIMA_NOTA.NUMERO
WHERE ((DETTAGLIO_PRIMA_NOTA.CONTO)=[Forms]![STAMPA_MASTRINI]![CONTO]) AND ((TESTATA_PRIMA_NOTA.DATA)>=[Forms]![STAMPA_MASTRINI]![DAL] AND (TESTATA_PRIMA_NOTA.DATA)<=[Forms]![STAMPA_MASTRINI]![AL]))
ORDER BY TESTATA_PRIMA_NOTA.DATA

In questo modo le informazioni inserite nella maschera Stampa_Mastrini serviranno a filtrare i record inseriti nella tabella Dettaglio_Prima_Nota (per questo motivo la maschera Stampa_Mastrini dovrà necessariamente rimanere aperta durante l’operazione di stampa, in caso contrario sarà visualizzato un messaggio di errore).

Alla query appena creata dovrà essere associato un report per ottenere la stampa dei mastrini.

La medesima operazione dovrà essere eseguita per la stampa dell ‘ estratto conto clienti e fornitori, le cui opzioni saranno gestite dalla maschera Stampa_Estratto_Conto necessaria a filtrare in dati in base a data e cliente o fornitore.

La query da inserire è: SELECT DATA, CAUSALE, DATA_FATTURA, NUMERO_FATTURA, PROTOCOLLO, RAGIONE_SOCIALE, CREDITO, DEBITO FROM TESTATA_PRIMA_NOTA WHERE RAGIONE_SOCIALE = [Forms]![STAMPA_ESTRATTO_CONTO]![RAGIONE_SOCIALE] AND DATA >= [Forms]![STAMPA_ESTRATTO_CONTO]![DAL] AND DATA <= [Forms]![STAMPA_ESTRATTO_CONTO]![AL] ORDER BY DATA;