Impostare una Fattura con Access

Anonimo
2016-12-16T07:54:33+00:00

Buongiorno a tutti, ho la necessità di un vostro parere tecnico per poter impostare nel migliore dei modi una fattura in Access in base ad una mia esigenza lavorativa.

Ho creato due tabelle in relazione tra loro (come da immagine allegata) che mi deve permettere di fatturare ad un determinato cliente.

Ciò che chiedo di conoscere ed apprendere con il vostro aiuto è questo:

  1. per poter numerare progressivamente una fattura ( io ho creato un campo ID_fattura ), va bene cosi?, e per iniziare una nuova numerazione ad inizio anno cosa fare?
  2. vanno bene tutti i campi nella tblRigheFattura impostati una sola volta oppure devo crearne tanti quanto sono le righe che desidero visualizzare in fattura?
  3. i campi che mi calcolano i totali IVA e Totale Fattura vanno bene già inseriti in tabella oppure devo creare 2 caselle non associate sulla maschera della fattura?
  4. come poterle archiviare dopo la stampa?

Mi fermo qui per non creare confusione. 

In attesa di vostri preziosi consigli vi auguro buona giornata.

Ciao Nicola.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2016-12-19T15:07:32+00:00

Ciao,

non so se il tuo Db sarà in multiutenza, io imposterei il numero di fattura nell'evento prima di inserire.

Forse potrebbe essere utile dividere in due campi distinti l'anno e il progressivo di fattura.

'Nel Valore Predefinito va inserito =GeneraProgressivo1()

'Nel VBA Su Caricamento (Load) va inserito Me.txtCampo.DefaultValue = "=GeneraProgressivo1()"

Immagino che sia da correggere in GeneraProgressivo() senza 1

Ciao Mimmo

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2016-12-19T13:44:52+00:00

Come ti dicevo all'inizio del post, il campo ID è da considerarsi un campo interno di lavoro che non è da confondersi con il numero di fattura (infatti su cancellazioni si creano buchi). Sarebbe opportuno non mostrare mai un ID all'utente (vedi maschera frmFattura) bensì il numero di fattura (gestito da te su codice come massimo valore presente per l'anno incrementato di 1).

Il tuo codice:

Dim strSQL As String

strSQL = "DELETE * FROM tblRigheFattura WHERE ID_Fattura=" & Me!ID_Fattura

DBEngine(0)(0).Execute strSQL

RunCommand acCmdSelectRecord

DoCmd.RunCommand acCmdDeleteRecord

lo cambierei con :

Dim strSQL As String

strSQL = "DELETE * FROM tblRigheFattura WHERE ID_Fattura=" & Me!ID_Fattura

DBEngine(0)(0).Execute strSQL

strSQL = "DELETE * FROM tblFatture WHERE ID_Fattura=" & Me!ID_Fattura

DBEngine(0)(0).Execute strSQL

Ciao Mimmo

La risposta è stata utile?

0 commenti Nessun commento

25 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-12-16T10:02:52+00:00

    Ciao,

    non pensare alle maschere per ora, parliamo di come organizzare i dati nelle tabelle.

    tblFattura

    Fatt_Id

    Fatt_Fornitore_Id

    Fatt_Numero

    Fatt_Data

    Fatt_Aliquota_Iva (se applicabile all'intera fattura, altrimenti l'avrai nelle righe di fattura)

    tblFatturaRighe

    FaRi_Id

    FaRi_Fattura_Id

    FaRi_Prodotto_Id  (se prevedi una tabella dei prodotti, altrimenti avrai la sola descrizione del prodotto)

    FaRi_Quantità

    FaRi_Prezzo

    FaRi_Sconto

    FaRi_Aliquota_Iva  (se non è presente a livello di fattura perché unica)

    Per quanto alla numerazione la potrai sempre ottenere con qualcosa del genere:

    NZ(DMax("Fatt_Numero","tblFattura","Year(Fatt_Data) = '" & Year(Date()) & "'"),0) + 1

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-12-16T08:44:56+00:00

    Ciao Mimmo, grazie per il tuo cortese intervento.

    Per quanto riguarda le righe della fattura creo una sottomaschera foglio dati oppure come ho notato su alcuni esempi di fatture Acces su internet creo tanti campi quante sono le righe che mi interessano?

    Per es. fare in questo modo?

    Descrizione, Importo ecc

    Desrizione1; Importo1 ecc

    Descrizione2,Importo2 e cosi via fino a quante righe voglio in fattura.

    Per quanto riguarda la numerazione della fattura ad anno nuovo invece deve sempre ripartire da 1 ma variare l'anno.

    Spero di essere stato chiaro.

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-12-16T08:31:17+00:00

    Ciao Nicola,

    io utilizzerei 3 tabelle, tblFornitori, tblFattura e tblRigheFattura.

    Supponendo che la fattura può avere più righe di prodotto con ciscuna un suo prezzo, sconto...

    TotaleIva TotaleImponibile e totaleFattura sono tutti dati ricavabili dal dettaglio (righe) di fattura.

    1) per poter numerare progressivamente una fattura ( io ho creato un campo ID_fattura ), va bene cosi?, e per iniziare una nuova numerazione ad inizio anno cosa fare?

    No, il campo Id non è utilizzabile. Devi definire un NumeroFattura progressivo dell'anno a parte. Come sai il campo Id potrebbe generare dei buchi che il numero fattura non può avere.

    Per avere il successivo numero di fattura, devi estrarre il massimo numero per un anno ed aggiungervi 1.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento