คุณสามารถใช้ฟังก์ชัน DFirst และ DLast เพื่อส่งกลับระเบียนแบบสุ่มจากเขตข้อมูลใดเขตข้อมูลหนึ่งในตารางหรือคิวรีเมื่อคุณต้องการค่าใดๆ จากเขตข้อมูลนั้น ใช้ฟังก์ชัน DFirst และ DLast ในแมโคร มอดูล นิพจน์คิวรี หรือตัวควบคุมจากการคํานวณบนฟอร์มหรือรายงาน
ไวยากรณ์
DFirst( ** expr, โดเมน [, criteria**] )
DLast( ** expr, โดเมน [, criteria**] )
ฟังก์ชัน DFirst และ DLast มีอาร์กิวเมนต์ดังนี้
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
| expr | จำเป็น นิพจน์ที่ระบุเขตข้อมูลที่คุณต้องการค้นหาค่าแรกหรือค่าสุดท้าย ซึ่งอาจเป็นนิพจน์สตริงที่ระบุเขตข้อมูลในตารางหรือคิวรี หรือนิพจน์ที่ทําการคํานวณข้อมูลในเขตข้อมูลนั้น ใน expr คุณสามารถใส่ชื่อของเขตข้อมูลในตาราง ตัวควบคุมบนฟอร์ม ค่าคงที่ หรือฟังก์ชัน ถ้า expr มีฟังก์ชันอาจเป็นฟังก์ชันที่มีอยู่แล้วภายในหรือที่ผู้ใช้กําหนดเอง แต่ไม่ใช่ฟังก์ชันการรวมโดเมนอื่นหรือฟังก์ชันการรวม SQL |
| โด เมน | จำเป็น นิพจน์สตริงที่ระบุชุดของระเบียนที่ประกอบด้วยโดเมน |
| เกณฑ์ | ไม่จำเป็น นิพจน์สตริงที่ใช้เพื่อจํากัดช่วงข้อมูลที่ฟังก์ชัน DFirst หรือ DLast ถูกดําเนินการ ตัวอย่างเช่น เกณฑ์ มักจะเทียบเท่ากับส่วนคําสั่ง WHERE ในนิพจน์ SQL โดยไม่มีคําว่า WHERE ถ้าละ เกณฑ์ ไว้ ฟังก์ชัน DFirst และ DLast จะประเมิน expr เทียบกับทั้งโดเมน เขตข้อมูลใดๆ ที่รวมอยู่ใน เกณฑ์ ต้องเป็นเขตข้อมูลใน โดเมนด้วย มิฉะนั้น ฟังก์ชัน DFirst และ DLast จะส่งกลับ Null |
ข้อสังเกต
หมายเหตุ
ถ้าคุณต้องการส่งกลับระเบียนแรกหรือระเบียนสุดท้ายในชุดของระเบียน (โดเมน) คุณควรสร้างคิวรีที่เรียงลําดับจากน้อยไปหามากหรือจากมากไปหาน้อย และตั้งค่าคุณสมบัติ TopValues เป็น 1 สําหรับข้อมูลเพิ่มเติม ให้ดูหัวข้อคุณสมบัติ TopValues จากโมดูล Visual Basic for Applications (VBA) คุณยังสามารถสร้างวัตถุ Recordset ADO และใช้เมธอด MoveFirst หรือ MoveLast เพื่อส่งกลับระเบียนแรกหรือระเบียนสุดท้ายในชุดของระเบียน
ตัวอย่าง
| นิพจน์ | ผลลัพธ์ |
|---|---|
| SELECT DFirst("DateofSale","ProductSales") AS Expr1 FROM ProductSales GROUP BY DFirst("DateofSale","ProductSales"); | ส่งกลับค่าสุ่มจากเขตข้อมูล "DateofSale" ของตาราง "ProductSales" ถ้าตารางมี "คีย์หลัก" จะส่งกลับค่า "FIRST" ของ "DateofSale" โดยยึดตามลําดับจากน้อยไปหามากของคีย์หลัก |
| SELECT DLast("DateofSale","ProductSales") AS FirstDis_ID FROM ProductSales GROUP BY DLast("DateofSale","ProductSales"); | ส่งกลับค่าสุ่มจากเขตข้อมูล "DateofSale" ของตาราง "ProductSales" ถ้าตารางมี "คีย์หลัก" จะส่งกลับค่า "LAST" ของ "DateofSale" โดยยึดตามลําดับจากน้อยไปหามากของคีย์หลัก ส่งกลับ "ProductID แรก" จากตาราง "ProductSales" ที่ค่า "Discount" เป็น "0" และแสดงผลลัพธ์ในคอลัมน์ "FirstDis_ID" |
| SELECT DLast("ProductID","ProductSales","Discount=0") AS LastDis_ID FROM ProductSales GROUP BY DLast("ProductID","ProductSales","Discount=0"); | ส่งกลับ "ProductID" สุดท้ายจากตาราง "ProductSales" ที่ค่า "Discount" คือ "0" และแสดงผลลัพธ์ในคอลัมน์ "LastDis_ID" |