ต้องการส้รางคิวรีให้ค้นหาได้หลายฟิล
กระทู้เก่าบอร์ด อ.Yeadram

 1,342   8
URL.หัวข้อ / URL
ต้องการส้รางคิวรีให้ค้นหาได้หลายฟิล

คือตอนนี้ผมทำการคิวรีได้พนักงานคนเดียว แต่ผมต้องการทำคิวรีในการค้นหาพนักงานทีละหลายๆคนในรอบเดียวอ่ะครับ

8 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R15560
เงื่อนไข like "*"&[ชื่อ]&"*" หรือ like [ชื่อ]&"*" หรือ รับค่าจากtextbox ประมาณนี้ like "*"&[forms]![ชื่อฟอร์ม]![ชื่อtextbox]&"*"
ถ้า ก คนที่ขึ้นชื่อต้นด้วย ก ก็จะขึ้นมาหมดทุกคน ประมาณนี้ลองปรับเปลี่ยนเงื่อนไขดู
2 @R15561
คือผมต้องการค้นหาจากรหัสพนักงาน โดยไม่มีการตั้งค่าว่าต้องขึ้นต้นด้วยเลขอะไร ต้องการรหัสอะไรก็พิมพ์ๆไปเลยอ่ะครับ และสามารถค้นหาได้ทีละหลายรหัสในรอบการค้นหาทีเดียวอ่ะครับ
3 @R15562
เงื่อนไขที่ให้ผมว่าก็คนหาได้หลายคนนะ หรือผมไม่เข้าคำถามคุณ ผมก็งง
ถ้าอย่างนั้นก็ที่ช่องรหัสพนักงาน เงื่อนไข [รหัสที่1] Or [รหัสที่2] Or [รหัที่3]....
แต่ผมไม่แน่ใจว่าพิมพ์ได้เยอะเท่าไร
4 @R15578
คือต้องการหารหัสพนักแบบเจาะจงไปเลยอ่ะครับ เช่น
รหัสพนักมี 445,369,554 พอคิวรีก็ใส่รหัสที่ต้องการไปเลย เช่น 445 มันก็จะขึ้นข้อมูลรหัสพนักคนนี้มาให้ แต่อันนี้ผมทำได้แล้วแต่อยากต้องการที่จะหาได้หลายรหัสในครั้งเดียวตอนพิมพ์รหัสพนักงานในช่องค้นหาอ่ะครับ เช่นช่องค้นหา/คิวรีเด้งมาให้ กรอกรหัสพนักงาน ตามปกติจะกรอกได้อันเดียวผมจึงอยากให้สามารถกรอกได้หลายรหัสอ่ะครับ
5 @R15579
ผมคิดออกในตอนนี้ คือต้องมีtextboxหลายๆอันมารับค่าที่เรากรอกที่ช่องค้นหา(ที่ฟอร์ม)แลัวค่อยส่งค่าที่ได้นั้นไปที่คิวรี่
สมุติว่า ช่องค้นหา ชื่อ txtserch
ใส่โค้ด event AfterUdate :
Private Sub txtserch_AfterUpdate()
If IsNull(me.txtserch) Or me.txtserch = "" Then
    MsgBox ("คุณยังไม่ไดกรอกข้อมูล")
    Else
    If Me.Text1 = "" Or IsNull(Me.Text1) Then
        Me.Text1 = txtserch
        Me.txtserch = ""
        Me.txtserch.SetFocus
               ElseIf IsNull(Me.Text2) Or Me.Text2 = "" Then
               Me.Text2 = txtserch
               Me.txtserch = ""
               Me.txtserch.SetFocus
                        ElseIf IsNull(Me.Text3) Or Me.Text3 = "" Then
                        Me.Text3 = txtserch
                        Me.txtserch = ""
                        Me.txtserch.SetFocus
               ElseIf IsNull(Me.Text4) Or Me.Text4 = "" Then
               Me.Text4 = txtserch
               Me.txtserch = ""
               Me.txtserch.SetFocus
        ElseIf IsNull(Me.Text5) Or Me.Text5 = "" Then
        Me.Text5 = txtserch
        Me.txtserch.SetFocus
        End If
    End If
End Sub

สร้าง textbox unbound 5 อัน ตั้งชื่อ text1,text2,text3,text4,text5 แล้ว visible textbox ทั้งหมด
ในส่วนของคิวรี่
รหัสพนักงาน เงือนไข [forms]![frm1]![txtserch] Or [forms]![frm1]![text1] Or [forms]![frm1]![text2] Or [forms]![frm1]![text3] Or [forms]![frm1]![text4] Or [forms]![frm1]![text5]

ทดลอกกรอกข้อมูลที่ช่องค้นหา 23 หมายเลข แล้วกดปุ่มค้นหาจะได้ข้อมูลที่ต้องการหรือเปล่า?

ปล.อาจารย์ท่านอื่นอาจแนวคิดที่ดีกว่าผมนะเพราะที่นี้มีอาจารย์เก่งๆๆๆเยอะ
6 @R15580
ใช้ปุ่ม Filter by Form สิครับ มันสามารถให้คุณใส่อย่างที่ต้องการได้เลย
7 @R15581
ไม่รู้เข้าใจคำถามถูกหรือเปล่านะครับ แต่หากคุณต้องการแค่กรองรหัสพนักงาน สามารถเขียนคำสั่งกรองข้อมูลบนฟอร์มได้เลย ไม่ต้องเขียนในคิวรี่ก็ได้ครับ ตัวอย่าง

1. ตารางที่ใช้บนฟอร์มชื่อ Table1
2. ฟิลด์ในตารางข้อมูลที่ใช้บันทึกรหัสพนักงานชื่อ ID
3. สร้าง Textbox สำหรับใส่รหัสพนักงาน สมมุติชื่อ Text1
4. สร้างปุ่มบนฟอร์ม ใส่โค๊ดที่ Event > On Click ดังนี้:

On Error GoTo Err_Exit_Online
    If IsNumeric(Me.Text1) And Not IsNull(Me.Text1) Then
        If Me.Text1 Like "*,*" Then
            Me.Filter = "Table1.ID In(" & Me.Text1 & ")"
        Else
            Me.Filter = "Table1.ID = " & Me.Text1
        End If
        Me.FilterOn = True
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
    
Exit_Exit_Online:
    Exit Sub
Err_Exit_Online:
    MsgBox "โปรดใส่เลขรหัสพนักงาน ตามด้วยเครื่องหมาย , เท่านั้น", , "ใส่ข้อมูลไม่ตรงเงื่อนไข"
    Resume Exit_Exit_Online:

- การใช้งาน คือ ใส่ตัวเลขรหัสพนักงาน หากคนเดียวก็ใส่ 445 แต่หากหาหลายคนก็ใส่ 445,369,554 แล้วกดปุ่ม
- หากไม่มีข้อมูลใน Text1 ฟอร์มจะแสดงรายการทั้งหมด
ลองปรับใช้ดูนะครับ
8 @R15582
ขอบคุณอาจารย์ทุกท่านมากๆเลยนะครับ ขอบคุณครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3042s