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