แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Teeyai

หน้า: 1 [2]
19
เรียนสอบถามท่านอาจารย์/ท่านผู้เชี่ยวชาญ ดังนี้ครับ
      หลังจากที่ผมได้ทำการสร้าง LogIn Form สำหรับเข้าทำงานในระบบเรียบร้อยแล้ว
               
      เมื่อกด OK ระบบจะตรวจสอบชื่อผู้ใช้งานว่าอยู่ใน Class อะไร จากตาราง UserClass
               
      หลังจากตรวจสอบแล้วก็เข้าสู่หน้าหลักของ Switchboard ดังข้างล่าง
               
      (สวิตช์บอร์ด อิงข้อมูลจากตาราง Switchboard items)     

       เงื่อนไข....
       ผู้ใช้งาน ระดับ A สามารถใช้งานได้ทุกปุ่ม (เข้าได้ทุกแผนก)
       ผู้ใช้งาน ระดับ B สามารถใช้งานได้แค่ปุ่มแผนกวิศวกรรม และปุ่มออกจากโปรแกรม
       ผู้ใช้งาน ระดับ C สามารถใช้งานได้แค่ปุ่มแผนกบัญชีและการเงิน ปุ่มแผนกบุคคล และปุ่มออกจากโปรแกรม
       ผู้ใช้งาน ระดับ D สามารถใช้งานได้แค่ปุ่มแผนกบัญชีและการเงิน และปุ่มออกจากโปรแกรม
       ผู้ใชงาน ระดับ E สามารถใช้งานได้แค่ปุ่มแผนกบุคคล และปุ่มออกจากโปรแกรม
       ผู้ใชงาน ระดับ F สามารถใช้งานได้แค่ปุ่มแผนกเครื่องมือ และปุ่มออกจากโปรแกรม

       ปัญหาของผมคือ ผมไม่ทราบวิธีที่จะบล็อคไม่ให้ปุ่มมันทำงานได้ในแต่ละเงื่อนไขครับ เพราะในมุมมองออกแบบของ Switchboard Manager มันไม่ได้แยกปุ่มอิสระต่อกัน แต่มันเป็นปุ่มเดียว และควบคุมโดยตาราง Switchboard Items อีกทีนึง
             
       
       ขอเรียนท่านอาจารย์/ท่านผู้ชำนาญการ ช่วยชี้แนะด้วยครับ

       ขอบพระคุณมากครับ....

20
ขอบคุณมาก ๆ เลยครับ

21
Private Sub Text1_AfterUpdate()
Dim Rs As Recordset
Set Rs = CurrentDb.OpenRecordset("Select * From UserClass Where UserName='" + Text1 + "';")

If Rs.RecordCount = 0 Then
MsgBox " ¼Ùéãªéª×èÍ " + Text1 + " äÁèä´éÃѺ͹حҵãËéãªé§Ò¹ "
Text1 = ""
Text1.SetFocus
Exit Sub
End If

End Sub

ลองแล้วไม่ได้ครับ มันยังกระโดดไป Text2 อยู่ดีครับ
แต่ถ้าเป็น Event On Click ใช้ได้ครับ
Event after updated ใช้ไม่ได้อะครับ

22


ตอนนี้ผมกำลังหัดเขียนโค้ด เพื่อทำโปรแกรมใช้งานเองในออฟฟิศครับ
ข้างล่างนี้คือโค้ดที่ผมใส่ใน Event Update ของ Textbox ชื่อ Text1(ชื่อผู้ใช้)

Private Sub Text1_AfterUpdate()
Dim Rs As Recordset
Set Rs = CurrentDb.OpenRecordset("Select * From UserClass Where UserName='" + Text1 + "';")

If Rs.RecordCount = 0 Then MsgBox " ผู้ใช้ชื่อ " + Text1 + " ไม่ได้รับอนุญาตให้ใช้งาน ": Text1 = "": Text2 = "": Exit Sub

End Sub

ความต้องการของผมคือ เวลาพิมพ์ชื่อผู้ใช้ที่ไม่มีในตารางฐานข้อมูลแล้วกดปุ่ม Enter ให้ขึ้นข้อความเตือนว่า "ผู้ใช้ชื่อนี้ไม่ได้รับอนุญาตให้ใช้งาน" แล้วก็สั่งเคลียร์ค่าในช่อง Text1 =""  หลังจากนั้น Cursor มันก็กระโดดไป Text Box ถัดไป ซึ่งในความเป็นจริงผมต้องการให้มันเด้งกลับไปที่ Text1 ที่เดิม เพื่อรอให้พิมพ์ชื่อผู้ใช้ใหม่ครับ แต่ไม่ทราบว่ามีคำสั่งสำหรับย้าย cursor กลับไปตำแหน่ง Text Box เดิมไหมครับ หรือถ้ามีวิธีอื่น ๆ อีกรบกวนด้วยครับ...

ขอบพระคุณคร้าบบบบ...

หน้า: 1 [2]