คุณสามารถใช้ฟังก์ชัน 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 ในตัวควบคุมจากการคํานวณเมื่อคุณต้องการระบุเกณฑ์เพื่อจํากัดช่วงของข้อมูลที่ฟังก์ชันจะดําเนินการ ตัวอย่างเช่น เมื่อต้องการแสดงจํานวนการสั่งซื้อที่จะจัดส่งไปยังแคลิฟอร์เนีย ให้ตั้งค่าคุณสมบัติ ControlSource ของกล่องข้อความเป็นนิพจน์ต่อไปนี้:
=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 ยึดตามค่าที่เปลี่ยนแปลง ก่อนอื่นคุณต้องบันทึกการเปลี่ยนแปลงโดยการคลิก บันทึกระเบียน ภายใต้ ระเบียน บนแท็บ ข้อมูล ย้ายโฟกัสไปยังระเบียนอื่น หรือโดยใช้วิธี Update
ตัวอย่างคิวรี
Expression |
ผลลัพธ์ |
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#