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
:D แนบตัวอย่างไฟล์ 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
:D ทราบแล้วว่าต้องการเอาข้อมูลในชีต 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
:D ตัวอย่าง 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::D ตัวอย่าง 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
:D ไฟล์ Excel ที่แนบมาไม่มี UserForm ตรงกับภาพในโพสต์ก่อนหน้า ควรแนบไฟล์ที่มี Code ล่าสุดพร้อมกับ UserForm ตามภาพครับ

กรณีมีหลาย UserForm ให้แจ้งชื่อ UserForm มาด้วยเสมอจะได้เข้าถึงปัญหาโดยไวครับ

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

Posted: Tue Oct 03, 2017 8:34 am
by Benmore
snasui wrote::D ไฟล์ 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
:D แนบไฟล์ล่าสุดมาดูกัน จะได้ตอบต่อไปจากนั้นครับ

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

Posted: Fri Oct 06, 2017 9:37 am
by Benmore
]
snasui wrote::D แนบไฟล์ล่าสุดมาดูกัน จะได้ตอบต่อไปจากนั้นครับ
ไฟล์แนบค่ะ :D
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
:D ตัวอย่าง 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