ฟังก์ชัน DFirst, DLast

นำไปใช้กับ
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

คุณสามารถใช้ฟังก์ชัน 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"