คุณสามารถใช้ฟังก์ชัน DSum เพื่อคํานวณผลรวมของชุดค่าในชุดระเบียนที่ระบุ ( โดเมน ) ใช้ฟังก์ชัน DSum ในโมดูล Visual Basic for Applications (VBA) แมโคร นิพจน์คิวรี หรือ ตัวควบคุมที่มีการคำนวณ
ตัวอย่างเช่น คุณสามารถใช้ฟังก์ชัน DSum ในนิพจน์เขตข้อมูลจากการคํานวณในคิวรีเพื่อคํานวณยอดขายรวมที่ทําโดยพนักงานเฉพาะในช่วงระยะเวลาหนึ่ง หรือคุณสามารถใช้ฟังก์ชัน DSum ในตัวควบคุมจากการคํานวณเพื่อแสดงผลรวมสะสมของยอดขายสําหรับผลิตภัณฑ์เฉพาะ
ไวยากรณ์
DSum ( expr , domain [, criteria] )
ไวยากรณ์ของฟังก์ชัน DSum มีอาร์กิวเมนต์ดังนี้
อาร์กิวเมนต์ |
คำอธิบาย |
expr |
จำเป็น นิพจน์ที่ระบุเขตข้อมูลตัวเลขที่มีค่าที่คุณต้องการหาผลรวม ซึ่งอาจเป็น นิพจน์สตริง ที่ระบุเขตข้อมูลในตารางหรือคิวรี หรืออาจเป็นนิพจน์ที่ทําการคํานวณข้อมูลในเขตข้อมูลนั้น ใน expr คุณสามารถใส่ชื่อของเขตข้อมูลในตาราง ตัวควบคุมบนฟอร์ม ค่าคงที่ หรือฟังก์ชัน ถ้า expr มีฟังก์ชันอาจเป็นฟังก์ชันที่มีอยู่แล้วภายในหรือที่ผู้ใช้กําหนดเอง แต่ไม่ใช่ฟังก์ชันการรวมโดเมนอื่นหรือฟังก์ชันการรวม SQL |
โดเมน |
จำเป็น นิพจน์สตริงที่ระบุชุดของระเบียนที่ประกอบด้วยโดเมน ซึ่งอาจเป็นชื่อตารางหรือชื่อแบบสอบถามสําหรับแบบสอบถามที่ไม่จําเป็นต้องใช้พารามิเตอร์ |
เกณฑ์ |
ไม่จำเป็น นิพจน์สตริงที่ใช้เพื่อจํากัดช่วงข้อมูลที่ฟังก์ชัน DSum ถูกดําเนินการ ตัวอย่างเช่น เกณฑ์ มักจะเทียบเท่ากับส่วนคําสั่ง WHERE ในนิพจน์ SQL โดยไม่มีคําว่า WHERE ถ้าไม่ใส่ ค่า criteria ไว้ ฟังก์ชัน DSum จะประเมิน expr เทียบกับทั้งโดเมน เขตข้อมูลใดๆ ที่รวมอยู่ใน เกณฑ์ ต้องเป็นเขตข้อมูลใน โดเมนด้วย มิฉะนั้น ฟังก์ชัน DSum จะ ส่งกลับ Null |
ข้อสังเกต
ถ้าไม่มีระเบียนใดตรงกับอาร์กิวเมนต์ criteria หรือถ้าโดเมนไม่มีระเบียน ฟังก์ชัน DSum จะส่งกลับ Null
ไม่ว่าคุณจะใช้ฟังก์ชัน DSum ในแมโคร มอดูล นิพจน์คิวรี หรือตัวควบคุมจากการคํานวณ คุณต้องสร้างอาร์กิวเมนต์ criteria อย่างรอบคอบเพื่อให้แน่ใจว่าจะได้รับการประเมินอย่างถูกต้อง
คุณสามารถใช้ฟังก์ชัน DSum เพื่อระบุเกณฑ์ในแถว เกณฑ์ ของคิวรี ในเขตข้อมูลจากการคํานวณในนิพจน์คิวรี หรือในแถว อัปเดตเป็น ของ อัปเดตคิวรี
หมายเหตุ: คุณสามารถใช้ฟังก์ชัน DSum หรือ Sum ในนิพจน์เขตข้อมูลจากการคํานวณใน คิวรีแบบใช้หาผลรวม ถ้าคุณใช้ฟังก์ชัน DSum ค่าจะถูกคํานวณก่อนการจัดกลุ่มข้อมูล ถ้าคุณใช้ฟังก์ชัน Sum ข้อมูลจะถูกจัดกลุ่มก่อนค่าในนิพจน์เขตข้อมูลจะถูกประเมิน
คุณอาจต้องการใช้ฟังก์ชัน DSum เมื่อคุณต้องการแสดงผลรวมของชุดค่าจากเขตข้อมูลที่ไม่ได้อยู่ในแหล่งระเบียนสําหรับฟอร์มหรือรายงานของคุณ ตัวอย่างเช่น สมมติว่าคุณมีแบบฟอร์มที่แสดงข้อมูลเกี่ยวกับผลิตภัณฑ์เฉพาะ คุณสามารถใช้ฟังก์ชัน DSum เพื่อรักษายอดขายทั้งหมดของผลิตภัณฑ์นั้นในตัวควบคุมจากการคํานวณ
เคล็ดลับ
ถ้าคุณต้องการรักษาผลรวมสะสมในตัวควบคุมบนรายงาน คุณสามารถใช้คุณสมบัติ RunningSum ของตัวควบคุมนั้นได้ ถ้าเขตข้อมูลที่ใช้เขตข้อมูลนั้นถูกรวมอยู่ในแหล่งระเบียนสําหรับรายงาน ใช้ฟังก์ชัน DSum เพื่อรักษาผลรวมสะสมบนฟอร์ม
หมายเหตุ: การเปลี่ยนแปลงที่ไม่ได้บันทึกไปยังระเบียนใน โดเมน จะไม่ถูกรวมเมื่อคุณใช้ฟังก์ชันนี้ ถ้าคุณต้องการให้ฟังก์ชัน DSum ยึดตามค่าที่เปลี่ยนแปลง คุณต้องบันทึกการเปลี่ยนแปลงโดยการคลิก บันทึกระเบียน ในกลุ่ม ระเบียน บนแท็บ หน้าแรก ย้ายโฟกัสไปยังระเบียนอื่น หรือใช้วิธี อัปเดต
ตัวอย่าง
ใช้ฟังก์ชัน DSum ในนิพจน์ คุณสามารถใช้ฟังก์ชันโดเมน (เช่น DSum) ในแถว อัปเดตเป็น ของคิวรีแบบใช้อัปเดตข้อมูล ตัวอย่างเช่น สมมติว่าคุณต้องการติดตามยอดขายปัจจุบันตามผลิตภัณฑ์ในตาราง ผลิตภัณฑ์ คุณสามารถเพิ่มเขตข้อมูลใหม่ที่เรียกว่า SalesSoFar ลงในตารางผลิตภัณฑ์ และเรียกใช้คิวรีแบบใช้อัปเดตข้อมูลเพื่อคํานวณค่าที่ถูกต้องและอัปเดตระเบียน เมื่อต้องการทําเช่นนี้ ให้สร้างคิวรีใหม่โดยยึดตามตาราง ผลิตภัณฑ์ และบนแท็บ ออกแบบ ในกลุ่ม ชนิดคิวรี ให้คลิก อัปเดต เพิ่มเขตข้อมูล SalesSoFar ลงในตารางคิวรี แล้วพิมพ์ดังต่อไปนี้ในแถว อัปเดตเป็น :
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
เมื่อคุณเรียกใช้คิวรี Access จะคํานวณจํานวนรวมของยอดขายสําหรับแต่ละผลิตภัณฑ์ โดยยึดตามข้อมูลจากตารางรายละเอียดคําสั่งซื้อ ผลรวมของยอดขายสําหรับแต่ละผลิตภัณฑ์จะถูกเพิ่มลงในตาราง ผลิตภัณฑ์
ใช้ DSum ในโค้ด VBA
หมายเหตุ: ตัวอย่างต่อไปนี้จะสาธิตการใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทํางานกับ VBA ให้เลือก การอ้างอิงสําหรับนักพัฒนา ในรายการดรอปดาวน์ที่อยู่ถัดจาก ค้นหา แล้วใส่คําอย่างน้อยหนึ่งคําในกล่องค้นหา
ตัวอย่างต่อไปนี้จะรวมค่าจากเขตข้อมูล ค่าขนส่งสินค้า สําหรับการสั่งซื้อที่จัดส่งไปยังสหราชอาณาจักร โดเมนเป็นตารางใบสั่งซื้อ อาร์กิวเมนต์ criteria จํากัดชุดผลลัพธ์ของระเบียนไว้เฉพาะระเบียนที่ ShipCountryRegion เท่ากับ UK
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK'")
ตัวอย่างถัดไปจะคํานวณผลรวมโดยใช้สองเกณฑ์ที่แยกกัน โปรดสังเกตว่าเครื่องหมายอัญประกาศเดี่ยว (') และเครื่องหมายตัวเลข (#) จะรวมอยู่ในนิพจน์สตริง เพื่อให้สตริงเรียงต่อกัน ตัวอักษรของสตริงจะอยู่ภายในเครื่องหมายอัญประกาศเดี่ยว และวันที่จะอยู่ภายในเครื่องหมายปอนด์
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK' AND _ [ShippedDate] > #1-1-95#")