คุณสามารถใช้ฟังก์ชัน DSum เพื่อคํานวณผลรวมของชุดค่าในชุดระเบียนที่ระบุ (โดเมน) ได้ ใช้ฟังก์ชัน DSum ในโมดูล Visual Basic for Applications (VBA) แมโคร นิพจน์คิวรี หรือตัวควบคุมจากการคํานวณ
ตัวอย่างเช่น คุณสามารถใช้ฟังก์ชัน DSum ในนิพจน์เขตข้อมูลจากการคํานวณในคิวรีเพื่อคํานวณยอดขายรวมที่ทําโดยพนักงานที่ระบุในช่วงเวลาหนึ่ง หรือคุณสามารถใช้ฟังก์ชัน DSum ในตัวควบคุมจากการคํานวณเพื่อแสดงผลรวมสะสมของยอดขายสําหรับผลิตภัณฑ์เฉพาะ
ไวยากรณ์
DSum(expr, domain [, criteria] )
ไวยากรณ์ของฟังก์ชัน DSum มีอาร์กิวเมนต์ดังนี้
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
| expr | จำเป็น นิพจน์ที่ระบุเขตข้อมูลตัวเลขที่มีค่าที่คุณต้องการหาผลรวม ซึ่งสามารถเป็นนิพจน์สตริงที่ระบุเขตข้อมูลในตารางหรือคิวรี หรืออาจเป็นนิพจน์ที่ทําการคํานวณข้อมูลในเขตข้อมูลนั้น ใน นิพจน์ คุณสามารถใส่ชื่อของเขตข้อมูลในตาราง ตัวควบคุมบนฟอร์ม ค่าคงที่ หรือฟังก์ชันได้ ถ้า นิพจน์มี ฟังก์ชันอยู่ อาจเป็นได้ทั้งฟังก์ชันที่มีอยู่แล้วภายในหรือที่กําหนดโดยผู้ใช้ แต่ไม่ใช่การรวมโดเมนหรือฟังก์ชันการรวม SQL อื่น |
| โดเมน | จำเป็น นิพจน์สตริงที่ระบุชุดระเบียนที่ประกอบขึ้นเป็นโดเมน ซึ่งสามารถเป็นชื่อตารางหรือชื่อคิวรีสําหรับคิวรีที่ไม่จําเป็นต้องใช้พารามิเตอร์ |
| เกณฑ์ | ไม่จำเป็น นิพจน์สตริงที่ใช้เพื่อจํากัดช่วงข้อมูลที่ฟังก์ชัน DSum ถูกดําเนินการ ตัวอย่างเช่น เกณฑ์ มักจะเทียบเท่ากับส่วนคําสั่ง WHERE ในนิพจน์ SQL โดยไม่มีคําว่า WHERE ถ้าไม่ใส่ เกณฑ์ ฟังก์ชัน DSum จะประเมิน expr กับโดเมนทั้งหมด เขตข้อมูลใดๆ ที่รวมอยู่ใน เกณฑ์ จะต้องเป็นเขตข้อมูลใน โดเมนด้วย มิฉะนั้นฟังก์ชัน DSum จะส่งกลับค่า Null |
ข้อสังเกต
ถ้าไม่มีระเบียนใด ตรงกับอาร์กิ วเมนต์เกณฑ์ หรือถ้าโดเมนไม่มีระเบียนเลย ฟังก์ชัน DSum จะส่งกลับค่า Null
ไม่ว่าคุณจะใช้ฟังก์ชัน DSum ในแมโคร มอดูล นิพจน์คิวรี หรือตัวควบคุมจากการคํานวณหรือไม่ คุณต้องสร้างอาร์กิวเมนต์ เกณฑ์ อย่างระมัดระวังเพื่อให้แน่ใจว่า อาร์กิวเมนต์เกณฑ์จะถูกประเมินอย่างถูกต้อง
คุณสามารถใช้ฟังก์ชัน 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 ให้เลือก การอ้างอิงนักพัฒนาในรายการ ดรอปดาวน์ที่อยู่ถัดจาก ค้นหา แล้วใส่คําอย่างน้อยหนึ่งคําในกล่องค้นหา
ตัวอย่างต่อไปนี้จะรวมค่าจากเขตข้อมูล ค่าขนส่งสินค้า สําหรับการสั่งซื้อที่จัดส่งไปยังสหราชอาณาจักร โดเมนคือตารางใบสั่งซื้อ อาร์กิวเมนต์ เกณฑ์ จะจํากัดชุดระเบียนผลลัพธ์ให้เป็นระเบียนที่ 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#")