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
:D หากยังไม่มีความรู้ให้ศึกษามาก่อนตามลำดับครับ กรณีมีความรู้บ้างแล้ว ให้แนบไฟล์ตัวอย่างพร้อม 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
:D ค่อย ๆ ถามตอบกันไปครับ

สำหรับข้อ 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
:D จากไฟล์ที่แนบมา ช่วยยกตัวอย่างการกรอกข้อมูล และตัวอย่างคำตอบที่ถูกต้องมาด้วย จะได้สะดวกในการทำความเข้าใจว่าต้องการให้แสดงผลที่ไหน อย่างไร ด้วยค่าเท่าใด เช่นนี้เป็นต้นครับ

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
:D จากภาพที่แนบมานั้น ปุ่มคำนวณเขียนคำสั่งไว้ที่ไหน อย่างไร หากเป็น VBA จำเป็นต้องเขียนมาเองก่อน ติดแล้วค่อยถามกันต่อครับ :?:

Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข

Posted: Mon May 16, 2016 1:17 am
by mikungiii
ตอนนี้ยังไม่มีแนวทางในกรเขียนเลยค่ะว่าควร เขียนไปแนวไหน ควรใช้ มาโคร หรือ นิพจน์ด้วยเงื่อนไขใด TT ไม่รู้จริงๆค่ะมืดแปดด้านมาก

Re: ช่วยหน่อนค่ะการคำนวณตามเงื่อนไข

Posted: Tue May 17, 2016 8:27 pm
by snasui
:D จากไฟล์ที่แนบ 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
:D ไม่สามารถดาวน์โหลดไฟล์ได้ครับ

กรุณาทำเป็นตัวอย่างไฟล์แล้วส่งไปที่ 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
:D เขียน 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
:D ตัวอย่าง 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
:D ควรแสดงผลลัพธ์ที่ 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 ได้นั้น โปรแกรมฟ้องว่าอย่างไรแจ้งมาด้วยเสมอครับ