sum เฉพาะเรคคอร์ดที่มีการเช็คบ๊อกซ์
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 347   5
URL.หัวข้อ / URL
sum เฉพาะเรคคอร์ดที่มีการเช็คบ๊อกซ์

ผมลองทำโปรแกรม รับชำระค่าเทอม โดยเราจะทำรายการไว้ล่วงหน้าแล้ว แต่เมื่อมีการมาชำระจริง
อาจชำระไม่หมด โดยจะเลือกบางรายการโดยการเช็คบ๊อกเอา แต่ติดปัญหา sum มันจะรวมทั้งหมดเลยครับ
-------------------------------------------------------------------------------------------------------------
เราจะหาค่ารวมจำนวนเงินใน Subform โดยมีเงื่อนไขว่าเฉพาะเรคคอร์ดที่มีการเช็คบ๊อกได้อย่างไรครับ
เช่น
xsum= ค่าผลรวมของจำนวนเงินเฉพาะเรคคอร์ดที่มีการเช็คบ๊อกครับ
msgbox xsum

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

1 @R02433
ลองใช้ DSum() ดูครับ

=DSum("[ชื่อฟีลด์ที่ต้องการ SUM]","ชื่อตารางเป้าหมาย","[ฟีลด์ที่เป็น CheckBox]=True")
2 @R02434
ฟิลด์ที่เช็คบอกซ์ของผมมันอยู่อีกตารางนึงน่ะครับ
คือผมใช้ 2 ตารางเชื่อกันด้วยคีย์ Pk กับ Fk แล้วทำเป็น Subform ทั้งคู่น่ะครับ
ชื่อฟิลด์ที่ต้องการ SUM คือ Sum_rate
ชื่อตารางเป้าหมาย คือ payedlist_st
ส่วนฟิลด์เงื่อนไขอยู่อีกตารางนีงครับ คือ chk อยู่ในตาราง payedlist_duty

ผมใช้แบบนี้ครับ
xsum = DSum("[sum_rate]", "payedlist_st", "[payedlist_duty]![chk]=True")

msgbox xsum
-----------------------------------------------------
มีข้อความขึ้นมาว่า
Run - time error 2471
ไม่มี automation operation "[payedlist_duty]![chk]"

ไม่ทราบต้องแก้ไขอย่างไรครับ
3 @R02435
ต้องเอาทั้ง 2 ตารางไปสร้างเป็น Query ก่อนครับ เลือกเอาเฉพาะฟีลด์ที่ต้องการจาก 2 ตาราง แล้วบันทึกไว้

จากนั้นมาใช้ DSum() จาก Query ดังกล่าวดังนี้ครับ

xsum =DSum("[sum_rate]", "ชื่อ Query ที่สร้างขึ้นใหม่", "[chk]=True")

4 @R02436
ขอบคุณครับอาจารย์ เดี๋ยวผมจะลองดูใหม่
5 @R02437
ขอถามคำแนะนำเพิ่มครับ จาก Subform ดังกล่าว ที่สร้างจา 2 ตารางผมสามารถทำปุ่ม addnew recordset ได้หรือไม่ครับ(จะให้ผู้คลิกจากบนเมนฟอร์ม) แล้วให้ add new ใส่ค่าในคอมโบบ๊อก (ใส่ค่ารหัสลงในฟิลด์ list_duty)
*** Data Source ของ Subform สร้างจากคิวรี่แล้ว copy สั่งมาวางใน Data ของ Subform เป็นดังนี้ครับ
-----------------------------------------------
SELECT payedlist_duty.payedlist_id, payedlist_duty.list_duty, payedlist_duty.date_payed, list_dutyc.rate, payedlist_duty.remark, payedlist_duty.chk
FROM list_dutyc INNER JOIN payedlist_duty ON list_dutyc.list_duty = payedlist_duty.list_duty
WHERE (((list_dutyc.level)="c"));

---------------------------------------
payedlist_id คือ Pk สร้างความสัมพันธ์กับตารางบนเมนฟอร์มครับ ซึ่งเป็นหมายเลขใบเสร็จครับ

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