È possibile usare le funzioni DFirst e DLast per restituire un record casuale da un campo specifico in una tabella o una query quando è semplicemente necessario un valore qualsiasi di questo campo. Usare le funzioni DFirst e DLast in una macro, un modulo, un'espressione di query o un controllo calcolato in una maschera o un report.
Sintassi
DFirst ( espr , dominio [, criteri] )
DLast ( espr , dominio [, criteri] )
Le funzioni DFirst e DLast hanno gli argomenti seguenti:
Argomento |
Descrizione |
espressione |
Obbligatorio. Espressione che identifica il campo per cui si vuole trovare il primo o l'ultimo valore. Può essere un'espressione stringa che identifica un campo in una tabella o una query oppure un'espressione che esegue un calcolo sui dati del campo. In espr è possibile includere il nome di un campo di una tabella, un controllo di una maschera, una costante o una funzione. Se espr include una funzione, questa può essere una funzione predefinita o definita dall'utente, ma non un'altra funzione di aggregazione sui domini o una funzione di aggregazione SQL. |
dominio |
Obbligatorio. Espressione stringa che identifica il set di record che costituisce il dominio. |
criteri |
Facoltativo. Espressione stringa usata per limitare l'intervallo di dati su cui viene eseguita la funzione DFirst o DLast. Ad esempio, criteri equivale spesso alla clausola WHERE in un'espressione SQL, senza la parola WHERE. Se criteri viene omesso, le funzioni DFirst e DLast valutano espr rispetto all'intero dominio. Qualsiasi campo incluso in criteri deve essere anche un campo in dominio; in caso contrario, le funzioni DFirst e DLast restituiscono un valore Null. |
Osservazioni
Nota: Se si vuole restituire il primo o l'ultimo record in un set di record (un dominio), è necessario creare una query in ordine crescente o decrescente e impostare la proprietà .PrimiValori su 1. Per altre informazioni vedere l'argomento sulla proprietà .PrimiValori. Da un modulo di Visual Basic, Applications Edition (VBA) è anche possibile creare un oggetto ADO Recordset e usare il metodo MoveFirst o MoveLast per restituire il primo o l'ultimo record in un set di record.
Esempi
Espressione |
Risultati |
SELECT DFirst("DateofSale","ProductSales") AS Expr1 FROM ProductSales GROUP BY DFirst("DateofSale","ProductSales"); |
Restituisce il valore casuale dal campo "DateofSale" della tabella "ProductSales". Se la tabella ha una "chiave primaria", restituirà il valore "PRIMO" della "DateofSale" in base all'ordine crescente della chiave primaria. |
SELECT DLast("DateofSale","ProductSales") AS FirstDis_ID FROM ProductSales GROUP BY DLast("DateofSale","ProductSales"); |
Restituisce il valore casuale dal campo "DateofSale" della tabella "ProductSales". Se la tabella ha una "chiave primaria", restituirà il valore "ULTIMO" della "DateofSale" in base all'ordine crescente della chiave primaria. restituisce il primo "IDProdotto" dalla tabella "VenditeProdotto", dove il valore "Sconto" è "0" e visualizza il risultato nella colonna "FirstDis_ID". |
SELECT DLast("ProductID","ProductSales","Discount=0") AS LastDis_ID FROM ProductSales GROUP BY DLast("ProductID","ProductSales","Discount=0"); |
Restituisce l'ultimo "IDProdotto" dalla tabella "VenditeProdotto", dove il valore "Sconto" è "0" e visualizza il risultato nella colonna "LastDis_ID". |