เปิดให้ปุ่มทำงานตามงวด



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

24 ก.ค. 63 , 18:02:11
อ่าน 261 ครั้ง

naekkhung

เปิดให้ปุ่มทำงานตามงวด
« เมื่อ: 24 ก.ค. 63 , 18:02:11 »


อย่ากให้ปุ่มทำงาน Enabled โดยอ้างอิงจากฟิวส์งวด เช่นถ้าขึ้น 2 งวดปุ่ม 2 งวดจะใช้งานได้ปุ่มอื่นจะไม่สามารถใช้งานได้ False ตามตัวอย่างที่ทำให้ดูครับ
« แก้ไขครั้งสุดท้าย: 25 ก.ค. 63 , 10:37:36 โดย naekkhung »

 

25 ก.ค. 63 , 15:34:58
ตอบกลับ #1

UnKnown

: เปิดให้ปุ่มทำงานตามงวด
« ตอบกลับ #1 เมื่อ: 25 ก.ค. 63 , 15:34:58 »
แนวคือเมื่อใส่เลขงวดไปแล้ว แล้วให้แสดงเฉพาะปุ่มนั้นมีแนวทางตามนี้ครับ

แบบที่1 ทุกปุ่มสั่งล็อคใว้ Enabled = No จะปลดล็อคเมื่อเลขงวดตรง
โค๊ด: [Select]
Private Sub Text5_AfterUpdate()
GetNum = Me.Text5
    Select Case GetNum
        Case "1": Me.Command1.Enabled = True
        Case "2": Me.Command2.Enabled = True
        Case "3": Me.Command3.Enabled = True
        Case "4": Me.Command4.Enabled = True
    End Select
End Sub

แบบที่2 ทุกปุ่มสั่งซ่อนใว้(ยังไม่แสดง) Visible = No จะแสดงปุ่มเมื่อเลขงวดตรง
โค๊ด: [Select]
Private Sub Text5_AfterUpdate()
GetNum = Me.Text5
    Select Case GetNum
        Case "1": Me.Command1.Visible = True
        Case "2": Me.Command2.Visible = True
        Case "3": Me.Command3.Visible = True
        Case "4": Me.Command4.Visible = True
    End Select
End Sub

ทั้งสองแบบต่างกันที่การตั้งค่าปุ่มบนหน้าฟอร์มกับชุดคำสั่งเพียงเล็กน้อย

แต่ชุดคำสั่งด้านบนยังติดขัดคือ สมมุติใส่เลขงวด1 = ปุ่ม1ทำงาน | แก้ใส่เลขงวด2 = ปุ่ม2ทำงาน แต่ปุ่ม1ก็จะยังคงทำงานอยู่ไม่ล็อคหรือกลับไปซ่อนตามเดิมนะ รอคำแนะนำจากท่านอื่นอีกทีครับ

 
โพสต์นี้ได้รับคำขอบคุณจาก: naekkhung, ิboonyarit

25 ก.ค. 63 , 19:36:38
ตอบกลับ #2

naekkhung

: เปิดให้ปุ่มทำงานตามงวด
« ตอบกลับ #2 เมื่อ: 25 ก.ค. 63 , 19:36:38 »
ไม่แน่ใจว่าต้องใช้ iif หรือป่าวมันถึงจะทำงานสมบูรณ์ผมก็เขียนไม่เป็นเหมือนกันครับ

 
โพสต์นี้ได้รับคำขอบคุณจาก: ิboonyarit

25 ก.ค. 63 , 20:15:34
ตอบกลับ #3

UnKnown

: เปิดให้ปุ่มทำงานตามงวด
« ตอบกลับ #3 เมื่อ: 25 ก.ค. 63 , 20:15:34 »
พึ่งคิดได้ว่าก็ใช้คำสั่งให้ทุกปุ่มที่มีซ่อนก่อนแล้วค่อยมาสั่งแสดงตามตัวเลขที่หลังอีกที  :meaw:

โค๊ด: [Select]
Private Sub Text5_AfterUpdate()

Me.Command1.Visible = False
Me.Command2.Visible = False
Me.Command3.Visible = False
Me.Command4.Visible = False

GetNum = Me.Text5
    Select Case GetNum
        Case "1": Me.Command1.Visible = True
        Case "2": Me.Command2.Visible = True
        Case "3": Me.Command3.Visible = True
        Case "4": Me.Command4.Visible = True
    End Select
End Sub

 
โพสต์นี้ได้รับคำขอบคุณจาก: ิboonyarit

25 ก.ค. 63 , 20:32:14
ตอบกลับ #4

สันติสุข

: เปิดให้ปุ่มทำงานตามงวด
« ตอบกลับ #4 เมื่อ: 25 ก.ค. 63 , 20:32:14 »
พึ่งคิดได้ว่าก็ใช้คำสั่งให้ทุกปุ่มที่มีซ่อนก่อนแล้วค่อยมาสั่งแสดงตามตัวเลขที่หลังอีกที  :meaw:

โค๊ด: [Select]
Private Sub Text5_AfterUpdate()

Me.Command1.Visible = False
Me.Command2.Visible = False
Me.Command3.Visible = False
Me.Command4.Visible = False

GetNum = Me.Text5
    Select Case GetNum
        Case "1": Me.Command1.Visible = True
        Case "2": Me.Command2.Visible = True
        Case "3": Me.Command3.Visible = True
        Case "4": Me.Command4.Visible = True
    End Select
End Sub

โค้ดข้างบนสามารถลดรูปลงมาได้นะครับ พร้อมกับรองรับกรณี Text5 ไม่ได้เป็นตัวเลข

   Dim I   As Integer
   Dim J   As Integer

   If IsNumeric(Me.Text5) Then J = CInt(Me.Text5)
   For I = 1 to 12
      Me("command" & Cstr(I)).Enabled = (I = J)
   Next

แต่สงสัยว่าทำไมต้องทำ 12 ปุ่ม สร้างปุ่มเดียวแล้วพิจารณาการทำงานของโค้ดในปุ่มนั้นด้วยค่าจาก Text5 ไม่ง่ายกว่าหรือ ?
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: UnKnown, ิboonyarit

29 ก.ค. 63 , 16:57:59
ตอบกลับ #5

naekkhung

: เปิดให้ปุ่มทำงานตามงวด
« ตอบกลับ #5 เมื่อ: 29 ก.ค. 63 , 16:57:59 »
ขอบคุณมากๆครับผมทำได้ละครับ

 


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