FilterByGroupCourseกรองตามกลุ่มเรียนบนฟอร์มMainMenu



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

01 ต.ค. 63 , 12:17:32
อ่าน 118 ครั้ง

SakDa

อยากให้ฟอร์ม mainmenu เมื่อเราคลิกเข้าไปแล้ว ให้มันกรองตามกลุ่มเรียน รหัสงานที่แสดงก็ให้ตามกลุ่มเรียนไม่ต้องเอากลุ่มอื่นมาปน และชื่องานก็ให้ตามกลุ่มเรียน เนื่องจากใช้รหัสงานเหมือนกันกับนักเรียนได้ทุกกลุ่ม (เหมือนกับยาพาราเซตามอล ใช้กับคนไข้ได้ทุกคน)
ไม่ได้เริ่มต้นข้อมูลโดยการแยกตาราง แยกฐาน พอคิดจะทำภายหลังแล้วมันไม่สะดวก วันนี้กลับมาขอความช่วยเหลือใหม่ครับ

https://www.thai-access.com/index.php?topic=1109.0 กดโพสต์ไปแล้ว เลยไล่ๆดูที่เคยถามที่เก็บไว้ในคลัง แต่ไม่ได้ทำตามที่ อ.สันติสุขแนะนำครับ ไม่ได้ตั้งค่าแจ้งเตือนไว้ ..ขอโพสต์ใหม่ครับ เอาตัวอย่างฐานมาด้วยครับ
« แก้ไขครั้งสุดท้าย: 01 ต.ค. 63 , 12:23:08 โดย SakDa »

 

01 ต.ค. 63 , 12:45:48
ตอบกลับ #1

PNR

: FilterByGroupCourseกรองตามกลุ่มเรียนบนฟอร์มMainMenu
« ตอบกลับ #1 เมื่อ: 01 ต.ค. 63 , 12:45:48 »
ลองดูครับ
โค้ดแก้เป็นแบบนี้นะครับ ที่ combobox ทั้งสามตัว

โค๊ด: [Select]
Private Sub Combo143_AfterUpdate()
MultiFilter
End Sub
Private Sub Combo150_AfterUpdate()
MultiFilter
End Sub
Private Sub Combo181_AfterUpdate()
MultiFilter
End Sub
Private Sub MultiFilter()
Dim sql As String
 sql = "SELECT * FROM [Qry_Sub_F1S1] WHERE [group] Like '" & Nz(Me.Combo150, "*") & "' AND [Jobcode] Like '" & Nz(Me.Combo143, "*") & "' AND [jobname] Like '" & Nz(Me.Combo181, "*") & "'"
 Me.F1S1.Form.RecordSource = sql
End Sub

ที่จริงถ้าจะให้สมบูรณ์ขึ้นควรจะต้องกำหนด ให้เมื่อเลือก Comboตัวแรกแล้ว ตัวต่อไปให้แสดงความตัวแรก และเมื่อเลือกตัวที่ 3 ก็ให้แสดงข้อมูลเฉพาะที่กำหนดไว้ใน คอมโบแรกกับคอมโบทีสอง
แต่ไม่ได้ทำให้ดูเพราะข้อมูลยังไม่ครบถ้วนเช่น AssignmentsGroup ไม่มีข้อมูล Field Group ถ้ามีมาครบถ้วนสามารถทำให้ได้ครับ
ส่วนการค้นหาหลายเงื่อนไขก็ดูจากตัวอย่างได้เลย


« แก้ไขครั้งสุดท้าย: 01 ต.ค. 63 , 13:20:24 โดย PNR »
เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

07 ต.ค. 63 , 06:16:54
ตอบกลับ #2

SakDa

: FilterByGroupCourseกรองตามกลุ่มเรียนบนฟอร์มMainMenu
« ตอบกลับ #2 เมื่อ: 07 ต.ค. 63 , 06:16:54 »
เอาของอาจารย์ไปปรับแล้ว เอามาเผยแพร่ต่อ แต่ความต้องการก็ยังอยากทำต่อคือ
   ค้นเจอว่าถ้าเราไม่เคลียร์ค่าใน รหัสงาน หรือ ชื่องาน คิวรี่ใน subForm มันทำงานไม่ได้   
       แต่อยากสลับการเคลียร์ค่าระหว่างรหัสงาน กับ ชื่อ งาน คิดว่า เมื่อตอนเราสั่งคลิกบน คอมโบบ็อกซ์
            พอเราเลือก รหัสงาน เสร็จให้คาไว้อยู่ ฟอร์มย่อยแสดงข้อมูล ยังไม่เคลียร์ค่าบนคอมโบบ็อกซ์ combobox jc
        แต่พอเราคลิกเลือก ชื่องาน comboBox jn ก็อยากให้ไปเคลียร์ค่า combobox jc ก่อน แล้วค่อยไปเรียกคิวรี่มาแสดง
ตอนนี้ใช้แบบนี้ไปก่อน คำค้นที่ควรต่อคือ form on click another combobox clear null
    :love: ขอบคุณครับ  :love: หวังว่าคงมีประโยชน์สำหรับท่านอื่นๆ ต่อ

 

07 ต.ค. 63 , 08:05:58
ตอบกลับ #3

PNR

: FilterByGroupCourseกรองตามกลุ่มเรียนบนฟอร์มMainMenu
« ตอบกลับ #3 เมื่อ: 07 ต.ค. 63 , 08:05:58 »
อ้างถึง
เจอว่าถ้าเราไม่เคลียร์ค่าใน รหัสงาน หรือ ชื่องาน คิวรี่ใน subForm มันทำงานไม่ได้ 
การแสดงข้อมูลที่ผมทำให้ไปตอนแรกคล้ายๆกับการเลือก จังหวัด อำเภอ ตำบล ซึ่งข้อมูลจะเกี่ยวเนื่องกันลงมาเรื่อยๆครับ
บางครั้งที่คิวรี่ไม่ยอมแสดงข้อมูลก็เพราะว่า ข้อมูลจากส่วนบนลงมาไม่อยู่ในกลุ่มเดียวกัน

อ้างถึง
สลับการเคลียร์ค่าระหว่างรหัสงาน กับ ชื่อ งาน คิดว่า เมื่อตอนเราสั่งคลิกบน คอมโบบ็อกซ์
รหัสงาน เสร็จให้คาไว้อยู่ ฟอร์มย่อยแสดงข้อมูล ยังไม่เคลียร์ค่าบนคอมโบบ็อกซ์ combobox jc

ใช้ Events Got_Focus ได้เลยครับ เมื่อ Cersor โฟกัสที่คอมโบบ๊อกไหนEvents ก็จะทำงาน

อ้างถึง
พอเราคลิกเลือก ชื่องาน comboBox jn ก็อยากให้ไปเคลียร์ค่า combobox jc ก่อน แล้วค่อยไปเรียกคิวรี่มาแสดง
ถ้าเราเคลียค่าของ combobox jc ก็แสดงว่า เราต้องการแสดงผลของ ชื่องานที่เราเลือก โดยไม่สนใจว่ารหัสงานอะไรใช่หรือไม่
ถ้าใช้แก้โค้ดตามด้านล่างได้เลย

แก้โค้ดเป็นแบบนี้
โค๊ด: [Select]
Private Sub jc_AfterUpdate()
MultiFilter
End Sub
Private Sub jn_AfterUpdate()
MultiFilter
End Sub
Private Sub jc_GotFocus()
Me.jn.Value = Null
End Sub
Private Sub jn_GotFocus()
Me.jc.Value = Null
End Sub
Private Sub MultiFilter()
Dim sql As String
 sql = "SELECT * FROM [Qry_Sub_F1S1] WHERE [group] Like '" & Nz(Me.gr, "*") & "' AND [Jobcode] Like '" & Nz(Me.jc, "*") & "' AND [jobname] Like '" & Nz(Me.jn, "*") & "'"
 Me.F1S1.Form.RecordSource = sql
End Sub
« แก้ไขครั้งสุดท้าย: 07 ต.ค. 63 , 08:15:02 โดย PNR »
เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa


บอร์ดเรียนรู้ Access สำหรับคนไทย