Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hướng dẫn] Tạo MeNu Form(Bài 2) : Thiết kế form Đăng Nhập
#1
Bài 2 : Thiết kế form Đăng Nhập

Thời gian qua có rất nhiều bạn thắc mắc và viết thư hỏi tôi về thiết kế form Đăng nhập sao cho hợp lý. Có rất nhiều cách thiết kế form này. Hôm nay nhân tiện đây xin giới thiệu với các bạn một cách thiết kế form Đăng nhập bằng Unbount Form. Mục đích chính của form này là
1/ Sử dụng Unbount Form
2/ Sử dụng Dao.Recordset
3/ Khi đăng nhập thành công sẽ mở Enabled các MeNu và Enabled SubMenu Đăng Nhập
4/ Khi nhập sai mật khẩu đăng nhập sẽ có thông báo để nhập lại. Nếu sai mật khẩu đăng nhập 3 lần sẽ tự động đóng chương trình

Các bạn thiết kế form đăng nhập như hình ở bài 1. Chú ý đây là Unbount Form nên không gán RecordSouce vf ControlSouce. Tất cả đêu được điều kiển băng code VBA. Toàn bộ code của form này như sau :

Mã:
Option Compare Database
Option Explicit
Dim rs As DAO.Recordset, Dem As Integer

Private Sub cboUserID_Click()
    If rs.RecordCount > 0 Then rs.MoveFirst
    rs.Move Me.cboUserID.ListIndex
    Me.txtTen = rs.Fields(1)
    strID = rs.Fields(0)
End Sub

Private Sub cboUserID_Enter()
    SendKeys "%{DOWN}"
End Sub

Private Sub cmdDangNhap_Click()
    If rs.RecordCount > 0 Then rs.MoveFirst
    rs.Move Me.cboUserID.ListIndex
    If Me.txtPas = rs.Fields(2) Then
        Forms!frmMeNu!DanhMuc.Enabled = True
        Forms!frmMeNu!NhapLieu.Enabled = True
        Forms!frmMeNu!BaoCao.Enabled = True
        Forms!frmMeNu!QuanTri.Enabled = True
        Forms!frmMeNu!Help.Enabled = True
        Forms!frmMeNu!QuanLyKhoSub!cmdDangNhap.Enabled = False
        DoCmd.Close
    Else
        MsgBox "Sai Password", vbCritical, "Quan Ly Kho"
        Me.txtPas.SetFocus
        Dem = Dem + 1
    End If
    If Dem = 3 Then DoCmd.Quit
End Sub

Private Sub cmdThoat_Click()
    DoCmd.Close
End Sub

Private Sub Form_Load()
    Set rs = CurrentDb.OpenRecordset("tblNhanVien", dbOpenTable)
    Me.cboUserID.RowSourceType = "Value List"
    AddUser
End Sub

Private Sub AddUser()
    If rs.RecordCount > 0 Then rs.MoveFirst
    Do Until rs.EOF
        Me.cboUserID.AddItem rs.Fields(0)
        rs.MoveNext
    Loop
End Sub

Lưu ý : Các bạn phải định nghĩa một biến toàn cục strID ở đầu một modun bất kỳ của chương trình như thế này
Mã:
Public strID As String

Giải thích đoạn code trên như sau
1/ Khi load form sẽ set biến DAO.Recordset cho rs là table tblNhanVien. Đặt thuộc tính RowSourceType cho combobox cboUserID là Value List để nhận các Item khi AddUser
2/ Khi cboUser được click sẽ gán tên nhân viên theo UserID của combo, gán biến strID bằng giá trị hiện hành của hộp combo
3/ Khi click cmđangNhap sẽ làm các việc sau đây
3.1/ Kiểm tra Texbox Pas có trùng với Pas được đăng ký bởi cboUserID hay không
3.2/ Nếu đúng mở Enabled các Menu của MainForm, Enabled SubMenu Đăng Nhập
3.2/ Nếu sai hiển thị thông báo, tăng biến Dem lên 1. Khi biến Dem = 3(Nhập sai 3 lần) thì thoát chương trình

Các bạn có thể tùy nghi chế biến theo yêu cầu của minh
Chúc các  bạn thành công
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn ongke0711 , Noname , DooHoaangPhuuc , huuduy.duy


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Hướng Dẫn Tạo MeNu Form bằng Navigation Form và một số vấn đề liên quan khác Xuân Thanh 3 134 16-04-19, 09:26 AM
Bài mới nhất: Xuân Thanh
  [Thủ Thuật] Demo_Code Ẩn tất cả mọi thứ, ngoại trừ Form+Report maidinhdan 173 43,587 08-02-19, 09:11 AM
Bài mới nhất: fuusan
  [Help] Lấy dữ liệu record mới nhập trong Table vulhu06 1 241 14-01-19, 10:33 AM
Bài mới nhất: tranthanhan1962
  Hướng Dẫn Sử dụng Hyperlink trên Form mrtoanbin 6 833 30-10-18, 09:50 PM
Bài mới nhất: mrtoanbin
  [Thủ Thuật] Demo Liệt kê số lượng User đang mở table nào maidinhdan 10 4,316 14-07-18, 09:19 PM
Bài mới nhất: hoaqldd33

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line| Phần mềm quản lý bán hàng, công nợ- tồn kho- nhà phân phối