อยากทราบการคำนวณจาก Textbox ใน Form แล้วให้บันทึกล
กระทู้เก่าบอร์ด อ.Yeadram

 1,627   9
URL.หัวข้อ / URL
อยากทราบการคำนวณจาก Textbox ใน Form แล้วให้บันทึกล

ก่อนตั้งกระทู้นี้ผมได้ศึกษาการใช้ Textbox ของ Form ให้คำนวณแล้วบันทึกลง Table จากกระทู้ คือทำตามได้แต่เหมือนคำนวณไม่เสร็จ เขียน code ให้คำนวณต่อเนื่องจากผลลัพท์ครั้งที่หนึ่งไม่ได้ จะให้ sum แต่ละอันมารวมกันอีกที เขียนไปแล้วกลับไม่รวมให้ครับ

ปล.ผมไม่ค่อยถนัดเรื่อง code หรือ SQL นะครับ อาศัยทำตามพอได้
ขอบคุณครับ

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

1 @R21797
กระทู้เก่าที่ดูก่อนทำตามได้แค่ คูณกัน แค่เอาผลคูณมากบวกกันอีกทีไม่ได้ครับ
http://www.thai-access.com/yeadram_view.php?topic_id=1968
2 @R21805
เวปบอร์ดนี้มีปัญหาในการโพสรูปลงในคำถาม ถ้าโพสลงในคำตอบเหมือนว่าจะไม่เป็นไร ยังไงช่วยโพสรูปอีกที แล้วช่วยบอกโค้ดที่ทำหน่อยว่าเขียนอะไรไปแล้วบ้าง
3 @R21809
แบบนี้เลยครับ

Private Sub prz01_AfterUpdate()
Mycalculate
End Sub

Private Sub unit01_AfterUpdate()
Mycalculate
End Sub

...ทำแบบนี้อีก 02 ถึง 15 (มีข้อมูลรวม 15 รายการ)
และเขียนโค้ดต่อด้วย

Private Sub cost01_AfterUpdate()
Mycalculate
End Sub

Private Sub cost02_AfterUpdate()
Mycalculate
End Sub

...ใช้เขตข้อมูล cost01 ถึง cost15 เพื่อคำนวณต่อให้เป็น sum
แล้วปิดท้ายด้วย

Sub Mycalculate()
If prz01 = "" Then Exit Sub
If unit01 = "" Then Exit Sub
Me.cost01 = prz01 * unit01
If prz02 = "" Then Exit Sub
If unit02 = "" Then Exit Sub
Me.cost02 = prz02 * unit02
If prz03 = "" Then Exit Sub
If unit03 = "" Then Exit Sub
Me.cost03 = prz03 * unit03
If prz04 = "" Then Exit Sub
If unit04 = "" Then Exit Sub
Me.cost04 = prz04 * unit04
If prz05 = "" Then Exit Sub
If unit05 = "" Then Exit Sub
Me.cost05 = prz05 * unit05
If prz06 = "" Then Exit Sub
If unit06 = "" Then Exit Sub
Me.cost06 = prz06 * unit06
If prz07 = "" Then Exit Sub
If unit07 = "" Then Exit Sub
Me.cost07 = prz07 * unit07
If prz08 = "" Then Exit Sub
If unit08 = "" Then Exit Sub
Me.cost08 = prz08 * unit08
If prz09 = "" Then Exit Sub
If unit09 = "" Then Exit Sub
Me.cost09 = prz09 * unit09
If prz10 = "" Then Exit Sub
If unit10 = "" Then Exit Sub
Me.cost10 = prz10 * unit10
If prz11 = "" Then Exit Sub
If unit11 = "" Then Exit Sub
Me.cost11 = prz11 * unit11
If prz12 = "" Then Exit Sub
If unit12 = "" Then Exit Sub
Me.cost12 = prz12 * unit12
If prz13 = "" Then Exit Sub
If unit13 = "" Then Exit Sub
Me.cost13 = prz13 * unit13
If prz14 = "" Then Exit Sub
If unit14 = "" Then Exit Sub
Me.cost14 = prz14 * unit14
If prz15 = "" Then Exit Sub
If unit15 = "" Then Exit Sub
Me.cost15 = prz15 * unit15
If cost01 = "" Then Exit Sub
If cost02 = "" Then Exit Sub
If cost03 = "" Then Exit Sub
If cost04 = "" Then Exit Sub
If cost05 = "" Then Exit Sub
If cost06 = "" Then Exit Sub
If cost07 = "" Then Exit Sub
If cost08 = "" Then Exit Sub
If cost09 = "" Then Exit Sub
If cost10 = "" Then Exit Sub
If cost11 = "" Then Exit Sub
If cost12 = "" Then Exit Sub
If cost13 = "" Then Exit Sub
If cost14 = "" Then Exit Sub
If cost15 = "" Then Exit Sub
Me.sum = cost01 + cost02 + cost03 + cost04 + cost05 + cost06 + cost07 + cost08 + cost09 + cost10 + cost11 + cost12 + cost13 + cost14 + cost15
End Sub

ปัญหาอยู่ที่ตรง sum สุดท้ายไม่รวม cost01 ถึง cost15 ให้ครับ
แต่ costXX เกิดจาก przXX คูณกับ unitXX ดันคำนวณได้แล้วบันทึกลง table ได้ด้วยครับ


4 @R21810
ตามวิธีการออกแบบโปรแกรมของผู้ Post ลองแก้ไขดังนี้ครับ
ใน Sub MyCalculate เปลี่ยน Exit Sub ทุกตัวเป็น 0 ครับ
น่าจะทำให้ได้ยอดรวมตามต้องการ

แต่มีวิธีการออกแบบโปรแกรมที่ดีกว่านี้ ที่ไม่ต้องเขียนโปรแกรม VBA ยาวๆ ขนาดนี้

5 @R21811
สอบถามคุณ Gun ครับ

ไม่ทราบว่าเปลี่ยน Exit Sub เป็น 0 ทำอย่างไร ผมไม่มีความรู้เกี่ยวกับ VBA อาศัยลองทำตาม หรือถ้ามีวิธีที่ไม่ซับซ้อนรบกวนชี้แนะด้วยครับ

ปล.เคยลองวิธีพื้นๆแบบ excel คือ textbox3 จะเขียนว่า =[textbox1]*[textbox2] ปรากฏว่าได้คำตอบในช่อง textbox3 จริง แต่ไม่บันทึกลง table
6 @R21818
แบบนี้ครับ
ในทุกบรรทัดคำสั่ง if เปลี่ยน Exit Sub เป็น ค่านั้น ๆ = 0


เช่นจาก if prz01 = "" then Exit Sub
เปลี่ยนเป็น if prz01 = "" then prz01 = 0

จาก if cost01 = "" then Exit Sub
เป็น if cost01 = "" then cost01 = 0



7 @R21820
ได้แล้ว ขอบคุณคุณ Gun มากครับ
แต่ติดอีกนิดตรงที่ ถ้าใส่ตัวเลขไม่ครบทุกช่อง จะไม่มีการคำนวณผลรวมให้ครับ อาจแก้ไขโดยการใส่ 0 ในช่องที่ว่างแต่ก็ไม่สะดวก อยากทราบวิธีที่ทำให้คำนวณในช่องรวมได้แม้ว่าจะ blank ก็ตาม
8 @R21823
ตาม Code ใน Sub MyCalculate และเปลี่ยนตามนั้นแล้ว
การทำงานเมื่อเพิ่ม costXX หรือ przXX หรือ unitXX ตัวใดตัวหนี่ง
จะมีผลให้ costXX,przXX,untXXทุกตัวที่เป็น "" จะเปลี่ยนเป็น 0
ไม่น่าจะเกิดเหตุการณ์ตามภาพข้างขวา

หาก Form ต่อเชื่อมกับ Table ให้กำหนด Field ที่เก็บค่าตัวเลข ให้ Property Default Value (ค่าเริ่มต้น) เป็น 0 อาจแก้ไขปัญหานี้ได้
9 @R21824
ขอบคุณครับ ตั้งค่าเริ่มต้นเป็น 0 ได้แล้วครับ พอดีฐานข้อมูลนี้เป็นใบเสร็จแบบง่ายๆ ตอนพิมพ์รายงานเป็นใบเสร็จอาจติด 0 มาในกรณีที่รายการไม่เต็มตามที่ทำไว้ 15 รายการ แต่ปัญหาใหญ่ที่สุดตรงช่องรวมได้แก้ไขเรียบร้อยแล้ว ขอบคุณคุณ Gun อีกครั้งครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3020s