Online Reference

Home

Microsoft Reference
Knowledge Developer Database Internet Resource Forum
Access
Domain Aggregate Function
ดาวน์โหลดคู่มือ

DCount Function

ใช้ในการนับจำนวนเรคคอร์ดที่อยู่ในกลุ่มเรคคอร์ด (Domain) ที่ระบุ ซึ่งสามารถนำไปใช้ในชุดคำสั่ง Visual Basic, มาโคร, expression ในคิวรี่ หรือตัว control แบบคำนวณ

ตัวอย่างเช่น สามารถใช้ฟังก์ชัน DCount ในโมดูลเพื่อส่งค่าของจำนวนเรคคอร์ดใน Table ชื่อ Orders ที่ตรงกับสถานที่ในการสั่งซื้อของวันที่ระบุ

ไวยากรณ์

DCount(expr, domain [,criteria] )

อากิวเมนต์ของฟังก์ชัน DCount มีรายละเอียด คือ

อากิวเมนต์ รายละเอียด
expr บังคับ, เป็น expression ที่ระบุถึงฟิลด์ที่เก็บข้อมูลตัวเล็กที่ต้องการหาค่าผลรวม ซึ่งสามารถเป็น expression ของข้อความที่ระบุฟิลด์ใน Table หรือคิวรี่ หรือเป็น expression หาค่าคำนวณของฟิลด์ ในอากิวเมนต์ expr สามารถใช้ชื่อของฟิลด์ของ Table, ตัว control บนฟอร์ม, ค่าคงที่ หรือฟังก์ชัน ถ้าอากิวเมนต์ expr ได้รวมฟังก์ชันซึ่งเป็นได้ทั้งฟังก์ชันที่มากับโปรแกรม (built-in function) หรือผู้ใช้กำหนดเอง แต่ห้ามใช้ฟังก์ชัน Domain aggregate อื่นๆ และ SQL aggregate
domain บังคับ, เป็น expression ของข้อความที่ระบุถึงกลุ่มของเรคคอร์ดที่กำหนดเป็น domain ซึ่งสามารถเป็นชื่อ Table หรือ คิวรี่
criteria ไม่บังคับ, เป็น expression ของข้อความที่ใช้คัดเลือกช่วงของข้อมูลที่จะให้ฟังก์ชัน DCount หาค่า เช่น criteria เทียบได้กับคำสั่ง WHERE clause ใน expression ของ SQL ถ้าไม่กำหนดอากิวเมนต์ criteria ฟังก์ชัน DCount จะหาค่าอากิวเมนต์ expr กับ domain ฟิลด์ที่นำไปใช้ในอากิวเมนต์ criteria ต้องเป็นฟิลด์ที่อยู่ใน domain ถ้าเป็นกรณีอื่นๆ ฟังก์ชัน DCount ส่งค่าเป็นค่าว่าง (Null)

ลักษณะการประยุกต์

การใช้ฟังก์ชัน DCount ในการนับจำนวนเรคคอร์ดใน domain โดยไม่ต้องการจำนวนค่าเฉพาะ ถึงแม้ว่า อากิวเมนต์ expr จะสามารถหาค่าของฟิลด์ แต่ฟังก์ชัน DCount จะหาค่าจำนวนของเรคคอร์ด จึงไม่มีค่าของการคำนวณจากการหาค่าด้วย expr

การใช้ฟังก์ชัน DCount ในมาโคร หรือโมดูล, expression ในคิวรี่หรือตัว control ต้องสร้างอากิวเมนต์ criteria อย่างระมัดระวังเพื่อทำให้มั่นใจว่าการคำนวณถูกต้อง

การใช้ฟังก์ชัน DCount ในตัว control แบบคำนวณ ต้องมีการกำหนด criteria ในการคัดเลือกช่วงของข้อมูลที่จะให้ฟังก์ชัน DCount หาค่า เช่น ถ้าต้องการดูจำนวนการส่งสินค้าตามใบสั่งซื้อที่ส่งไป CA ให้ตั้งค่าของคุณสมบัติ ControlSource ใน text box ด้วย expression ดังนี้

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

ส่วนการหาจำนวนเรคคอร์ดทั้งหมดใน domain โดยมีการคัดเลือกข้อมูลให้ใช้ฟังก์ชัน Count จะง่ายกว่า

Tip ฟังก์ชัน Count มีความเร็วในการนับเรคคอร์ดเมื่อใช้ในคิวรี่ ดังนั้นควรใช้ฟังก์ชัน Count ใน expression ของคิวรี่แทนที่ฟังก์ชัน DCount และใช้ฟังก์ชัน DCount ในการนับเรคคอร์ดของ domain ภายในโมดูล, มาโคร หรือตัว control แบบคำนวณ

ฟังก์ชัน DCount สามารถนับจำนวนเรคคอร์ดของฟิลด์ที่ไม่ได้เป็นแหล่งข้อมูลของฟอร์มหรือรายงาน เช่น ต้องการดูจำนวนใบสั่งซื้อใน Table ชื่อ Orders บนตัว control แบบคำนวณบนฟอร์มที่ใช้ Table ชื่อ Product

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

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

ถ้า domain เป็น Table ที่มี primary key การนับเรคคอร์ดทั้งหมดสามารถตั้งค่าอากิวเมนต์ expr ด้วยฟิลด์ที่เป็น primary key เพราะ primary key ไม่สามารถเป็นค่าว่าง

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

intX = DCount("*", "Orders")
intW = DCount("[ShipName]", "Orders") ' ค่าส่งออก 831
intX = DCount("[ShipRegion]", "Orders") ' ค่าส่งออก 323
intY = DCount("[ShipName] + [ShipRegion]", "Orders") ' ค่าส่งออก 323
intZ = DCount("[ShipName] & [ShipRegion]", "Orders") ' ค่าส่งออก 831

หมายเหตุ เครื่องหมายแบ่งฟิลด์เหมาะสมที่จะใช้กับข้อความ ส่วนเครื่องหมายบวกให้ใช้ในการบวกตัวเลข และหลีกเลี่ยงการทำงานลักษณะอื่นๆ เพราะในบางกรณีอาจจะเกิดผลลัพธ์เป็นค่าว่างจาก expr

ดูเพิ่มเติม

ฟังก์ชัน Count (“SQL Language Reference”), ฟังก์ชัน DAvg, ฟังก์ชัน DSum

ตัวอย่าง

ตัวอย่างการใช้ฟังก์ชัน DCount ในการนับจำนวนการส่งสินค้าตามใบสั่งซื้อไป UK หลังจากวันที่ 1 มกราคม 1995 โดย domian คือ Table ชื่อ Orders อากิวเมนต์ criteria คัดเลือกเรคคอร์ดเฉพาะที่ฟิลด์ ShipCountry = UK และ ShippedDate มากกว่า 1-1-95

intX = DCount("[ShippedDate]", "Orders", "[ShipCountry] = 'UK' AND [ShippedDate] > #1-1-95#")

ตัวอย่างต่อมา กำหนดอากิวเมนต์ criteria ใช้ค่าปัจจุบันจาก combox ชื่อ ShipCountry โดยค่าของ combox ชื่อ ShipCountry มาจากฟิลด์ ShipCountry ของ Table ชื่อ Orders หมายเหตุ การอ้างอิงตัว control ไม่อยู่ในเครื่องหมายคำพูด ทั้งนี้เพื่อทำให้มั่นใจว่าเมื่อมีการเรียกฟังก์ชัน DCount ทุกครั้ง Microsoft Access จะนำค่าปัจจุบันมาให้

intX = DCount("[ShippedDate]", "Orders", "[ShipCountry] = '" & Forms!Orders![ShipCountry] & "'AND [ShippedDate] > #1-1-95#")