คุณสามารถใช้ฟังก์ชัน DCount เพื่อกําหนดจํานวนระเบียนที่อยู่ในชุดระเบียน (โดเมน) ที่ระบุ ใช้ฟังก์ชัน DCount ในโมดูล Visual Basic for Applications (VBA), แมโคร, นิพจน์คิวรี หรือตัวควบคุมจากการคํานวณ
ตัวอย่างเช่น คุณสามารถใช้ฟังก์ชัน DCount ในโมดูลเพื่อส่งกลับจํานวนระเบียนในตารางใบสั่งซื้อที่สอดคล้องกับคําสั่งซื้อที่สั่งซื้อในวันที่เฉพาะ
ไวยากรณ์
DCount(expr, domain* [, criteria] )
ไวยากรณ์ของฟังก์ชัน DCount มีอาร์กิวเมนต์ดังนี้
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
| expr | จำเป็น นิพจน์ที่ระบุเขตข้อมูลที่คุณต้องการนับจํานวนระเบียน ซึ่งอาจเป็นนิพจน์สตริงที่ระบุเขตข้อมูลในตารางหรือคิวรี หรืออาจเป็นนิพจน์ที่ทําการคํานวณข้อมูลในเขตข้อมูลนั้น ใน expr คุณสามารถใส่ชื่อของเขตข้อมูลในตาราง ตัวควบคุมบนฟอร์ม ค่าคงที่ หรือฟังก์ชัน ถ้า 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 ด้วย ตัวอย่างต่อไปนี้จะคํานวณจํานวนระเบียนในตาราง Orders
intX = DCount("*", "Orders")
ถ้า โดเมน เป็นตารางที่มีคีย์หลัก คุณยังสามารถนับจํานวนระเบียนทั้งหมดได้โดยการตั้งค่า expr ไปยังเขตข้อมูลคีย์หลัก เนื่องจากจะไม่มี Null ในเขตข้อมูลคีย์หลัก
ถ้า expr ระบุหลายเขตข้อมูล ให้แยกชื่อเขตข้อมูลด้วยตัวดําเนินการเชื่อมต่อ ไม่ว่าจะเป็นเครื่องหมายและ (&) หรือตัวดําเนินการบวก (+) ถ้าคุณใช้เครื่องหมายและเพื่อแยกเขตข้อมูล ฟังก์ชัน 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#