Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hướng dẫn] Tạo MeNu Form bằng Navigation Form và một số vấn đề liên quan khác
#1
Bài 1 : Tạo MeNu bằng Navigation Form

Dear All
Việc tạo MeNu bằng Macro và Code đã có nhiều bài viết trên diễn đàn. Hôm nay xin giới thiệu với các bạn một cách đơn giản là tận dụng Navigation Form để làm MuNu. Các bạn xem hình ảnh sau
1/ Khi mở Chương trình thì hiển thị MeNu Form ngay. Tất cả các MeNu đều bị Enabled, riêng MeNu Hệ Thống là khả dụng

[Hình: ay4J2eM.png]

2/ Sau khi kích SubMeNu Đăng Nhập hiển thị frmDangNhap

[Hình: krZGaPm.png]

3/ Khi Đăng Nhập thành công trở lại Menu Form thì tất cả các MeNu đều khả dụng, SubMeNu Đăng Nhập bị Enabled

[Hình: HDbTtUc.png]

4/ Kích các MeNu sẽ xòe các SubMeNu tương ứng
4.1/ Danh Mục

[Hình: ykW5Sc6.png]

4.2/ Nhập Liệu

[Hình: weRRwRL.png]

4.3/ Báo Cáo

[Hình: VtixNpW.png]

4.4.1/ Quản Trị (khi quyền không phải là addmin)

[Hình: M8VqF47.png]

4.4.2/ Quản Trị (khi quyền là addmin)

[Hình: VEMnko7.png]

4.5/ Help

[Hình: u6kZayS.png]


Việc phân quyền các bạn tham khảo cách phân quyền của bạn maidinhdan trên diễn đàn nhé
Khi đăng nhập sẽ chỉ định tên người đăng nhập qua một biến toàn cục để xác định quyền truy cập

Mời các bạn xem qua hình ảnh rồi mai ta tiếp tục nhé
Thân mến
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 , huuduy.duy
#2
Xin bổ sung:
Tính năng tạo Navigation Form chỉ có từ Access 2010 trở lên
Chữ ký của lmthu Xin chào, mình là lmthu, Tham gia http://thuthuataccess.com/forum từ ngày 04-07 -14.
Reply
Những người đã cảm ơn huuduy.duy , Xuân Thanh
#3
Bài 1 (Tiếp Theo) : Thiết kế Form MeNu

Bây giơ chúng ta băt tay vào thiết kế
Trong Menu Create của Access, chúng ta chọn Navigation. Trong này xổ ra một loạt các dạng Form khác nhau, các bạn tự tìm hiểu. Ở đây tôi chọn dạng Horizontal Tabs. Khi chọn xong, Access se tạo cho ta một form đang View. Chúng ta Design View form lại sẽ thấy thế này

[Hình: rDY484X.png]

Dùng chuột kéo sát về góc trên bên trái ta thấy form như sau

[Hình: NndCZRr.png]

Lần lượt ghi tên các MeNu vào ô AddNew, đặt tên cho nó, chỉnh font, màu...,sửa tiêu dề form qua Property Sheet. Cuối cùng chúng ta được form như sau

[Hình: DQ62tsK.png]

Các bạn cũng có thể thay logo của form như trong hình bằng cách chọn logo theo ý muốn rồi chèn qua Property Sheet. Diều tôi quan tâm nhất đên các bạn là cai phần Unbound phía dưới form. Kích vào nó nhìn qua Property Sheet chúng ta thây nó chính là một NavigationSubForm. Nơi này chính là nơi ta đặt các thành phân của SubMenu vào. Hãy đặt tên cho NavigationSubForm này để tiện cho việc viết code về sau. Ở đây tôi đăt tên cho nó là QuanLyKhoSub
Để tạo các SubMenu chúng ta dùng chiêu một chút. Chúng ta thiết kế các form tạo SubMenu như cách tạo các form thông thường. Trên các form này ta chỉ vẽ các Command Buton mà thôi để khi click vào nó thì mở các form tương ứng. Đặt tên cho các cmd này và viết code cho sự kiên click của nó. Ví dụ

Mã:
Pfivate Sub cmdDangNhap_Click()
     DoCmd.OpenForm "frmDangNhap"
End Sub

Dưới đây là hình ảnh của hai form frmHeThong và frmDanh Mục ở dạng design

[Hình: jxbUIgS.png]

[Hình: 7bFhIHL.png]


Lưu ý các bạn điều chỉnh các cmd cho hợp lý để sau khi view form các cmd này nằm ngay phía dưới các MeNu
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
#4
Bài 1(Tiếp thep) : Nhúng SubMeNu

Mở form Menu ở dạng design. Kích MeNu Hệ Thống, nhìn qua Property Sheet mục Data. Trong phần Navigation Target Name, xổ mũi tên xuống ta chọn frmHeThong đã thiết kế ở trên. Làm tương tụ cho các Menu còn lại. Vậy là ta đã thiết kế xong một Menu MainForm rồi
Nói thêm : Như bạn lmthu đã nói Navigation Form chỉ có từ Access 2010 trở lên. Tại sao Access có sẵn ta không tận dụng dể làm
Toàn bộ code của form này như sau :

Mã:
Option Compare Database
Option Explicit

Private Sub Form_Load()
    Me.DanhMuc.Enabled = False: Me.NhapLieu.Enabled = False
    Me.BaoCao.Enabled = False: Me.QuanTri.Enabled = False: Me.Help.Enabled = False
End Sub

Private Sub HeThong_Click()
    If strID = "" Then
        Me.QuanLyKhoSub.Form!cmdDangNhap.Enabled = True
    Else
        Me.QuanLyKhoSub.Form!cmdDangNhap.Enabled = False
    End If
End Sub

Private Sub QuanTri_Click()
    If strID = "addmin" Then
        Me.QuanLyKhoSub.Form!cmdNhanVien.Enabled = True
        Me.QuanLyKhoSub.Form!cmdPhanQuyen.Enabled = True
    Else
        Me.QuanLyKhoSub.Form!cmdNhanVien.Enabled = False
        Me.QuanLyKhoSub.Form!cmdPhanQuyen.Enabled = False
    End If
End Sub

Giải thích một chút : Như đã nói ở phần trên ta tạo một biến toàn cục strID để khi đăng nhập sẽ ghi biến này vào bộ nhớ và từ biến này để điều khiển các SubMeNu có bị Enabled hay không. Ở đây tôi chỉ mới phân quyền cho addmi là người quản trị thôi chưa phân quyền chi tiết. Khi có phân quyền chi tiết thì lúc click các Menu sẽ gọi hàm PhanQuyen để chỉ định các SubMenu nào được khả dụng(sẽ nói ở phần sau)
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 huuduy.duy , Noname


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ài 2) : Thiết kế form Đăng Nhập Xuân Thanh 0 64 17-04-19, 10:29 AM
Bài mới nhất: Xuân Thanh
  [Thủ Thuật] update nhiều record trong bảng với 1 query ht03 24 9,533 29-03-19, 01:10 PM
Bài mới nhất: jason
  Tự động liên kết các table Noname 5 3,253 28-02-19, 02:01 PM
Bài mới nhất: mrtoanbin
  [Thủ Thuật] Demo_Code Ẩn tất cả mọi thứ, ngoại trừ Form+Report maidinhdan 173 43,585 08-02-19, 09:11 AM
Bài mới nhất: fuusan
  [Thủ Thuật] [Shared Code- PhầnII]Chọn ngày tháng bằng click chuột [No Calendar] maidinhdan 29 8,661 03-11-18, 02:29 PM
Bài mới nhất: maidinhdan

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