คุณสามารถใช้ฟังก์ชัน DFirst และ DLast เพื่อส่งกลับระเบียนแบบสุ่มจากเขตข้อมูลใดเขตข้อมูลหนึ่งในตารางหรือคิวรีเมื่อคุณต้องการค่าใดๆ จากเขตข้อมูลนั้น ใช้ฟังก์ชัน DFirst และ DLast ใน แมโคร โมดูล นิพจน์คิวรี หรือ ตัวควบคุมที่มีการคำนวณ บนฟอร์มหรือรายงาน
ไวยากรณ์
DFirst ( expr , domain [, criteria] )
DLast ( expr , domain [, 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 เพื่อส่งกลับระเบียนแรกหรือระเบียนสุดท้ายในชุดของระเบียน
ตัวอย่าง
Expression |
ผลลัพธ์ |
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" |