กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
347 5
URL.หัวข้อ /
URL
sum เฉพาะเรคคอร์ดที่มีการเช็คบ๊อกซ์
ผมลองทำโปรแกรม รับชำระค่าเทอม โดยเราจะทำรายการไว้ล่วงหน้าแล้ว แต่เมื่อมีการมาชำระจริง
อาจชำระไม่หมด โดยจะเลือกบางรายการโดยการเช็คบ๊อกเอา แต่ติดปัญหา sum มันจะรวมทั้งหมดเลยครับ
-------------------------------------------------------------------------------------------------------------
เราจะหาค่ารวมจำนวนเงินใน Subform โดยมีเงื่อนไขว่าเฉพาะเรคคอร์ดที่มีการเช็คบ๊อกได้อย่างไรครับ
เช่น
xsum= ค่าผลรวมของจำนวนเงินเฉพาะเรคคอร์ดที่มีการเช็คบ๊อกครับ
msgbox xsum
อาจชำระไม่หมด โดยจะเลือกบางรายการโดยการเช็คบ๊อกเอา แต่ติดปัญหา sum มันจะรวมทั้งหมดเลยครับ
-------------------------------------------------------------------------------------------------------------
เราจะหาค่ารวมจำนวนเงินใน Subform โดยมีเงื่อนไขว่าเฉพาะเรคคอร์ดที่มีการเช็คบ๊อกได้อย่างไรครับ
เช่น
xsum= ค่าผลรวมของจำนวนเงินเฉพาะเรคคอร์ดที่มีการเช็คบ๊อกครับ
msgbox xsum
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
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]"
ไม่ทราบต้องแก้ไขอย่างไรครับ
คือผมใช้ 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")
จากนั้นมาใช้ 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 กว่ารายการ (ตอนนี้ผมทำเป็นคอมโบบ๊อกซ์ ไม่สะดวกเพราะมีหลายบรรทัดครับ)
*** 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 กว่ารายการ (ตอนนี้ผมทำเป็นคอมโบบ๊อกซ์ ไม่สะดวกเพราะมีหลายบรรทัดครับ)
Time: 0.1147s
=DSum("[ชื่อฟีลด์ที่ต้องการ SUM]","ชื่อตารางเป้าหมาย","[ฟีลด์ที่เป็น CheckBox]=True")