คุณสามารถใช้ฟังก์ชัน DFirst และ DLast เพื่อส่งกลับระเบียนแบบสุ่มจากเขตข้อมูลเฉพาะในตารางหรือคิวรีเมื่อคุณต้องการค่าใดๆ จากเขตข้อมูลนั้น ใช้ฟังก์ชัน DFirst และ DLast ในแมโคร มอดูล นิพจน์คิวรี หรือตัวควบคุมจากการคํานวณบนฟอร์มหรือรายงาน
ไวยากรณ์
DFirst( ** expr, domain [, criteria**] )
DLast( ** expr, domain [, criteria**] )
ฟังก์ชัน DFirst และ DLast มีอาร์กิวเมนต์เหล่านี้:
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
| expr | จำเป็น นิพจน์ที่ระบุเขตข้อมูลที่คุณต้องการค้นหาค่าแรกหรือค่าสุดท้าย ซึ่งอาจเป็นนิพจน์สตริงที่ระบุเขตข้อมูลในตารางหรือคิวรี หรือนิพจน์ที่ทําการคํานวณข้อมูลในเขตข้อมูลนั้น ใน นิพจน์ คุณสามารถใส่ชื่อของเขตข้อมูลในตาราง ตัวควบคุมบนฟอร์ม ค่าคงที่ หรือฟังก์ชันได้ ถ้า นิพจน์มี ฟังก์ชันอยู่ อาจเป็นได้ทั้งฟังก์ชันที่มีอยู่แล้วภายในหรือที่กําหนดโดยผู้ใช้ แต่ไม่ใช่การรวมโดเมนหรือฟังก์ชันการรวม SQL อื่น |
| โดเมน | จำเป็น นิพจน์สตริงที่ระบุชุดระเบียนที่ประกอบขึ้นเป็นโดเมน |
| เกณฑ์ | ไม่จำเป็น นิพจน์สตริงที่ใช้เพื่อจํากัดช่วงข้อมูลที่ฟังก์ชัน DFirst หรือ DLast ถูกดําเนินการ ตัวอย่างเช่น เกณฑ์ มักจะเทียบเท่ากับส่วนคําสั่ง WHERE ในนิพจน์ SQL โดยไม่มีคําว่า WHERE ถ้าไม่ระบุ เกณฑ์ ฟังก์ชัน DFirst และ DLast จะประเมิน expr กับโดเมนทั้งหมด เขตข้อมูลใดๆ ที่รวมอยู่ใน เกณฑ์ จะต้องเป็นเขตข้อมูลใน โดเมนด้วย มิฉะนั้น ฟังก์ชัน DFirst และ DLast จะส่งกลับค่า Null |
ข้อสังเกต
หมายเหตุ
ถ้าคุณต้องการส่งกลับระเบียนแรกหรือสุดท้ายในชุดระเบียน (โดเมน) คุณควรสร้างคิวรีที่เรียงลําดับเป็นจากน้อยไปหามากหรือจากมากไปหาน้อย และตั้งค่าคุณสมบัติ TopValues เป็น 1 สําหรับข้อมูลเพิ่มเติม ให้ดูหัวข้อคุณสมบัติ TopValues จากโมดูล Visual Basic for Applications (VBA) คุณยังสามารถสร้างวัตถุ ชุดระเบียน 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" |