Online Reference

Home

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

DAvg Function

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

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

ไวยากรณ์

DAvg(expr, domain [,criteria] )

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

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

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

เรคคอร์ดที่เก็บค่าว่าง จะไม่ได้รับการนำมาคำนวณหาค่าเฉลี่ย

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

ฟังก์ชัน DAvg สามารถใช้ในการกำหนด criteria ในแถว Criteria ของคิวรี่ เช่น ถ้าต้องการดูรายการสินค้าที่ปริมาณการสั่งซื้อสูงกว่าค่าเฉลี่ยการสั่งซื้อ ให้สร้างคิวรี่ด้วย Table ชื่อ Orders, Orders Details และ Product เพิ่มฟิลด์ Product Name และ Quantity แล้วกำหนด expression ในแถว Criteria ของฟิลด์ Quantity ดังนี้

>DAvg("[Quantity]", "Orders")

นอกจากนี้ฟังก์ชัน DAvg สามารถใช้เป็น expression ของฟิลด์คำนวณในคิวรี่ หรือ แถว Update To ในคิวรี่แบบ Update

หมายเหตุ การใช้ฟังก์ชัน DAvg หรือฟังก์ชัน Avg ใน expression ของฟิลด์คำนวณในคิวรี่ผลรวม ฟังก์ชัน DAvg จะหาผลเฉลี่ยก่อนจัดกลุ่มข้อมูล ส่วนฟังก์ชัน Avg จะจัดกลุ่มข้อมูลก่อนหาค่าเฉลี่ย

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

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

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

ฟังก์ชัน DAvg สามารถใช้ในโมดูล, มาโคร หรือตัว control แบบคำนวณบนฟอร์ม ถ้าฟิลด์ที่ต้องการดูค่าไม่ได้เป็นแหล่งข้อมูลของฟอร์ม เช่น ในฟอร์มที่ใช้แหล่งข้อมูลจาก Table ชื่อ Orders และต้องการดูฟิลด์ Quantity จาก Table ชื่อ Orders Detail เพื่อต้องการทราบจำนวนเฉลี่ยของสินค้าที่สั่งซื้อโดยลูกค้าที่ระบุ ฟังก์ชัน DAvg สามารถหาค่าคำนวณและแสดงผลของข้อมูลบนฟอร์มที่ใช้อยู่ได้

หมายเหตุ ฟังก์ชัน DAvg จะไม่นำเรคคอร์ดที่ยังไม่บันทึกการเปลี่ยนแปลงใน domain มาคำนวณ ถ้าต้องการนำมาคำนวณด้วยให้ทำการบันทึกก่อน

ดูเพิ่มเติม

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

ตัวอย่าง

ตัวอย่างการใช้ฟังก์ชัน DAvg ในการหาค่าค่าขนส่งเฉลี่ยสำหรับกาส่งสิน้าไปยัง UK ตั้งแต่วันที่ 1 มกราคม 1996 ซึ่ง domain คือ Table ชื่อ Orders, อากิวเมนต์ criteria คัดเลือกกลุ่มข้อมูลที่ฟิลด์ ShipCountry เท่ากับ UK และฟิลด์ ShippedDate มากกว่าหรือเท่ากับ 1 มกราคม 1996 หมายเหตุใช้ AND สำหรับ criteria แบบหลายเงื่อนไขในอากิวเมนต์ criteria เพื่อคัดเลือกเรคคอร์ดที่สอดคล้องกับ 2 เงื่อนไข

Dim dblX As Double

dblX = DAvg("[Freight]", "Orders","[ShipCountry] = 'UK' AND [ShippedDate] >= #1-1-96#")

ตัวอย่างต่อมาเป็นการคำนวณโดยตัวแปร (strCountry) ในอากิวเมนต์ criteria หมายเหตุใช้เครื่องหมาย ( ‘ ) กับ expression แบบข้อความ และใช้ OR สำหรับ criteria แบบหลายเงื่อนไขในอากิวเมนต์ criteria เพื่อคัดเลือกข้อมูลที่สอดคล้องกับ 1 เงื่อนไขหรือ 2 เงื่อนไขที่กำหนด

Dim dblX As Double, strCountry As String

strCountry = "UK"

dblX = DAvg("[Freight]", "Orders", "[ShipCountry] = '" & strCountry & "'OR [ShippedDate] >= #1-1-96#")