Page 4 of 5
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Fri Oct 27, 2017 10:10 pm
by snasui

ช่วยแสดงวิธีเลือกให้ข้อมูลหายมาอย่างละเอียดครับ
สิ่งที่ถามตอบกันอยู่นี่เฉพา ComboBox1, ComboBox2, TextBox3 และ TextBox4 เท่านั้น หากเป็น Object อื่นที่กระทบกับ Object เหล่านี้ให้พยายามปรับมาเองก่อน แล้วค่อยแจ้งสิ่งที่ยังเป็นปัญหามาใหม่ ระบุลำดับขั้นตอนมาอย่างละเอียดครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Mon Oct 30, 2017 8:57 am
by Benmore
snasui wrote:
ช่วยแสดงวิธีเลือกให้ข้อมูลหายมาอย่างละเอียดครับ
สิ่งที่ถามตอบกันอยู่นี่เฉพา ComboBox1, ComboBox2, TextBox3 และ TextBox4 เท่านั้น หากเป็น Object อื่นที่กระทบกับ Object เหล่านี้ให้พยายามปรับมาเองก่อน แล้วค่อยแจ้งสิ่งที่ยังเป็นปัญหามาใหม่ ระบุลำดับขั้นตอนมาอย่างละเอียดครับ
ตัวอย่าง เช่น เมื่อเลือกข้อมูลในcombox1 เป็นเสื้อแขนยาว combobox2 เป็นไซส์ M textbox 4 ใส่จำนวนเป็น 1 ข้อมูลทั้งหมดก็จะแสดงใน textbox3 คือ เสื้อแขนยาว ไซส์ M จำนวน 1
แต่เมื่อเลือกข้อมูลใน combobox1 ใหม่ เป็น กางเกง ข้อมูลใน textbox3 ก็จะเปลี่ยนเป็น แค่ กางเกง ไซส์ M จำนวน 1 ข้อมูลที่เลือกใหม่ไม่ถูกแสดงให้เรียงลำดับลงมาแต่เสดงแทนที่ จึงไม่สามารถบันทึกลงในชีท excel "การเบิก" ได้ตามที่ใสโค้ดไว้ค่ะ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Oct 31, 2017 10:35 am
by logic
น่าสนใจดีครับ
สรุปว่าให้เรียงลำดับลงมาแทนที่จะแทนที่ข้อมูล แบบนี้หรือครับ
รอบแรก
combox1 เป็นเสื้อแขนยาว
combobox2 เป็นไซส์ M
textbox 4 ใส่จำนวนเป็น 1
ให้ textbox3 คือ เสื้อแขนยาว ไซส์ M จำนวน 1
ถัดมา 1
ถ้ากรอก textbox 4 เป็น 5 ให้ textbox3 แสดงแบบไหน
ถ้ากรอก textbox 4 ซ้ำอีกทีเป็น 10 ให้ textbox3 แสดงแบบไหน
ถัดมา 2
ถ้าผมเลือก combobox เป็น ไซส์ L ซ้ำอีกที ให้ textbox3 แสดงแบบไหนครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Oct 31, 2017 10:43 am
by Benmore
logic wrote:น่าสนใจดีครับ
สรุปว่าให้เรียงลำดับลงมาแทนที่จะแทนที่ข้อมูล แบบนี้หรือครับ
รอบแรก
combox1 เป็นเสื้อแขนยาว
combobox2 เป็นไซส์ M
textbox 4 ใส่จำนวนเป็น 1
ให้ textbox3 คือ เสื้อแขนยาว ไซส์ M จำนวน 1
ถัดมา 1
ถ้ากรอก textbox 4 เป็น 5 ให้ textbox3 แสดงแบบไหน
ถ้ากรอก textbox 4 ซ้ำอีกทีเป็น 10 ให้ textbox3 แสดงแบบไหน
ถัดมา 2
ถ้าผมเลือก combobox เป็น ไซส์ L ซ้ำอีกที ให้ textbox3 แสดงแบบไหนครับ

ถัดมา 1
ถ้ากรอก textbox 4 เป็น 5 ให้ textbox3 แสดง เสื้อแขนยาว ไซส์ M จำนวน 5 แทนที่

รอบแรก
ถ้ากรอก textbox 4 ซ้ำอีกทีเป็น 10 ให้ textbox3 แสดง เสื้อแขนยาว ไซส์ M จำนวน 10 แทนที่

ถัดมา 2
ถ้าเลือก combobox เป็น ไซส์ L ซ้ำอีกที ให้ textbox3
แสดง
เสื้อแขนยาว ไซส์ M จำนวน 1
เสื้อแขนยาว ไซส์ L >> จำนวนจะแสดงก็ต่อเมื่อกรอกข้อมูล
ต้องการให้ข้อมูลเรียงกันมาเป็นลำดับๆ เพื่อที่จะบันทึกลงในชีท การเบิก
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Oct 31, 2017 10:56 am
by logic
แสดงว่าขึ้นชุดใหม่เมื่อเลือก combobox1 ใหม่ ถ้าแค่เปลี่ยน combobox2 กับ textbox 4 ถือว่าเป็นการเปลียนข้อมูล
แล้วถ้าเลือก combobox1 ผิดจะทำอย่างไรต่อ เพราะมันจะไปเพิ่มใน textbox3 ด้วยตัวที่ผิดไปเรียบร้อยแล้ว
น่าจะต้องมีตัวอะไรบอกสักอย่างไหมว่าเพิ่มรายการหรือว่าเปลี่ยนข้อมูลเดิม อันนี้แค่เสนอ แต่ทั้งนี้ทั้งนั้น ต้องเขียนมาเองก่อนตามกฎของบอร์ดนะครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Oct 31, 2017 11:18 am
by Benmore
logic wrote:แสดงว่าขึ้นชุดใหม่เมื่อเลือก combobox1 ใหม่ ถ้าแค่เปลี่ยน combobox2 กับ textbox 4 ถือว่าเป็นการเปลียนข้อมูล
แล้วถ้าเลือก combobox1 ผิดจะทำอย่างไรต่อ เพราะมันจะไปเพิ่มใน textbox3 ด้วยตัวที่ผิดไปเรียบร้อยแล้ว
น่าจะต้องมีตัวอะไรบอกสักอย่างไหมว่าเพิ่มรายการหรือว่าเปลี่ยนข้อมูลเดิม อันนี้แค่เสนอ แต่ทั้งนี้ทั้งนั้น ต้องเขียนมาเองก่อนตามกฎของบอร์ดนะครับ
เมื่อเลือก combox1 เป็นเสื้อแขนยาว
combobox2 เป็นไซส์ M
textbox 4 ใส่จำนวนเป็น 1
ให้ textbox3 แสดงคือ
เสื้อแขนยาว
ไซส์ M
จำนวน 1
เมื่อเลือก combox1 เป็นกางเกง ข้อมูลใน combobox2 กับ textbox 4 ก็หายไป ให้เลือกใหม่
combobox2 เป็นไซส์ 30"
textbox 4 ใส่จำนวนเป็น 1
ให้ textbox3 แสดงคือ
เสื้อแขนยาว
ไซส์ M
จำนวน 1
กางเกง
ไซส์ 30"
จำนวน 1
ปัญหาตอนนี้คือ

ถ้าเลือกข้อมูลผิดใน comboboxจะเลือกข้อมูลใหม่ ข้อมูลเก่าที่เลือกก็ถูกแสดงใน texbox3 แล้วค่ะ

ถ้าใส่ข้อมูลใน textbox4 2vตัวจะแสดงข้อมูล2ตัว เช่น ใส่เลข 12 จะแสดง จำนวน 1 จำนวน 12 ค่ะ แล้วพอลบเลข2 ข้อมูลก็จะแสดง เป็นจำนวน 1 จำนวน 12 จำนวน 1 ค่ะ
Code: Select all
Private Sub ComboBox1_Change()
If Combobox1.Value = "àÊ×éÍᢹÊÑé¹(Short Shirt)" Then
Combobox2.RowSource = "DATA!G2:G8"
Else
Combobox2.Value = ""
TextBox4.Value = ""
End If
If Combobox1.Value = "àÊ×éÍᢹÂÒÇ(Long Shirt)" Then
Combobox2.RowSource = "DATA!G2:G8"
Else
Combobox2.Value = ""
TextBox4.Value = ""
End If
If Combobox1.Value = "¡Ò§à¡§(Trousere)" Then
Combobox2.RowSource = "DATA!H2:H24"
Else
Combobox2.Value = ""
TextBox4.Value = ""
End If
If Combobox1.Value <> "" Then
myStr = TextBox3.Value & vbCrLf & "" & Combobox1.Value
TextBox3.Value = myStr
End If
End Sub
Private Sub ComboBox2_Change()
If Combobox1.Text <> "" Then myStr = TextBox3.Value
If Combobox2.Value <> "" Then myStr = myStr & vbCrLf & "ä«Êì " & Combobox2.Text
If TextBox4.Text <> "" Then myStr = myStr
TextBox3.Text = myStr
End Sub
Private Sub TextBox4_Change()
If Combobox1.Text <> "" Then myStr = TextBox3.Value
If Combobox2.Value <> "" Then myStr = TextBox3.Value
If TextBox4.Text <> "" Then myStr = myStr & vbCrLf & "¨Ó¹Ç¹ " & TextBox4.Text
TextBox3.Text = myStr
End Sub
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Oct 31, 2017 9:00 pm
by snasui

ควรออกแบบให้มีปุ่ม Add ไว้ 1 ปุ่ม เมื่อเลือกเรียบร้อยแล้วค่อยคลิกปุ่ม Add เพื่อจะนำไปเรียงต่อกันที่ textbox3 ครับ อย่าลืมพิจารณาว่าจะต้องมีปุ่ม Clear textbox3 ด้วยหรือไม่ เพราะมีโอกาสที่จะ Add ผิดได้ครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Wed Nov 01, 2017 10:43 am
by Benmore
พอจะมีตัวอย่างไหมค่ะ พอดีไม่รู้จะเริ่มจากตรงไหน

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Wed Nov 01, 2017 11:56 am
by Benmore
snasui wrote:
ควรออกแบบให้มีปุ่ม Add ไว้ 1 ปุ่ม เมื่อเลือกเรียบร้อยแล้วค่อยคลิกปุ่ม Add เพื่อจะนำไปเรียงต่อกันที่ textbox3 ครับ อย่าลืมพิจารณาว่าจะต้องมีปุ่ม Clear textbox3 ด้วยหรือไม่ เพราะมีโอกาสที่จะ Add ผิดได้ครับ
ลองออกแบบปุ่ม add และปุ่ม clear แล้วค่ะ ตอนนี้ติดอยู่ตรงที่พอกดปุ่ม add ข้อมูลครั้งที่สองจะทับข้อมูลแรกค่ะ ต้องแก้ไขตรงไหนค่ะ
Code: Select all
'Add
Private Sub CommandButton1_Click()
If Combobox1.Value <> vbNullString And Combobox2.Value <> vbNullString And TextBox4.Value <> vbNullString Then
TextBox3.Text = Combobox1.Value & vbCrLf & "ไซส์ " & Combobox2.Value & vbCrLf & "จำนวน " & TextBox4.Text
Else
MsgBox ("กรุณาป้อนข้อมูลให้ครบ")
End If
End Sub
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Wed Nov 01, 2017 10:25 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Private Sub CommandButton1_Click()
If Combobox1.Value <> vbNullString And Combobox2.Value <> vbNullString And TextBox4.Value <> vbNullString Then
TextBox3.Text = IIf(TextBox3.Text = "", TextBox3.Text, TextBox3.Text & vbCrLf) & _
Combobox1.Value & vbCrLf & "ไซส์ " & Combobox2.Value & vbCrLf & "จำนวน " & TextBox4.Text
Else
MsgBox ("กรุณาป้อนข้อมูลให้ครบ")
End If
End Sub
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Nov 02, 2017 8:41 am
by Benmore
ตรงนี้ทำได้แล้วขอบคุณมากค่ะ
ขอสอบถามเพิ่มค่ะ คือ ติดตรงบันทึกข้อมูลค่ะ ถ้าเลือก checkbox 1 อัน เวลาบันทึก ข้อมูลจะไม่ถูกบันทึกลงในชีท ''การรับ" ต้องเลือก 2 อันถึงจะบันทึกได้ค่ะ ต้องแก้ตรงไหนค่ะ
Code: Select all
'Save
Private Sub btsave_Click()
On Error Resume Next
Dim emptyRow As Integer
Dim strTb1 As Variant
Dim strTb3 As Variant
emptyRow = WorksheetFunction.Count("A3:A10000") + 1
If emptyRow = 0 Then
emptyRow = 2
Else
emptyRow = emptyRow + 2
Sheet9.Activate
strTb1 = Split(TextBox1.Text, vbCrLf)
strTb3 = Split(TextBox3.Text, vbCrLf)
Cells(emptyRow, 1).Value = VBA.Mid(strTb1(0), InStr(strTb1(0), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 2).Value = VBA.Mid(strTb1(1), InStr(strTb1(1), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 3).Value = VBA.Mid(strTb1(2), InStr(strTb1(2), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 4).Value = VBA.Mid(strTb1(3), InStr(strTb1(3), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 6).Value = strTb3(1) & "," & strTb3(2) & "," & strTb3(3) & vbCrLf & strTb3(4) & "," & strTb3(5) & "," & strTb3(6) 'TextBox3.Value
Cells(emptyRow, 7).Value = VBA.Mid(strTb3(7), InStr(strTb3(7), ":") + 1) & "," & VBA.Mid(strTb3(8), InStr(strTb3(8), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 5).Value = comday.Value & "/" & commonth.Value & "/" & comyear.Value
MsgBox "บันทึกข้อมูลสำเร็จ"
Unload Me
Sheet1.Activate
End If
End Sub
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Nov 02, 2017 8:36 pm
by snasui

กรุณาแจ้งมาด้วยเสมอว่า UserForm ใด ตัวอย่างทดสอบคืออะไร ค่าที่ถูกต้องจะต้องได้เท่าใด
ในเบื้องต้นให้ลอง Debug ด้วยการเบรคไว้ก่อนแล้ว Run Code เมื่อไปถึง Procedure ที่เบรคไว้ค่อยใช้การกดแป้น F8 ช่วยเพื่อ Run ทีละ Step สังเกตว่าเกิดปัญหาตรงไหน หากยังแก้ไขเองไม่ให้แจ้งมาใหม่ครับ
การ Break ให้ใช้ Mouse Click ลงบนบรรทัดที่ต้องการเบรค หากต้องการปลดออกให้คลิกซ้ำ ตัวอย่างการเบรคดูตามภาพด้านล่างครับ
BreakPoint.png
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Nov 02, 2017 9:38 pm
by Benmore
ที่ Userform 1 ค่ะ
ถ้าเลือก checkbox 1 อัน เวลาบันทึก ข้อมูลจะไม่ถูกบันทึกลงในชีท ''การรับ" ต้องเลือก 2 อันถึงจะบันทึกได้ค่ะ ตามภาพตัวอย่างค่ะ
122.png
121.png
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Nov 02, 2017 9:39 pm
by Benmore
แล้วเวลาเลือกข้อมูลต้องเลือกให้ครบ 6 ข้อมูล ถ้าเลือไม่ครบข้อมูลก็จะไม่ถูกบันทึกลงในชีท ''การรับ" ตามภาพ ตัวอย่างค่ะ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Nov 02, 2017 9:44 pm
by snasui

ได้ทำการ Debug ตามที่ผมแจ้งไว้แล้วหรือไม่ ทราบหรือไม่ว่าเกิดจากบรรทัดไหน อย่างไร แจ้งมาด้วยครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Nov 02, 2017 9:51 pm
by Benmore
มันไม่ได้ขึ้น Debug ค่ะ แต่แค่ข้อมูลไม่ถูกบันทึกลงในชีท
คิดว่าน่าจะผิดตรงนี้ค่ะ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Nov 02, 2017 10:15 pm
by snasui

Mark
on error resume next
ให้เป็น Comment ไปก่อนแล้วลองใหม่ ในการ Debug ต้องไม่ลืมทำเช่นนี้เสมอครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Nov 02, 2017 10:41 pm
by Benmore
เป็นแบบนี้คืออะไรค่ะ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Nov 02, 2017 10:42 pm
by snasui

เป็นแบบไหน กรุณาอธิบายด้วยข้อความด้วย โปรแกรมมีการฟ้อง Error อะไรหรือไม่ อย่างไรครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Nov 02, 2017 10:54 pm
by Benmore
เมื่อเอา on error resume next ออกก็จะ eror ตามภาพค่ะ
้เพราะอะไรถึงเป็นแบบนั้นค่ะ