Come creare report invecchiamento in Access

March 30

Un rapporto di invecchiamento è un rapporto che mostra i conti crediti diviso per età. Il rapporto rende facile individuare i clienti che sono in ritardo con i pagamenti. La chiave per la creazione di questi tipi di report in Microsoft Access è di fare una vista dei dati che ha queste colonne già creati. Questo viene fatto usando una tecnica potente linguaggio di query chiamato un sub-select.

istruzione

1 Utilizzare la funzione DateDiff per calcolare quanto in ritardo qualsiasi pagamento. Come un esempio molto semplificato, supponiamo che ci siano due tabelle nel database di Access: Ordini e Cliente. Ogni cliente ha un nome e un ID. Ogni ordine ha un ID, un ID cliente, un importo, una data di ordine e una data di pagamento. Se l'ordine non è ancora pagato, la data di pagamento è nullo. Il numero di giorni in cui il pagamento di ordine è in ritardo è il numero di giorni tra oggi e la data dell'ordine. Per ottenere questo valore in una query di Access, utilizzare la funzione DateDiff. Un esempio potrebbe essere DateDiff ( "d", OrderDate, Ora). La "d" indica alla funzione per contare il numero di giorni (al contrario di mesi, anni, ore, minuti, ecc). L ' "ora" nella chiamata di funzione indica la data corrente secondo l'orologio del computer. Un sub-select è una query di selezione separato nidificato all'interno di una query di selezione esistente. Il sub-SELECT deve restituire un solo valore. Ecco un esempio di una query con un sub-select che dà solo gli ordini meno di 30 giorni di ritardo:

c.custname SELECT,

(SELECT sum(o.Amount) FROM Orders o WHERE datediff("d", o.OrderDate, now) < 31 AND o.PaymentDate is NULL AND o.CustomerID = c.ID) as [30 Days or Less],

FROM Customer c ORDER BY c.CustName

2 Combinare più sub-query in una singola query di grandi dimensioni. Grazie alla combinazione di questi tipi di query sub, ognuno con un diverso insieme di criteri, viene creato un set di colonne in cui ogni colonna è l'importo totale dei pagamenti per un determinato cliente che sono in ritardo per il numero di giorni specificato. Ecco un esempio:

c.custname SELECT,

(SELECT sum(o.Amount) FROM Orders o WHERE datediff("d", o.OrderDate, now) < 31 AND o.PaymentDate is NULL AND o.CustomerID = c.ID) as [30 Days or Less],
(SELECT sum(o.Amount) FROM Orders o WHERE datediff("d", o.OrderDate, now) > 30 AND datediff("d", o.OrderDate, now) < 61 AND o.PaymentDate is NULL AND o.CustomerID = c.ID) as [31-60 Days],
(SELECT sum(o.Amount) FROM Orders o WHERE datediff("d", o.OrderDate, now) > 60 AND datediff("d", o.OrderDate, now) < 91 AND o.PaymentDate is NULL AND o.CustomerID = c.ID) as [61-90 Days],
(SELECT sum(o.Amount) FROM Orders o WHERE datediff("d", o.OrderDate, now) > 90 AND datediff("d", o.OrderDate, now) < 121 AND o.PaymentDate is NULL AND o.CustomerID = c.ID) as [91-120 Days],
(SELECT sum(o.Amount) FROM Orders o WHERE datediff("d", o.OrderDate, now) > 120 AND o.PaymentDate is NULL AND o.CustomerID = c.ID) as [121 Days or More]

FROM Customer c ORDER BY c.CustName

Questa query darà 6 colonne: Nome cliente, importo totale meno di 30 giorni di ritardo, importo tra i 31 ei 60 giorni di ritardo, 61 e 90 giorni, 91 e 120 giorni, e più di 121 giorni di ritardo. Una volta che la query è impostato il modo in cui ha bisogno di essere, salvarlo in Access.

3 Creare il report. Una query salvata come quello sopra può essere utilizzato come base di una relazione come se si trattasse di un tavolo. La procedura guidata rapporto può essere utilizzato, selezionare la query salvata invece dei tavoli.

Consigli e avvertenze

  • Non consentire l'accesso a generare automaticamente un rapporto sulla query salvata. La funzione di auto-generare aggiunge raggruppamento che causerà un errore quando corsa. Utilizzare la procedura guidata report invece.

Articoli Correlati