Funzioni DFirst, DLast

Si applica a
Access per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

È 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 di tale campo. In espr è possibile includere il nome di un campo in una tabella, un controllo in una maschera, una costante o una funzione. Se espr include una funzione, può essere predefinita o definita dall'utente, ma non un'altra funzione di aggregazione di dominio o di aggregazione SQL.
dominio Obbligatorio. Un'espressione di 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 è spesso equivalente 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), è consigliabile creare una query ordinata in ordine crescente o decrescente e impostare la proprietà TopValues 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".