ฟังก์ชัน DCount

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

คุณสามารถใช้ฟังก์ชัน DCount เพื่อกําหนดจํานวนระเบียนที่อยู่ในชุดระเบียนที่ระบุ (โดเมน) ใช้ฟังก์ชัน DCount ในโมดูล Visual Basic for Applications (VBA) แมโคร นิพจน์คิวรี หรือตัวควบคุมจากการคํานวณ

ตัวอย่างเช่น คุณสามารถใช้ฟังก์ชัน DCount ในโมดูลเพื่อส่งกลับจํานวนระเบียนในตารางใบสั่งซื้อที่สอดคล้องกับใบสั่งซื้อที่วางไว้ในวันที่ใดวันหนึ่ง

ไวยากรณ์

DCount(expr, domain* [, criteria] )

ไวยากรณ์ของฟังก์ชัน DCount มีอาร์กิวเมนต์ดังนี้

อาร์กิวเมนต์ คำอธิบาย
expr จำเป็น นิพจน์ที่ระบุเขตข้อมูลที่คุณต้องการนับระเบียน ซึ่งสามารถเป็นนิพจน์สตริงที่ระบุเขตข้อมูลในตารางหรือคิวรี หรืออาจเป็นนิพจน์ที่ทําการคํานวณข้อมูลในเขตข้อมูลนั้น ใน นิพจน์ คุณสามารถใส่ชื่อของเขตข้อมูลในตาราง ตัวควบคุมบนฟอร์ม ค่าคงที่ หรือฟังก์ชันได้ ถ้า นิพจน์มี ฟังก์ชันอยู่ อาจเป็นได้ทั้งฟังก์ชันที่มีอยู่แล้วภายในหรือที่กําหนดโดยผู้ใช้ แต่ไม่ใช่การรวมโดเมนหรือฟังก์ชันการรวม SQL อื่น
โดเมน จำเป็น นิพจน์สตริงที่ระบุชุดระเบียนที่ประกอบขึ้นเป็นโดเมน ซึ่งสามารถเป็นชื่อตารางหรือชื่อคิวรีสําหรับคิวรีที่ไม่จําเป็นต้องใช้พารามิเตอร์
เกณฑ์ ไม่จำเป็น นิพจน์สตริงที่ใช้เพื่อจํากัดช่วงของข้อมูลที่ฟังก์ชัน DCount ถูกดําเนินการ ตัวอย่างเช่น เกณฑ์ มักจะเทียบเท่ากับส่วนคําสั่ง WHERE ในนิพจน์ SQL โดยไม่มีคําว่า WHERE ถ้า ไม่ใส่เกณฑ์ ฟังก์ชัน DCount จะประเมิน expr กับโดเมนทั้งหมด เขตข้อมูลใดๆ ที่รวมอยู่ใน เกณฑ์ จะต้องเป็นเขตข้อมูลใน โดเมนด้วย มิฉะนั้นฟังก์ชัน DCount จะส่งกลับค่า Null

ข้อสังเกต

ใช้ฟังก์ชัน DCount เพื่อนับจํานวนระเบียนในโดเมนเมื่อคุณไม่ต้องการทราบค่าเฉพาะของระเบียน แม้ว่าอาร์กิวเมนต์ expr จะสามารถทําการคํานวณบนเขตข้อมูลได้ แต่ฟังก์ชัน DCount จะนับจํานวนระเบียน ค่าของการคํานวณใดๆ ที่ดําเนินการโดย expr ไม่พร้อมใช้งาน

ใช้ฟังก์ชัน DCount ในตัวควบคุมจากการคํานวณเมื่อคุณต้องการระบุเกณฑ์เพื่อจํากัดช่วงของข้อมูลที่ฟังก์ชันถูกดําเนินการ ตัวอย่างเช่น เมื่อต้องการแสดงจํานวนคําสั่งซื้อที่จะจัดส่งไปยังแคลิฟอร์เนีย ให้ตั้งค่าคุณสมบัติ แหล่งตัวควบคุม ของ กล่องข้อความเป็นนิพจน์ต่อไปนี้:

=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")

ถ้าคุณต้องการเพียงนับระเบียนทั้งหมดในโดเมนโดยไม่มีการระบุข้อจํากัดใดๆ ให้ใช้ฟังก์ชัน Count

เคล็ดลับ ฟังก์ชัน Count ได้รับการปรับให้เหมาะสมกับความเร็วในการนับระเบียนในคิวรี ใช้ฟังก์ชัน Count ในนิพจน์คิวรีแทนฟังก์ชัน DCount และตั้งค่าเกณฑ์เสริมเพื่อบังคับใช้ข้อจํากัดใดๆ ในผลลัพธ์ ใช้ฟังก์ชัน DCount เมื่อคุณต้องนับระเบียนในโดเมนจากภายในโค้ดมอดูลหรือแมโคร หรือในตัวควบคุมที่ผ่านการคํานวณ

คุณสามารถใช้ฟังก์ชัน DCount เพื่อนับจํานวนระเบียนที่มีเขตข้อมูลเฉพาะที่ไม่ได้อยู่ในแหล่งระเบียนที่ฟอร์มหรือรายงานของคุณยึดตาม ตัวอย่างเช่น คุณสามารถแสดงจํานวนการสั่งซื้อในตารางใบสั่งซื้อในตัวควบคุมที่คํานวณบนแบบฟอร์มที่ยึดตามตารางผลิตภัณฑ์

ฟังก์ชัน DCount จะไม่นับระเบียนที่มีค่า Null ในเขตข้อมูลที่อ้างอิงโดย expr เว้นแต่ว่า expr จะเป็นอักขระตัวแทนเครื่องหมายดอกจัน (*) ถ้าคุณใช้เครื่องหมายดอกจัน ฟังก์ชัน DCount จะคํานวณจํานวนระเบียนทั้งหมด รวมถึงระเบียนที่มีเขตข้อมูล Null ด้วย ตัวอย่างต่อไปนี้จะคํานวณจํานวนระเบียนในตารางใบสั่งซื้อ

intX = DCount("*", "Orders")

ถ้าโดเมนเป็นตารางที่มีคีย์หลัก คุณยังสามารถนับจํานวนระเบียนทั้งหมดได้ด้วยการตั้งค่า expr ให้กับเขตข้อมูลคีย์หลัก เนื่องจากเขตข้อมูลคีย์หลักจะไม่มีค่า Null

ถ้า นิพจน์ ระบุหลายเขตข้อมูล ให้แยกชื่อเขตข้อมูลด้วยตัวดําเนินการเชื่อมต่อกัน เครื่องหมายและ (&) หรือตัวดําเนินการบวก (+) ถ้าคุณใช้เครื่องหมายและ () เพื่อแยกเขตข้อมูล ฟังก์ชัน DCount จะส่งกลับจํานวนระเบียนที่มีข้อมูลในเขตข้อมูลใดๆ ที่แสดงรายการ ถ้าคุณใช้ตัวดําเนินการเพิ่ม ฟังก์ชัน DCount จะส่งกลับเฉพาะจํานวนระเบียนที่มีข้อมูลในเขตข้อมูลที่แสดงรายการทั้งหมดเท่านั้น ตัวอย่างต่อไปนี้จะแสดงเอฟเฟ็กต์ของตัวดําเนินการแต่ละตัวเมื่อใช้กับเขตข้อมูลที่มีข้อมูลในระเบียนทั้งหมด (ShipName) และเขตข้อมูลที่ไม่มีข้อมูล (ShipRegion)

intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")

หมายเหตุ

เครื่องหมาย และ () เป็นตัวดําเนินการที่ต้องการสําหรับการต่อสตริง คุณควรหลีกเลี่ยงการใช้ตัวดําเนินการบวกสําหรับสิ่งอื่นนอกเหนือจากการบวกตัวเลข เว้นแต่ว่าคุณต้องการเผยแพร่ Null ผ่านนิพจน์โดยเฉพาะ

การเปลี่ยนแปลงที่ไม่ได้บันทึกกับระเบียนใน โดเมน จะไม่ถูกรวมเมื่อคุณใช้ฟังก์ชันนี้ ถ้าคุณต้องการให้ฟังก์ชัน DCount ยึดตามค่าที่เปลี่ยนแปลง ก่อนอื่นคุณต้องบันทึกการเปลี่ยนแปลงโดยการคลิก บันทึกระเบียน ภายใต้ ระเบียน บนแท็บ ข้อมูล ย้ายโฟกัสไปยังระเบียนอื่น หรือโดยใช้วิธีอัปเดต

ตัวอย่างคิวรี

นิพจน์ ผลลัพธ์
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); ส่งกลับจํานวนค่าในเขตข้อมูล "ProductID" ของตาราง "ProductSales" ที่มีค่า "Discount" เป็น "0"
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); ส่งกลับจํานวนค่าในเขตข้อมูล "ProductID" ของตาราง "ProductSales" โดย "DateofSale" คือหนึ่งวันก่อนหน้าวันที่ปัจจุบัน

ตัวอย่าง VBA

หมายเหตุ

ตัวอย่างต่อไปนี้จะสาธิตการใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทํางานกับ VBA ให้เลือก การอ้างอิงนักพัฒนาในรายการ ดรอปดาวน์ที่อยู่ถัดจาก ค้นหา แล้วใส่คําอย่างน้อยหนึ่งคําในกล่องค้นหา

ฟังก์ชันต่อไปนี้จะส่งกลับจํานวนคําสั่งซื้อที่จัดส่งไปยังประเทศ/ภูมิภาคที่ระบุหลังจากวันที่จัดส่งที่ระบุ โดเมนคือตารางใบสั่งซื้อ

Public Function OrdersCount _
    (ByVal strCountryRegion As String, _
    ByVal dteShipDate As Date) As Integer
    OrdersCount = DCount("[ShippedDate]", "Orders", _
        "[ShipCountryRegion] = '" & strCountryRegion & _
        "' AND [ShippedDate] > #" & dteShipDate & "#")
End Function

เมื่อต้องการเรียกฟังก์ชัน ให้ใช้บรรทัดโค้ดต่อไปนี้ในหน้าต่าง Immediate

:OrdersCount "UK", #1/1/96#