Можете да използвате функциите DFirst и DLast , за да върнете случаен запис от определено поле в таблица или заявка, когато просто ви трябва някаква стойност от това поле. Използвайте функциите DFirst и DLast в макрос, модул, израз на заявка или изчисляема контрола във формуляр или отчет.
Синтаксис
DFirst( ** expr, domain [, criteria**] )
DLast( ** expr, domain [, criteria**] )
Функциите DFirst и DLast имат следните аргументи:
| Аргумент | Описание |
|---|---|
| израз | Задължително. Израз, който идентифицира полето, от което искате да намерите първата или последната стойност. Това може да бъде или низов израз, идентифициращ поле в таблица или заявка, или израз, който извършва изчисление върху данните в това поле. В expr можете да включите името на поле в таблица, контрола на формуляр, константа или функция. Ако expr съдържа функция, тя може да бъде вградена или дефинирана от потребителя, но не и друга агрегатна функция на домейн или SQL агрегатна функция. |
| domain | Задължителен. Низов израз, идентифициращ набора от записи, който съставлява домейна. |
| criteria | Незадължително. Низов израз, използван за ограничаване на диапазона от данни, върху които се изпълнява функцията DFirst или DLast . Например критерий често е еквивалентен на клаузата WHERE в SQL израза, без думата WHERE. Ако criteria е пропуснато, функциите DFirst и DLast изчисляват израз спрямо целия домейн. Всяко поле, което е включено в критериите , трябва да бъде също и поле в домейн; в противен случай функциите DFirst и DLast връщат Null. |
Забележки
Забележка
Ако искате да върнете първия или последния запис в набор от записи (домейн), трябва да създадете заявка, сортирана във възходящ или низходящ ред, и да зададете свойството TopValues на 1. За повече информация вж. темата за свойството TopValues . От модул на Visual Basic for Applications (VBA) можете също да създадете обект ADO Recordset и да използвате методите MoveFirst или MoveLast , за да върнете първия или последния запис в набор от записи.
Примери
| Израз | Резултати |
|---|---|
| SELECT DFirst("DateofSale";"ProductSales") AS Expr1 FROM ProductSales GROUP BY DFirst("DateofSale";"ProductSales"); | Връща случайната стойност от полето "DateofSale" на таблицата "ProductSales". Ако таблицата има "първичен ключ", тя ще върне стойността "ПЪРВА" на "Дата на продажба" на базата на възходящ ред на първичния ключ. |
| SELECT DLast("DateofSale";"ProductSales") AS FirstDis_ID FROM ProductSales GROUP BY DLast("DateofSale";"ProductSales"); | Връща случайната стойност от полето "DateofSale" на таблицата "ProductSales". Ако таблицата има "първичен ключ", тя ще върне стойността "LAST" на "DateofSale" на базата на възходящ ред на първичния ключ. Връща първия "ИД на продукт" от таблицата "Продажби_продукти", където стойността за "Отстъпка" е "0", и показва резултата в колоната "FirstDis_ID". |
| SELECT DLast("ProductID";"ProductSales";"Discount=0") AS LastDis_ID FROM ProductSales GROUP BY DLast("ProductID";"ProductSales";"Discount=0"); | Връща последния "ИД на продукт" от таблицата "Продажби_продукти", където стойността за "Отстъпка" е "0", и показва резултата в колоната "LastDis_ID". |