การใช้งาน ListBox

รูปภาพ
1.       สร้างฟอร์มชื่อ ListBox Form  กำหนดค่าต่างๆดังนี้ 1.1 สร้างป้ายชื่อ ( Label ) บริเวณส่วนหัวของฟอร์ม ตั้งชื่อว่า Label0 ป้ายคำอธิบายว่า   List Box 1.2 สร้างกล่องข้อความ ( Text Box ) ตั้งชื่อเป็น txt_box แหล่งควบคุมเป็น =" List" & [List 1].[ ListCount]+ 1 1.3 สร้างปุ่ม ( Button ) ตั้งชื่อเป็น Command 1 ป้ายคำอธิบายเป็น Add 1.4 สร้างกล่องรายการ ( List Box ) ตั้งชื่อเป็น List1  กำหนดเลือกหลายค่าเป็น ธรรมดา ถ้าหาไม่เจอลองกดคุณสมบัติแถบอื่นๆ จะมีรายการน้อยลงจะหาง่ายขึ้น 1.5 สร้างกลุ่มตัวเลือก (Frame) ตั้งชื่อเป็น Frame1 1.6 สร้างกล่องกาเครื่องหมาย ( Check Box ) ตั้งชื่อเป็น Check1 ตั้งค่าตัวเลือกเป็น 1 ระบุป้ายชื่อเป็น ลบรายการที่เลือก 1.7 สร้างกล่องกาเครื่องหมาย ( Check Box ) ตั้งชื่อเป็น Check 2 ตั้งค่าตัวเลือกเป็น 2 ระบุป้ายชื่อเป็น ลบทั้งหมด 1.8 สร้างปุ่ม ( Button) ตั้งชื่อเป็น Command2 ป้ายคำอธิบายเป็น Delete 1.9 สร้างปุ่ม ( Button) ตั้งชื่อเป็น Command4 ป้ายคำอธิบายเป็น >> 1.10 สร้างปุ่ม ( Button

ระบบ Login


1.   สร้างไฟล์ชื่อ   FirstAccess.accdb

2.   การสร้างตาราง โดยคลิกเมนู สร้าง แล้วเลือก ออกแบบตาราง จากนั้นก็พิมพ์ชื่อตัวแปรของ Field หรือก็คือชื่อคอลัมน์ ตามนี้
   1)  user_code             ชนิดข้อมูล: Text       ขนาด: 255    คำอธิบาย: User Code          ตั้งเป็นคีย์หลัก
   2)  user_password  ชนิดข้อมูล: Text     ขนาด: 255    คำอธิบาย: Password        รูปแบบการป้อนข้อมูล: Password
  3)  user_name       ชนิดข้อมูล: Text     ขนาด: 255    คำอธิบาย: User Name
  4)  user_type         ชนิดข้อมูล: Text     ขนาด: 1         คำอธิบาย: Type




คีย์หลัก หรือ Primary Key ใช้สำหรับกำหนดให้ข้อมูลที่บันทึกในช่องนี้มีค่าไม่ซ้ำกัน ค่าไม่ซ้ำกันใช้เพื่อระบุตัวตนของข้อมูลแถวนั้นๆ ตัวอย่างเช่น รหัสผู้ใช้งาน จะต้องมีค่าไม่ซ้ำกัน ในเชิงฐานข้อมูล คีย์หลัก จะใช้สำหรับค้นหาข้อมูลที่ต้องการได้โดยเร็วและถูกต้อง วิธีกำหนดคือเอาเมาส์คลิกที่แถวนั้น 

ตามตัวอย่าง ให้คลิกที่ user_code แล้วกดรูปกุญแจคีย์หลัก ถ้าดูบริเวณด้านล่างจะเห็นคุณสมบัติต่างๆของ user_code ให้ดูช่อง ใส่ดัชนี จะเขียนว่า ใช่(ไม่มีค่าซ้ำกัน)   หลังจากระบุเสร็จแล้วให้บันทึกตารางและกำหนดชื่อเป็น User

หลักการตั้งชื่อ Field หรือคอลัมน์ของตารางนั้นเยอะครับถ้าจะอธิบาย สรุปเป็นตัวเลขกับภาษาอังกฤษ มี _ (Underscore) แต่อย่าเว้นวรรคครับ ส่วนตรง คำอธิบาย ใส่ยังไงก็ได้เพราะมันจะแสดงคำอธิบายเป็นชื่อของคอลัมน์เวลาเปิดดูข้อมูลตาราง

- เมื่อกำหนดเสร็จแล้วให้ลองกดมุมมองแผ่นข้อมูล จะเห็นรูปแบบตารางที่สร้าง (ซ้ายบนที่เขียนว่า มุมมอง)

3.   การสร้าง Query โดยคลิกเมนู สร้าง กดเลือก ออกแบบแบบสอบถาม จะเป็นการสร้างแบบสอบถาม (Query) จะมีหน้าต่างเล็กๆเด้งขึ้นมาชื่อว่า แสดงตาราง ให้ดับเบิ้ลคลิกตาราง User (ถ้าเผลอกดปิดไปก็คลิกขวาเลือก แสดงตาราง)



เมื่อดับเบิ้ลคลิกตาราง User แล้วมันจะขึ้นมาตรง ออกแบบ Query1 เสร็จแล้วกดปิดหน้าต่าง แสดงตาราง


ให้ดับเบิ้ลคลิกตรงเครื่องหมาย * ที่อยู่เหนือ Field ต่างๆ เสร็จแล้วลอง Query ดูแล้วกดบันทึกตั้งชื่อเป็น User Query

- Field ก็คือ คอลัมน์ต่างๆของตาราง ส่วน * คือให้แสดงทุกคอลัมน์

Query แบบสอบถาม แสดงว่าให้ลองประมวลผลดู (เครื่องหมายตกใจที่เขียนว่า เรียกใช้)


4.   การบันทึกข้อมูลลงในตาราง User ทำได้โดยเปิดตาราง User ขึ้นมาแล้วพิมพ์ข้อมูลโดยตรง หรือ สามารถทำได้โดยการเปิดแบบสอบถาม User Query แล้วพิมพ์ข้อมูลลงไป


กำหนดผู้ใช้ 2 คน คือ
      1)  User Code: Admin       Password: Admin        User Name: Administrator           Type: A
    2)  User Code: User          Password: User          User Name: User                        Type: U

ช่อง Password จะเป็น **** เพราะเรากำหนด รูปแบบการป้อนข้อมูล เป็น Password

ทางซ้ายมือเป็นหน้าต่างแสดงรายการวัตถุให้กดเลือก วัตถุ Access ทั้งหมด เพื่อดูวัตถุทั้งหมดที่เราสร้าง


5. การสร้างฟอร์ม ให้กดเมนู สร้าง เลือก ออกแบบฟอร์ม จะได้ฟอร์มเปล่า 1 ฟอร์ม กดบันทึกและตั้งชื่อฟอร์มว่า
Main Form 

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



   5.1 กำหนดพื้นหลัง ส่วนหัวของฟอร์ม ส่วนรายละเอียด ส่วนท้ายของฟอร์ม โดยคลิกที่ส่วนนั้นแล้วเปลี่ยนสีพื้นหลัง

   5.2 ใส่ Label ในส่วนหัวของฟอร์มแล้วพิมพ์ว่า Main Menu โดย Label ก็คือ ป้ายชื่อ อยู่ตรงเมนู ออกแบบ รูปเครื่องมือคือ Aa ครับ

เมนู ออกแบบ ในส่วนนี้เรียกว่า เครื่องมือ หรือ Tools เอาไว้สำหรับสร้างฟอร์ม มีหลายตัวให้เลือกใช้ครับ วิธีใช้ก็แค่คลิกซ้าย 1 ครั้งที่เครื่องมือแล้วเลื่อนเมาส์มายังตำแหน่งที่ต้องการแล้วคลิกซ้ายลากวางได้เลย สำหรับ Label ต้องพิมพ์ข้อความต่อเลยนะครับ ไม่อย่างนั้นมันจะหายไป

   5.3 ใส่ Textbox 2 ตัว กำหนด Label เป็น User: และ Password: ตำแหน่งตามรูปในส่วนท้ายของฟอร์ม โดย Textbox คือ กล่องข้อความ รูปเครื่องมือคือ ab| เวลาสร้างมันจะมี Label มาให้เลย จะลบหรือเอาไว้ใช้ก็ได้ครับ

        - คลิกขวา Textbox แรกที่ Label ชื่อ User แล้วเลือก คุณสมบัติ เสร็จแล้วจะมีหน้าต่างคุณสมบัติขึ้นมา กำหนดชื่อเป็น txt_user_code

     - คลิกขวา Textbox ตัวที่ 2 ที่ Label ชื่อ Password แล้วกำหนดชื่อเป็น txt_user_password


   5.4 สร้าง Textbox 1 ตัว ขนาดยาว กำหนดชื่อเป็น txt_user_name


   5.5 สร้าง button หรือ ปุ่ม 1 ปุ่ม กำหนดชื่อเป็น Cmd_login กำหนดป้ายคำอธิบายเป็น Login เสร็จแล้วสามารถกำหนดรูปแบบของปุ่มให้มีสีสันต่างๆได้โดยคลิกที่ปุ่มแล้วเลือกเมนูรูปแบบ โดย Button หรือ ปุ่ม สร้างขึ้นเพื่อใช้สำหรับคลิกรับคำสั่ง รูปเครื่องมือคือ กล่องสี่เหลี่ยมมีข้อความ XXXX  ขณะกำลังสร้างปุ่มจะมีหน้าต่างขึ้นมาเพื่อกำหนดค่าฟังก์ชั่นต่างๆให้กดยกเลิกไปก่อน


   5.6 สร้างกล่องสี่เหลี่ยมครอบ Textbox และ ปุ่ม กำหนด สีพื้นหลังเป็นโปร่งใส เส้นขอบสีขาว คลิกขวาที่กล่อง เลือก ตำแหน่ง เลือก นำไปไว้ข้างหลังสุด โดยกล่องสี่เหลี่ยมจะใช้ กล่องสี่เหลี่ยมผืนผ้า หรือ Frame ก็ได้ ถ้าใช้ Frame ตอนสร้างให้ยกเลิกข้อมูลและลบ Label ออกไป เพราะ Frame มีคุณสมบัติการจัดกลุ่มเอาไว้พูดทีหลัง


6. การ Coding  เป็นการเขียนโปรแกรมคำสั่งเพื่อให้ระบบทำงาน

   6.1 ให้คลิกขวาตรงมุมบนของฟอร์ม ตามรูป กดเลือกคุณสมบัติ


   ปรากฏหน้าต่างคุณสมบัติ เลือก Tab เหตุการณ์ ช่อง Event เมื่อโหลด ให้กดเลือก [กระบวนงานเหตุการณ์]
เสร็จแล้วกดปุ่ม ... ตรงท้ายแถว



จะมีหน้าต่างโปรแกรมสำหรับเขียนโค้ดขึ้นมา มีข้อความ Code ดังนี้

Private Sub Form_Load()
End Sub  

ให้พิมพ์ Code เพิ่มเติมดังนี้ โดยข้อความหลังเครื่องหมาย ' เป็นคำอธิบายไม่ต้องพิมพ์ตาม

Private Sub Form_Load()
  DoCmd.MoveSize 3000, 2000    'ให้ฟอร์มแสดง ณ ตำแหน่ง ไปทางขวา 3000 ลงล่าง 2000 จากมุมบนซ้ายของฟอร์ม
  Call load_login                                   'เรียกใช้ฟังก์ชั่น load_login
End Sub

Sub load_login()                                         'สร้างฟังก์ชั่นใหม่ชื่อ load_login
    Me.txt_user_code.Visible = True            'กำหนด txt_user_code ให้มองเห็นได้
    Me.txt_user_code = ""                                     'กำหนด txt_user_code มีค่าเท่ากับช่องว่าง
    Me.txt_user_password.Visible = True      'กำหนด txt_user_password ให้มองเห็นได้
    Me.txt_user_password = ""                           'กำหนด txt_user_password มีค่าเท่ากับช่องว่าง
    Me.txt_user_name.Visible = False              'กำหนด txt_user_name ให้มองเห็นไม่ได้
    Me.txt_user_name = ""                                    'กำหนด txt_user_name มีค่าเท่ากับช่องว่าง
    Me.Cmd_login.Caption = "Login"                'กำหนดปุ่ม Cmd_login มีคำอธิบายเป็น Login หรือมี Caption=Login
End Sub


เสร็จแล้วกดบันทึกและปิดโปรแกรมเขียน Code กลับมาหน้าโปรแกรม Access ใหม่ มพ์ตาม


   6.2 คลิกขวาที่ปุ่ม Login เลือก สร้างเหตุการณ์ เลือก ตัวสร้างโค้ด แล้วกดตกลง จะมีหน้าต่างโปรแกรมสำหรับเขียนโค้ดขึ้นมาอีกครั้ง ในส่วนนี้จะเป็นการกำหนดคำสั่งเมื่อมีการคลิกปุ่ม Login

Private Sub Cmd_login_Click()
End Sub

เมื่อผู้ใช้มีการคลิกปุ่ม Login เราต้องการจะตรวจสอบว่า User และ Password ถูกต้องหรือไม่ ให้พิมพ์ code ตามนี้

Private Sub Cmd_login_Click()
Dim u_code, u_password As String                      'กำหนดตัวแปรเพื่อรับค่า user code และ password
If Me.Cmd_login.Caption = "Login" Then                  'ถ้า Cmd_login มี Caption = Login ให้ทำในส่วนนี้
If Len(Me.txt_user_code) > 0 And Len(Me.txt_user_password) > 0 Then   'ตรวจสอบว่าใส่ user และ password
u_code = Nz(DLookup("user_code", "[User]", "user_code = '" & Me.txt_user_code & "'"), "")
'Dlookup(“”,”[]”,””) ใช้สำหรับดึงข้อมูล จากแถวบน ให้ดึง user_code จากตาราง User โดย user_code = ค่าที่ผู้ใช้ป้อน
'Nz(“”,””)  ใช้คืนค่าอื่นถ้าข้อมูลที่ต้องการไม่มี ใน Nz() จะมี 2 ค่า ค่าแรกเป็นค่าที่ต้องการ ถ้าไม่มีจะคืนค่าช่องที่ 2 มาให้
If StrComp(u_code, Me.txt_user_code, vbBinaryCompare) = 0 Then   'ตรวจสอบค่า User ที่พิมพ์และค่าในฐานข้อมูล
        u_password = Nz(DLookup("user_password", "[User]", "user_code = '" & u_code & "'"), "")   'ดึงค่า password
            If StrComp(u_password, Me.txt_user_password, vbBinaryCompare) = 0 Then   'ตรวจสอบค่า password
            Me.txt_user_code.Visible = False          'กำหนด txt_user_code ให้เห็นไม่ได้
            Me.txt_user_password.Visible = False    'กำหนด txt_user_password ให้เห็นไม่ได้
            Me.txt_user_name.Visible = True           'กำหนด txt_user_name ให้เห็นได้
            Me.txt_user_name = DLookup("user_name", "[User]", "user_code = '" & Me.txt_user_code & "'")    'ดึงข้อมูล user_name จากตาราง User มาแสดงในช่อง txt_user_name
            Me.Cmd_login.Caption = "Logout"   'กำหนด Caption ของ Cmd_login เท่ากับ Logout
            Else
            MsgBox "Password Incorrect !!!"
            End If
        Else
        MsgBox "User Incorrect !!!"
        End If
    Else
        MsgBox "Insert User !!!"
    End If
ElseIf Me.Cmd_login.Caption = "Logout" Then   'ถ้าปุ่ม Cmd_login มี Caption = Logout ให้ทำในส่วนนี้
    Call load_login                     'เรียกฟังก์ชั่น load_login ที่สร้างไว้แล้วเพื่อคืนค่าต่างๆเหมือนตอนเปิดฟอร์ม
End If
End Sub

เสร็จแล้วสำหรับการกำหนดค่าฟอร์ม Main Menu เราต้องการให้แสดงฟอร์มแบบ Dialog ให้สร้างฟอร์ม Start Form เพื่อกำหนดการแสดง Dialog ของ Main Form

7. สร้างฟอร์ม Start Form โดยกดเมนู สร้าง เลือก ออกแบบฟอร์ม บันทึกฟอร์มชื่อ Start Form กำหนดคุณสมบัติของฟอร์มโดยคลิกขวามุมบนของฟอร์ม เลือกคุณสมบัติ เหมือนข้อ 6.1  กำหนด Event เมื่อโหลด แล้วพิมพ์ code ดังนี้

Private Sub Form_Load()

DoCmd.OpenForm "Main Form", acNormal, , , , acDialog      'กำหนดให้แสดงฟอร์ม Main Form แบบ Dialog
DoCmd.Close acForm, "Start Form", acSaveNo                    'ปิดฟอร์ม Start Form

End Sub

กดเมนู แฟ้ม เลือก ตัวเลือก จะปรากฏหน้าต่าง ตัวเลือก Access ขึ้นมา ด้านซ้ายให้คลิกเลือก ฐานข้อมูลปัจจุบัน
ด้านขวาตรงช่อง แสดงฟอร์ม ให้เลือก Start Form แล้วกดตกลง ปิดโปรแกรม Access แล้วลองเข้าใหม่ ทดสอบใช้งานระบบ

User ใส่คำว่า Admin
Password ใส่คำว่า Admin

จากนั้นลองกดปุ่ม Login เพื่อทดสอบระบบ โดยต้องใส่ให้ตรงนะครับ อักษรตัวเล็ก ตัวใหญ่ ต้องตรงกัน

เมื่อทดสอบเรียบร้อยแล้วให้ปิดฟอร์มไป ให้คลิกขวา Main Form เลือก มุมมองออกแบบ



ลากกล่องข้อความ txt_user_name ขึ้นไปตรงๆให้ทับ txt_user_code กับ txt_user_password เพื่อเวลาแสดงผลจะได้อยู่กึ่งกลางกรอบสี่เหลี่ยมพอดี







ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การใช้งาน ListBox

ระบบ Add User