View Full Version : [ACCESS] - Gestire le aliquote IVA
Ho un database personalizzato per la contabilità che ormai uso da anni ed è più che sufficiente alle mie esigenze, ma in questi ultimi tempi con le frequenti modifiche alle aliquote IVA, ho dovuto fare un po' di salti mortali per aggiustare le varie sezioni, perché purtroppo non ho pensato di programmare a priori quest'aspetto e comunque, non so nemmeno come fare.
Vorrei impostare una funzione in VB che mi permettesse di settare più aliquote e che possa automaticamente cambiare le aliquote in base alla data dell'operazione proveniente dalla tabella o maschera che richiama la funzione stessa.
Come si può fare?
Daniels118
27-01-2014, 13:47
Non è molto chiaro dove trovi difficoltà, fai tanti if quante sono le aliquote, come condizioni metti le date e restituisci l'aliquota relativa.
Oppure potresti ridisegnare leggermente il DB aggiungendo una tabella con le aliquote e una colonna nella tabella operazioni, aggiorni i vecchi record con delle query mirate per data e i nuovi record li inserisci direttamente con l'aliquota vigente.
Potrebbe essere giusto anche quello che dici tu, ma credo che operando tramite codice, il tutto sarebbe sì più complesso, ma anche più flessibile. In pratica vorrei fare così:
TABELLA FATTURE
. data operazione
. codice
. descrizione
. q.tà
. prezzo
. AliquotaIVA (A1, A2, A3)
Tanto per fare un esempio, diciamo che:
. fino al 31/12/2000 A1= 4% : A2=10% : A3=20%
. fino al 31/12/2010 A1= 4% : A2=11% : A3=21%
. dal 01/01/2011 A1= 5% : A2=11% : A3=22%
La tabella, nel momento dell'inserimento dei dati, dovrebbe comunicare con il codice, (Function, Sub o roba simile), inviandogli i dati relativi alla data dell'operazione e all'aliquota IVA scelta e il codice dovrebbe ritornare in automatico la percentuale corretta che a questo punto può essere usata nella tabella per eseguire i calcoli.
Vorrei utilizzare il codice anche perché credo che sia più flessibile anche quando semplicemente deve essere usata la percentuale IVA all'interno di campi calcolati, report o altre funzioni del database.
Concettualmente so come operare in tema di IF, THEN, etc.. Il problema è che non so come passare i dati dalle tabelle alla funzione.
Spero di essermi spiegato bene.
Daniels118
27-01-2014, 15:50
Non è possibile agganciare del codice VB ad una query, dovresti preoccuparti tu di richiamare la funzione ogni volta che devi applicare l'aliquota.
In alternativa potresti estendere virtualmente la tabella creando una vista, nella quale potresti valorizzare un campo aggiuntivo con le istruzioni IF.
Comunque sarebbe molto più performante e solido (in termini di persistenza dei dati) aggiungere il campo aliquota direttamente alla tabella operazioni e modificarne il valore una volta per tutte.
EDIT [non appropriato]:
Per le nuove insert puoi impostare il valore di default, senza dover modificare tutte le query che hai già.
Infatti non dico di usare la query, ma semplicemente un codice che si attivi dopo aver aggiornato il campo.
Daniels118
28-01-2014, 07:55
Allora, non mi è chiaro esattamente cosa c'è nella tua tabella... prima hai scritto l'elenco dei campi e a fianco ad AliquotaIVA hai scritto (A1, A2, A3), quindi suppongo che tale campo non contenga il valore percentuale, ma un codice che lo rappresenta. Ora tu vorresti fare in modo che uno stesso codice rappresenti percentuali diverse in funzione della data dell'operazione.
Ora quello che non capisco è per quale motivo hai bisogno di eseguire del codice dopo aver aggiornato il campo. Cosa ci devi fare?
Per quanto ne so, l'unica cosa che puoi far eseguire in automatico in seguito ad un'operazione di modifica è un trigger, ma questo può contenere solo codice SQL, non VB, e come tale non può interagire con il programma esterno ma solo con il DB stesso.
Ma la domanda rimane sempre la stessa: cosa vorresti fare dentro a questa funzione? Esiste sicuramente una soluzione migliore, oltre che fattibile.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.