นำsubformมาคำนวณอย่างไร
กระทู้เก่าบอร์ด อ.Yeadram

 2,362   3
URL.หัวข้อ / URL
นำsubformมาคำนวณอย่างไร

มี subform ที่สามารถเลือกสินค้า แล้วมีราคา เราสามารถนำข้อมูลในsubform มาคำนวณนอกsubformได้ไหมคะ แต่อยู่ในฟอร์มเดียวกันนะคะ

3 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R12606
ที่ subform ให้ออกแบบเป็นแบบ Continuous
ให้มีส่วนท้ายของฟอร์มด้วย
เพิ่มคอนโทรล textbox ไว้ตัวหนึ่ง สมมติตั้งชื่อไว้ว่า txTotal_s
เขียนนิพจน์ ใส่ไว้ใน textbox ตัวนั้น เช่น =sum([จำนวน]*[ราคา])


ในฟอร์มหลัก หากต้องการนำค่าผลการคำนวนนั้นมาใช้ อาจจะสร้าง textbox ไว้อีกตัวหนึ่ง สมมติว่าชื่อ txTotal_m

ถ้าต้องการค่าผลรวมมาแสดงใน textbox นี้ ทำได้สองวิธีคือการเขียนนิพจน์ หรือการเขียนด้วยโค้ดซึ่งฝังไว้ในเหตุการณ์ที่ต้องการ
การเขียนนิพจน์ ให้เขียน
=[ชื่อคอนโทรลsubform]![form]![txTotal_s]
อาจมี error ค่อยๆ แก้กันไป เนื่องจากอ้างชื่อผิด และ/หรือระบบไม่สามารถแยกแยะชื่อได้ (ส่วนใหญ่ วิซาร์ดมักจะพาเราสร้างคอนโทรลด้วยชื่ออัตโนมัติซึ่งบางที่ก็ซ้ำ เช่น ชื่อฟอร์มย่อย กับชื่อคอนโทรลของฟอร์มย่อย ดันเป็นคำเดียวกัน ระบบแยกแยะไม่ออก เกิด error)

ถ้าจะเขียนเป็นโค้ด อันนี้ปัญหาที่อาจเกิด มีโอกาสน้อย แต่ก็ใช่ว่าจะไม่มี เพราะเหตุผลเดียวกันครับ
ให้อ้าง
me.txTotal_m = me.[ชื่อคอนโทรลฟอร์มย่อย].form.control("txTotal_s")
หรืออาจต้อง
me.txTotal_m = me.[ชื่อคอนโทรลฟอร์มย่อย].form.FooterSection.control("txTotal_s")

ขอย้ำว่าให้ใช้ชื่อคอนโทรลฟอร์มย่อยนะครับ ไม่ใช่ชื่อฟอร์มย่อย (ถ้าใช้วิซาร์ดช่วยสร้างฟอร์มย่อย ระบบมักจะให้เป็นคำเดียวกัน แล้วเกิดปัญหาการอ้างอิงทีหลัง หากต้องมีการเขียนโค้ดหรือนิพจน์อ้างอิง จุดนี้ Access น่าจะปรับปรุงตั้งนานแล้ว ไม่เห็นแก้ไขสักที)
2 @R12672
เจ้าของคำถามหายไป?

ในกรณีทั่วๆไป sub form ไม่จำเป็นต้องใช้ และสามารถทำตามที่คุณ yeadram แจ้งไว้โดยวาง control ที่ footer ก็ได้คำตอบเลย

ส่วนกรณีที่ต้องใช้ sub form จริงๆ ส่วนมากผมชอบใช้วิธี dsum() โดยระบุ เงื่อนไขให้ตรงกับ sub form
3 @R12692
เจ้าของกระทู้มาแล้วค่ะ (กะทิสด!!!)
ก่อนอื่นต้องขอบคุณอาจารย์ yeadram และอาจารย์PichaiTC มากๆเลยนะคะ

คือว่า ในSubform จะมี รายการ(No) ชื่อสินค้า(product) จำนวน(amount) ราคาต่อหน่อย(pricePerUnit) และราคารวม(total)
แล้วในช่องของราคารวม ดิฉันใช้ =[amount]*[pricePerUnit] แล้วดิฉันก็สร้าง Text box เพื่อแสดงผลรวมของทั้งใบเสร็จ(มีรายการสินค้ามากกว่า1รายการ) แล้วดิฉันไม่ทราบว่าจะกำหนด เงือนไข DSum ในText boxดังกล่าวอย่างไรคะ

ขอบคุณล่วงหน้าค่ะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2779s