Page 1 of 1
ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Thu May 12, 2016 5:39 pm
by mikungiii
ไม่มีความรู้ทางด้านนิพจน์ และ VBA เท่าไรค่ะ
อยากให้ท่านอาจารย์ช่วยหน่อยค่ะ
เริ่มต้นสั่งให้เลือก ปุ่มตัวเลือกก่อน โดยสร้างเป็นกลุ่มไว้แล้ว ซึ่งจะให้มีค่าต่างกันอย่างไรคะ
หลังจากเลือกแล้ว สร้างปุ่มให้คำนวณดังนี้
ถ้า ราคากำไรรวม >= ปุ่มตัวเลือก ในช่อง Total ราคารวมจะเท่าเดิม
แต้ถ้า ราคากำไรรวม < ปุ่มตัวเลือก จะนำเอา [(ปุ่มตัวเลือก-ราคากำไรรวม)+ช่อง Total ราคารวม] จะปรากฏราคาใหม่ในช่อง Total
ประมาณนี้นะคะ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Thu May 12, 2016 8:58 pm
by snasui
หากยังไม่มีความรู้ให้ศึกษามาก่อนตามลำดับครับ กรณีมีความรู้บ้างแล้ว ให้แนบไฟล์ตัวอย่างพร้อม Code ที่เขียนมาเองแล้ว อธิบายขั้นตอนการทำงาน พร้อมคีย์คำตอบที่ต้องการลงมาในไฟล์ด้วย แจ้งด้วยว่าติดขัดในขั้นตอนใด จะได้ตอบได้ตรงประเด็นครับ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Fri May 13, 2016 2:14 am
by mikungiii
ในฟอร์ม SALE นะคะอาจารย์
เมื่อทำการกำหนดรหัสลูกค้า จะแสดง Zone ลูกค้ามาค่ะ ซึ่งแต่ละ Zone มีต้นทุนในการขนส่งไม่เท่ากัน
และ ทำการเลือกสินค้า แล้วกด F9 จะคำนวณ "ราคารวม" และ "กำไรรวม" ที่ได้ ออกมา
ซึ่งยังติดตรงข้างล่างนี้ค่ะ
1. อยากให้มันเลือก Zone ให้ตรงกับข้างบนเลย (อันนี้ไม่ได้ไม่เป็นไรค่ะ)
2. ตัวเลือก Zone จะกำหนดค่าต้นทุนในการขนส่งไม่เท่ากัน กำหนดอย่างไรคะ เช่น zoneA = 16 ,zoneC = 32
3. แล้วสุดท้ายต้องการให้ เมื่อกดปุ่ม "คำนวณการขนส่ง" ให้โปรแกรมคำนวณผลต่างของ ต้นทุนตาม Zone ที่เลือก กับ กำไรรวม
ถ้าต้นทุนมากกว่าผลกำไร ให้นำผลต่างไปรวมกับช่อง "ราคารวม"
ถ้าต้นทุนน้อยกว่าผลกำไร ช่อง "ราคารวม"จะเท่าเดิมค่ะ
http://www.drop4shared.com/36a142af ไฟล์แนบค่ะ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Sat May 14, 2016 9:03 pm
by snasui
ค่อย ๆ ถามตอบกันไปครับ
สำหรับข้อ 1 ลองทำตามด้านล่างและทำกับทุก Option Button ครับ
ส่วนข้อ 2 กำหนดให้แสดงตรงไหน อย่างไร ช่วยอธิบายมาอีกรอบ เข้าใจว่าจะส่งผลไปยังข้อ 3 ด้วยครับ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Sun May 15, 2016 1:50 am
by mikungiii
ก่อนอื่นต้องขอบพระคุณมากๆเลยค่ะ
ส่วนข้อ2 และ ข้อ3 พอคลิกปุ่มคำนวณ ให้ดึงค่า OptionButton ที่เลือก และดึงกำไรรวม ไปคำนวณเลยได้มั้ยคะ ประมาณนี้ค่ะ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Sun May 15, 2016 6:20 am
by snasui
จากไฟล์ที่แนบมา ช่วยยกตัวอย่างการกรอกข้อมูล และตัวอย่างคำตอบที่ถูกต้องมาด้วย จะได้สะดวกในการทำความเข้าใจว่าต้องการให้แสดงผลที่ไหน อย่างไร ด้วยค่าเท่าใด เช่นนี้เป็นต้นครับ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Sun May 15, 2016 10:53 pm
by mikungiii
การกรอกข้อมูล : ขั้นตอนคือเลือกลูกค้า และสินค้าที่จะสั่ง กด F9 มันจะแสดงราคารวม(Total) และ กำไร(A) ที่ได้ ออกมา
การกำหนดค่า : ลูกค้าแต่ละคนมี Zone(B) กำหนดไว้แล้ว
- แต่ละโซน มีค่าไม่เท่ากัน ต้องกำหนดค่าให้แต่ละ optionbotton ยังไงคะ ?
ให้ zoneA=16,zoneB=27,zoneC=43,ZoneD=60,zoneE=75
คำนวนค่าขนส่ง : โดยกดที่ปุ่มคำนวณ มีเงื่อนไขว่า กำไร(A)ครั้งนี้ >= ค่า Zone(B) ส่งผลให้ในช่องราคารวม(Total) จะไม่บวกอะไรเพิ่มเพิ่ม
แต่ ถ้า กำไร(A)ครั้งนี้ < ค่า Zone(B) ก็จะนำค่า [ ((B)-(A)) + เพิ่มในช่องราคารวม(Total) ] แสดงผลที่ช่องราคารวมค่ะ
ขอโทษค่ะอาจารย์ที่อธิบายไม่ค่อยเข้าใจ TT
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Sun May 15, 2016 11:38 pm
by snasui
จากภาพที่แนบมานั้น ปุ่มคำนวณเขียนคำสั่งไว้ที่ไหน อย่างไร หากเป็น VBA จำเป็นต้องเขียนมาเองก่อน ติดแล้วค่อยถามกันต่อครับ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Mon May 16, 2016 1:17 am
by mikungiii
ตอนนี้ยังไม่มีแนวทางในกรเขียนเลยค่ะว่าควร เขียนไปแนวไหน ควรใช้ มาโคร หรือ นิพจน์ด้วยเงื่อนไขใด TT ไม่รู้จริงๆค่ะมืดแปดด้านมาก
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Tue May 17, 2016 8:27 pm
by snasui
จากไฟล์ที่แนบ Link มา ปุ่มคำนวณมีคำสั่งเขียนไว้แล้ว เมื่อคลิกจึงคำนวณค่าออกมาได้
ไม่ทราบว่าเขียนที่ใด เขียนไว้ว่าอย่างไรครับ
Form ในไฟล์กับภาพที่แนบมาด้านบนไม่เหมือนกันทั้งหมด ไม่ทราบว่าได้ Update ไปแค่ไหน อย่างไร ควรแนบตัวอย่างที่เป็นตัวล่าสุดมาครับ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Tue May 17, 2016 10:57 pm
by mikungiii
ตอนนี้ได้แก้ไข รูปแบบหน้าต่างไปค่ะ
ตอนนี้เหลือปัญหาเดียวแล้วคือ เงื่อนไข การเลือกคำนวณราคาใหม่ค่ะ
เขียนไว้ตรงนี้ค่ะ แต่ตรงช่อง Total มันยังไม่เปลี่ยนให้ค่ะ ไม่รู้ผิดตรงไหน
Private Sub Command359_Click()
If Forms("SALE").Controls("Text346") < Forms("SALE").Controls("Text346") =True Then
Forms("Frmb").Controls("Text111") = ((Forms("SALE").Controls("Text346") - Forms("Frmb").Controls("Text79")) + Forms("Frmb").Controls("Text111")
End If
End Sub
คำนวนราคาใหม่ : โดยกดที่ปุ่มคำนวณราคาใหม่ มีเงื่อนไขว่า กำไร(A)ครั้งนี้ < ค่า Zone(B) ส่งผลให้
ที่ช่องTotal = [ ((B)-(A)) + เพิ่มในช่องราคารวม(Total) ]
แต่ตรงช่อง Total มันยังไม่เปลี่ยนให้ค่ะ
ไฟล์แนบใหม่ค่ะ
http://www.drop4shared.com/1f94b477
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Wed May 18, 2016 7:55 pm
by snasui
ไม่สามารถดาวน์โหลดไฟล์ได้ครับ
กรุณาทำเป็นตัวอย่างไฟล์แล้วส่งไปที่
snasui@gmail.com อีกรอบครับ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Wed May 18, 2016 9:00 pm
by mikungiii
ส่งไปทางเมลล์แล้วค่ะอาจารย์
ตอนนี้ พบปัญหาแล้วค่ะ
ใช้โค็ตนี้อยู่ค่ะ
Private Sub Command359_Click()
If [Text79] < [Text346] Then
[Text111] = [Text111] + ([Text346] - [Text79])
End If
End Sub
แต่ [Text111] กับ [Text79] มันอยู่ในฟอร์มย่อยค่ะ ทำให้มันไม่สามารถดึงตัวเลขไปคำนวณได้
ต้องแก้ไขอย่างไรคะ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Wed May 18, 2016 10:11 pm
by snasui
เขียน Form กำกับเข้าไปด้วยครับ เช่น
Code: Select all
Private Sub Command359_Click()
If Forms![Form1]![Text79] < Forms![Form1]![Text346] Then
Forms![Form1]![Text111] = Forms![Form1]![Text111] + (Forms![Form1]![Text346] - Forms![Form1]![Text79])
End If
End Sub
การโพสต์ Code ควรโพสต์ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและแตกต่างจากข้อความทั่วไป ดูตัวอย่างได้จาก Link นี้ครับ
viewtopic.php?f=6&t=1187
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Wed May 18, 2016 10:18 pm
by mikungiii
ขอบคุณค่ะอาจารย์ แต่มันยังทำไม่ได้
โปรแกรมแจ้งว่า ไม่พบฟอร์ม"frmb" ที่อ้างอิง
ที่เป็นฟอร์มย่อย ที่ใส่ในฟอร์มหลักนี้ค่ะ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Fri May 20, 2016 9:16 am
by snasui
ตัวอย่าง Code ตามด้านล่าง ลองปรับปรุงดูครับ
Code: Select all
Private Sub Command359_Click()
Dim valA As Double
Dim valB As Double
Dim valC As Double
Dim subFrm As Form
Set subFrm = Form_Frmb
valA = Me.Text346.Value
valB = subFrm.Text79.Value
valC = subFrm.Text111.Value
If valA < 43 Then
valC = valA - valB + valA
End If
End Sub
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Fri May 20, 2016 3:52 pm
by mikungiii
แสดงผลได้แล้วค่ะ อาจารย์
แต่ยังติดอยู่นิดหน่อยค่ะ มันไม่สามารถคำนวณแล้วแสดงค่าใน Textbox นี้ได้ เพราะตรง subFrm.Text111.Value มันมีแหล่งตัวควบคุม =Sum([Money]) อันนี้อยู่ ทำอย่างไรให้มันสามารถอัพเดทค่าใน Textbox นี้ ได้หรือไม่คะ
Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข
Posted: Fri May 20, 2016 6:32 pm
by snasui
ควรแสดงผลลัพธ์ที่ Control ตัวอื่นซึ่งอาจจะสร้างขึ้นใหม่ แทนที่จะนำกลับไปแสดงที่ subFrm.Text111 จะได้ติดตามได้ว่าเดิมเป็นเท่าใด
Code นั้น ผมประสงค์ให้ปรับใช้ ไม่ใช่นำไปใช้ตรง ๆ กรณีต้องการจะ Assign ค่าให้กับ subFrm.Text111 ก็ให้แทน
valC
ด้วย
subFrm.Text111
เช่น
Code: Select all
If valA < 43 Then
subFrm.Text111.Value = valA - valB + valA
End If
เป็นต้น
ที่บอกว่าไม่สามารถแสดงใน subFrm.Text11.Value ได้นั้น โปรแกรมฟ้องว่าอย่างไรแจ้งมาด้วยเสมอครับ