Page 1 of 5
ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Mon Sep 25, 2017 2:09 pm
by Benmore
Code: Select all
Private Sub BTsearch_Click()
On Error Resume Next
'Err.Clear
Dim nRow As String
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If Err.Number = 91 Then
TextBox2.Value = " "
MsgBox "ไม่มีข้อมูล"
End If
TextBox2.Value = Cells(nRow, 2)
End Sub
ทำยังไงให้ค้นหาข้อมูลแล้วข้อมูลขึ้นโชว์ใน Textbox ค่ะ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Mon Sep 25, 2017 6:38 pm
by snasui

แนบตัวอย่างไฟล์ Excel ตัดมาเฉพาะที่เป็นปัญหา อธิบายสิ่งที่ต้องการจะได้สะดวกในการตอบครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Sep 26, 2017 8:16 am
by Benmore
คือต้องการให้ข้อมูลใน sheet "EGAS_Data" ที่ใช้ Userform1 ค้นหาข้อมูล โดยให้ข้อมูลที่ค้นหาผ่าน search มาแสดงที่ Textbox1
***ตามรูปตัวอย่างที่แนบมาก่อนหน้าค่ะ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Sep 26, 2017 10:28 am
by logic
รูปที่แนบมาไม่เห็นว่าเอาข้อมูลอะไรมาแสดง ช่วยเขียนแจ้งด้วยว่าต้องการข้อมูลอะไรบ้างครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Sep 26, 2017 10:51 am
by Benmore
logic wrote:รูปที่แนบมาไม่เห็นว่าเอาข้อมูลอะไรมาแสดง ช่วยเขียนแจ้งด้วยว่าต้องการข้อมูลอะไรบ้างครับ
- ต้องการข้อมูลที่อยู่ใน ชีท EGAS_Data มาแสดงใน Textbox1 เมื่อกรอกข้อมูลแล้วคลิ๊กที่ปุ่ม search เพื่อให้แสดงข้อมูลที่ค้นหา
- ต้องการให้เมื่อเลือกค่าใน combobox กับ checkbox แล้วข้อมูลที่เลือกไปแสดงในTextbox2
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Sep 26, 2017 9:29 pm
by snasui
Benmore wrote:logic wrote:รูปที่แนบมาไม่เห็นว่าเอาข้อมูลอะไรมาแสดง ช่วยเขียนแจ้งด้วยว่าต้องการข้อมูลอะไรบ้างครับ
- ต้องการข้อมูลที่อยู่ใน ชีท EGAS_Data มาแสดงใน Textbox1 เมื่อกรอกข้อมูลแล้วคลิ๊กที่ปุ่ม search เพื่อให้แสดงข้อมูลที่ค้นหา
- ต้องการให้เมื่อเลือกค่าใน combobox กับ checkbox แล้วข้อมูลที่เลือกไปแสดงในTextbox2

ทราบแล้วว่าต้องการเอาข้อมูลในชีต EGAS_Data มาแสดง ข้อมูลอะไรบ้างช่วยเขียนมาให้ละเอียด ในชีตดังกล่าวมีข้อมูลหลายคอลัมน์ครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Sep 28, 2017 9:06 am
by Benmore
ข้อมูล Name_TH , Section , Uniform_No ค่ะ
แล้วจะทำยังไงให้ข้อมูลที่เลือกใน combobox,checkbox แสดงใน texbox เดียวกันแต่เรียงลำดับลงมาเรื่อยๆค่ะ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Sep 28, 2017 9:17 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Private Sub BTsearch_Click()
Dim txt As String
On Error Resume Next
'Err.Clear
Dim nRow As String
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If Err.Number = 91 Then
TextBox1.RowSource = "txtsearch.Text"
MsgBox "ไม่มีข้อมูล"
End If
txt = Cells(nRow, 1) & vbCrLf & Cells(nRow, 3) & vbCrLf & Cells(nRow, 8) _
& vbCrLf & Cells(nRow, 13)
TextBox1.Value = txt
End Sub
อย่าลืมไปปรับ Property ของ TextBox1 ในหน้าต่าง Propery ให้เป็น Multiline ในส่วนของการเลือก ComboBox และ CheckBox ให้เขียนมาเองก่อน ติดตรงไหนแล้วถามกันต่อครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Fri Sep 29, 2017 2:45 pm
by Benmore
snasui wrote:
ตัวอย่าง Code ครับ
Code: Select all
Private Sub BTsearch_Click()
Dim txt As String
On Error Resume Next
'Err.Clear
Dim nRow As String
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If Err.Number = 91 Then
TextBox1.RowSource = "txtsearch.Text"
MsgBox "ไม่มีข้อมูล"
End If
txt = Cells(nRow, 1) & vbCrLf & Cells(nRow, 3) & vbCrLf & Cells(nRow, 8) _
& vbCrLf & Cells(nRow, 13)
TextBox1.Value = txt
End Sub
อย่าลืมไปปรับ Property ของ TextBox1 ในหน้าต่าง Propery ให้เป็น Multiline ในส่วนของการเลือก ComboBox และ CheckBox ให้เขียนมาเองก่อน ติดตรงไหนแล้วถามกันต่อครับ
ทำได้แล้วค่ะ ขอบคุณค่ะ
แต่พอดีอยากให้ข้างหน้าคำที่ค้นหามีหัวข้อตลอดค่ะ ต้องเพิ่มโค้ดตัวไหนลงไปค่ะ
ชื่อ1.png
แล้วพอเวลาเราคลิ๊คเลือกที่ Checkbox ข้อมูลที่ค้นหาก็หายไป อยากทราบว่าต้องแก้ไขตรงไหนบ้างค่ะ
ชื่อ2.png
Code: Select all
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
TextBox1.Value = "ชุดหดและเก่าตามสภาพ"
Else
TextBox1.Value = ""
End If
End Sub
Private Sub CheckBox2_Click()
If CheckBox2.Value = True Then
TextBox1.Value = "ชุดเปื่อยขาดเนื่องจากการซัก"
Else
TextBox1.Value = ""
End If
End Sub
Private Sub CheckBox3_Click()
If CheckBox3.Value = True Then
TextBox1.Value = "ชุดขาดตารอยตะเข็บ"
Else
TextBox1.Value = ""
End If
End Sub
Private Sub CheckBox4_Click()
If CheckBox4.Value = True Then
TextBox1.Value = "เดินทางไปทำงานต่างจังหวัด/ต่างประเทศ"
Else
TextBox1.Value = ""
End If
End Sub
Private Sub CheckBox5_Click()
If CheckBox5.Value = True Then
TextBox1.Value = "อื่นๆ"
Else
TextBox1.Value = ""
End If
End Sub
ทำให้ข้อมูลที่เลือกขึ้นเรียงกันตามลำดับไม่แทนที่กัน
Posted: Mon Oct 02, 2017 4:33 pm
by Benmore
พอดีอยากให้ข้างหน้าคำที่ค้นหามีหัวข้อตลอดค่ะ ต้องเพิ่มโค้ดตัวไหนลงไปค่ะชื่อ
แล้วพอเวลาเราคลิ๊คเลือกที่ Checkbox ข้อมูลที่ค้นหาก็หายไป อยากทราบว่าต้องแก้ไขตรงไหนบ้างค่ะชื่อ2.png
Code: Select all
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
TextBox1.Value = "ชุดหดและเก่าตามสภาพ"
Else[attachment=2]ชื่อ1.png[/attachment][attachment=1]ชื่อ2.png[/attachment]
TextBox1.Value = ""
End If
End Sub
Private Sub CheckBox2_Click()
If CheckBox2.Value = True Then
TextBox1.Value = "ชุดเปื่อยขาดเนื่องจากการซัก"
Else
TextBox1.Value = ""
End If
End Sub
Private Sub CheckBox3_Click()
If CheckBox3.Value = True Then
TextBox1.Value = "ชุดขาดตารอยตะเข็บ"
Else
TextBox1.Value = ""
End If
End Sub
Private Sub CheckBox4_Click()
If CheckBox4.Value = True Then
TextBox1.Value = "เดินทางไปทำงานต่างจังหวัด/ต่างประเทศ"
Else
TextBox1.Value = ""
End If
End Sub
Private Sub CheckBox5_Click()
If CheckBox5.Value = True Then
TextBox1.Value = "อื่นๆ"
Else
TextBox1.Value = ""
End If
End Sub
[/quote]
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Mon Oct 02, 2017 4:54 pm
by snasui

ไฟล์ Excel ที่แนบมาไม่มี UserForm ตรงกับภาพในโพสต์ก่อนหน้า ควรแนบไฟล์ที่มี Code ล่าสุดพร้อมกับ UserForm ตามภาพครับ
กรณีมีหลาย UserForm ให้แจ้งชื่อ UserForm มาด้วยเสมอจะได้เข้าถึงปัญหาโดยไวครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Oct 03, 2017 8:34 am
by Benmore
snasui wrote:
ไฟล์ Excel ที่แนบมาไม่มี UserForm ตรงกับภาพในโพสต์ก่อนหน้า ควรแนบไฟล์ที่มี Code ล่าสุดพร้อมกับ UserForm ตามภาพครับ
กรณีมีหลาย UserForm ให้แจ้งชื่อ UserForm มาด้วยเสมอจะได้เข้าถึงปัญหาโดยไวครับ
ไฟล์แนบค่ะ
Uniform_EGAS1.xlsm
คือมีปันหาที่userform1 ตามรูปค่ะ ทำยังไงให้ข้อมูลที่เลือกใน checkbox ขึ้นตามลำดับ ตอจากข้อมูลที่ค้นหาจากปุ่ม search
ชื่อ2.png
แล้วเมื่อเลือก OK ให้ข้อมูลทั้งหมดไปแสดงใน Userform 2
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Tue Oct 03, 2017 3:01 pm
by logic
ผมลองเขียนมาเป็นตัวอย่าง ลองปรับใช้ดูครับ
Code: Select all
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
TextBox1.Value = TextBox1.Value & vbCrLf & "ชุดหดและเก่าตามสภาพ"
' Else
' TextBox1.Value = ""
End If
End Sub
ที่บอกว่าคลิก OK แล้วให้ข้อความไปแสดงใน UserForm2 ก่อนอื่นต้องสร้างตัวแปรให้เก็บค่าใน TextBox1 เสียก่อน เป็นตัวแปรแบบ public และควรประกาศตัวแปรไว้บรรทัดบนสุดที่ modult1 ไม่ใช่ใน UserForm
ยกตัวอย่างประกาศเป็น
public strTb1 as string
ตอนคลิก OK
Code: Select all
Private Sub btok_Click()
strTb1 = Me.TextBox1.Value
Unload Me
UserForm2.Show
End Sub
ส่วนที่ UserForm2 เพิ่มโค้ดตามด้านล่าง
Code: Select all
Private Sub UserForm_Initialize()
Me.TextBox2.Value = strTb1
Sheet6.Activate
End Sub
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Oct 05, 2017 9:04 am
by Benmore
1. ลองแก้ไขโค้ดตามที่บอกแล้ว แต่ติดปัญหาตรงที่ เมื่อติ๊กทุกอันมันก็จะขึ้นทุกอันแต่เมื่อติ๊กยกเลิกอันใดอันนึงข้อมูลมันก็จะหายไปหมดเลยค่ะ ต้องปรับส่วนไหนอีกค่ะ แล้วจะทำอย่างไงให้ข้อมูลที่แสดงตอนกดปุ่มค้นหาขึ้นเป็นแนวนอนค่ะ พร้อมกับมีหัวข้อเสมอค่ะ ที่ Userform1
Uniform_EGAS1.xlsm
Code: Select all
Private Sub CheckBox1_Click()
Dim nRow As String
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If CheckBox1.Value = True Then
TextBox1.Value = TextBox1.Value & vbCrLf & "ชุดหดและเก่าตามสภาพ"
Else
If CheckBox1.Value = False Then
TextBox1.Value = Cells(nRow, 1) & vbCrLf & Cells(nRow, 2) & vbCrLf & Cells(nRow, 8) _
& vbCrLf & Cells(nRow, 13)
Else
End If
End If
End Sub
2.) ทำยังไงให้เลือข้อมูลใน combobox แล้วข้อมูลแสดงใน textbox ค่ะ
Code: Select all
Private Sub combobox1_Change()
Dim nRow As String
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If Combobox1.Value = True Then
TextBox1.Value = TextBox1.Value & vbCrLf & "combobox1.Value"
Else
If TextBox1.Value = False Then
TextBox1.Value = Cells(nRow, 1) & vbCrLf & Cells(nRow, 2) & vbCrLf & Cells(nRow, 8) _
& vbCrLf & Cells(nRow, 13)
End If
End If
End Sub
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Oct 05, 2017 3:07 pm
by logic
ลองปรับเป็นแบบนี้ครับ
Code: Select all
Private Sub CheckBox1_Click()
Dim nRow As String
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If CheckBox1.Value = True Then
TextBox1.Value = TextBox1.Value & vbCrLf & "ชุดหดและเก่าตามสภาพ"
Else
TextBox1.Value = Replace(TextBox1.Value, vbCrLf & "ชุดหดและเก่าตามสภาพ", "")
End If
End Sub
ถ้าจะให้ต่อกันในแนวนอนไม่ขึ้นบรรทัดใหม่ให้ลบ vbCrLf ที่เกี่ยวข้องทั้งหมดออกไปครับ (bCrLf หมายถึงให้ขึ้นบรรทัดใหม่)
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Oct 05, 2017 3:55 pm
by Benmore
logic wrote:ลองปรับเป็นแบบนี้ครับ
Code: Select all
Private Sub CheckBox1_Click()
Dim nRow As String
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If CheckBox1.Value = True Then
TextBox1.Value = TextBox1.Value & vbCrLf & "ชุดหดและเก่าตามสภาพ"
Else
TextBox1.Value = Replace(TextBox1.Value, vbCrLf & "ชุดหดและเก่าตามสภาพ", "")
End If
End Sub
ถ้าจะให้ต่อกันในแนวนอนไม่ขึ้นบรรทัดใหม่ให้ลบ vbCrLf ที่เกี่ยวข้องทั้งหมดออกไปครับ (bCrLf หมายถึงให้ขึ้นบรรทัดใหม่)
ทำได้แล้วขอบคุณมากค่ะ แต่ตอนนี้ติดปัญหาตรง Comboboxค่ะ จะทำอย่างไรให้เลือกข้อมูลใน combobox แล้วแสดงค่าใน textbox ค่ะ
แล้วจะทำให้มีหัวข้อด้านหน้าของมูลที่แสดงใน Textbox ต้องใส่โค้ดอะไรเพิ่มค่ะ
Code: Select all
Dim nRow As String
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If Combobox1.Value = True Then
TextBox1.Value = TextBox1.Value & vbCrLf & "combobox1.Value"
Else
If TextBox1.Value = False Then
TextBox1.Value = Cells(nRow, 1) & vbCrLf & Cells(nRow, 2) & vbCrLf & Cells(nRow, 8) _
& vbCrLf & Cells(nRow, 13)
End If
End If
End Sub
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Thu Oct 05, 2017 6:48 pm
by snasui

แนบไฟล์ล่าสุดมาดูกัน จะได้ตอบต่อไปจากนั้นครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Fri Oct 06, 2017 9:37 am
by Benmore
]
snasui wrote:
แนบไฟล์ล่าสุดมาดูกัน จะได้ตอบต่อไปจากนั้นครับ
ไฟล์แนบค่ะ
Uniform_EGAS1.xlsm
- ติดปัญหาตรง Comboboxค่ะ จะทำอย่างไรให้เลือกข้อมูลใน combobox แล้วแสดงค่าใน textbox ค่ะ
แล้วจะทำให้มีหัวข้อด้านหน้าของมูลที่แสดงใน Textbox ต้องใส่โค้ดอะไรเพิ่มค่ะ
Code: Select all
Private Sub combobox1_Change()
Dim nRow As String
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If Combobox1.Value = True Then
TextBox1.Value = TextBox1.Value & vbCrLf & "combobox1.Value"
Else
If TextBox1.Value = False Then
TextBox1.Value = Cells(nRow, 1) & vbCrLf & Cells(nRow, 2) & vbCrLf & Cells(nRow, 8) _
& vbCrLf & Cells(nRow, 13)
End If
End If
End Sub
- แล้วก็ติดปัญหาตรงที่ค้นหาข้อมูลเจอแค่คนเดียวแต่พอจะค้นหาคนที่สองก็ไม่เจอข้อมูล เพราะอะไรค่ะ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Fri Oct 06, 2017 8:18 pm
by snasui

ตัวอย่าง Code เมื่อเลือก ComboBox แล้วให้แสดงรายการใน Textbox ครับ
Code: Select all
Dim nRow As Integer
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If Combobox1.Value <> "" Then
TextBox1.Value = TextBox1.Value & vbCrLf & Combobox1.Value
Else
If TextBox1.Value = False Then
TextBox1.Value = Cells(nRow, 1) & vbCrLf & Cells(nRow, 2) & vbCrLf & Cells(nRow, 8) _
& vbCrLf & Cells(nRow, 13)
End If
End If
สังเกตการประกาศตัวแปร ค่าบรรทัดเป็นตัวเลข จะไม่ประกาศเป็น String แต่ให้ประกาศเป็น Integer หรือ Long หรือ Single อย่างใดอย่างหนึ่งแล้วแต่ความเหมาะสม
ตัวเลขหัวข้อที่กล่าวถึงนำมาจากไหน อธิบายมาให้ละเอียดครับ
Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox
Posted: Mon Oct 09, 2017 8:48 am
by Benmore
ทำได้แล้วค่ะ แต่อยากทราบว่าต้องเพิ่มโค้ดตรงไหนลงไปถึงให้ข้อมูลมีหัวข้อแสดงด้านหน้าค่ะ
11111.png