• Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu
  • Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu

    bienxanhlunglinh > 20-10-10, 05:30 PM

    Kg Anh Chị Em:
    Tôi có 1 ứng dụng access, hiện tại muốn: Phân quyền cho các User đăng nhập theo từng nhóm quyền tương ứng sẽ được sử dụng các tính năng trên Menu theo quy định với chức năng của nhóm quyền đó, nhưng không biết gọi macro_menu và visible / invisible nó ra sao.ACE giúp đỡ nha.

    ==> yêu cầu: (lưu ý: các menu đều được làm bằng macro)
    - Khi chạy ứng dụng, sẽ chỉ có form_login chạy (on top), các menu ẩn đi
    - User login đúng thì Menu bật lên (Menu tạo bằng các Macro) và tương ứng với nhóm quyền user đăng nhập sẽ được sử dụng các Menu theo chính sách, ngược lại (đăng nhập sai) báo lỗi ?
    - ứng với mỗi user đăng nhập theo nhóm quyền nào thì các tính năng trên thanh menu sẽ sáng / mờ tùy theo nhóm quyền của user đăng nhập?

    ví dụ: nhóm username: nguyenvanA; password: 111; nhóm: user sau khi đăng nhập trên menu File các chức năng open, search sẽ sáng tức được sử dụng, tính năng print sẽ mờ đi tức user đó không được sử dụng.

    cụ thể trong file đính kèm: khi đăng nhập với user ChiNT pass: 333 thì
    Trên Menu: báo cáo nhập:
    - thiết bị dầu khí =====> sáng (visible)
    - Hóa chất =====> sáng (visible)
    - Ô tô =====> sáng (visible)
    - Người nước ngoài =====> mờ đi (invisible) không cho phép sử dụng
    Cảm ơn các anh em.
  • RE: Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu

    haquocquan > 20-10-10, 06:54 PM

    Mình đã xem bài của bạn. Có mấy ý kiến thế này để bạn tham khảo và đưa vào bài của mình nhé:
    - Bạn phân quyền theo USERID hay theo NHOMQUYEN. Để phân quyền được theo nhóm quyền, thì nên đặt thuộc tính của NHOMQUYEN là số (và đặt giá trị cho các nhóm)
    Tham khảo Thiết kế chương trình phân quyền trong diễn đàn này.
    Khi đó, user có nhóm quyền cao nhất sẽ vào được tất cả. Còn nhóm quyền thấp hơn vào một số, thấp hơn nữa vào một số ít hơn.
    - Mình không tạo Menu bằng macro cho nên không biết cách làm mờ đi của Menu con. Mình thử với file của bạn theo cách mình làm mờ đi trong menu tạo bằng customize thì bị giấu hẳn.

    Khi mình không muốn cho user vào mục nào, thì mình làm như sau:

    Mã:
    if UserLevel <=4 then
    application.commandbars("mcr_MAIN").controls(2).controls(3).visible = false
    endif

    Với câu lệnh trên, Menu con Ô tô trong "Báo cáo nhập" của bạn sẽ bị giấu đi.
    Bạn vận dụng vào bài của mình cho phù hợp nhé.
  • RE: Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu

    bienxanhlunglinh > 21-10-10, 06:06 PM

    K/g: Các bạn

    - Tham khảo bài trả lời của bạn: haquocquan, Mình làm được phần login (Phân quyền các chức năng sử dụng theo Nhóm Quyền)
    - Phần làm sáng / mờ (invisible/Invisible) các menu và submenu thì cũng bị mất luôn, đáp ứng đc App nhưng không hay.

    - Tiện cho hỏi bạn haquocquan là: đối với submenu của 1 submenu thì cũng sử dụng dạng control(i).control(i).control(i).visible = false/true phải không?
    ví dụ:
    báo cáo nhập '---> control (1)
    .....................Ô tô '----> control (1).control(1)
    ..........................Xe cẩu '----> control (1).control(1).control(2).visible = true/false phải ko?

    Cảm ơn các bạn.

  • Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu

    haquocquan > 21-10-10, 06:24 PM

    Đúng rồi đó. Thực ra có 2 cách:
    - Cách 1: contrls(i).controls(i) .... như phần trên.
    - Cách 2: tên menu, submenu,... Nhưng cách này bạn đặt tên Menu là tiếng việt, nên cần gõ thật chính xác.

    Mình không tạo Menu bằng Macro(mình tạo bằng cách customize).
    Qua bài của bạn, mình thấy tạo bằng Macro hay hơn. Vì: trong trường hợp file bị lỗi hoặc muốn tạo một file khác và import toàn bộ objects từ file cũ sang thì import được luôn macro (nhưng cách tạo menu của mình thì không làm được).
    Cám ơn bạn nhé.
  • RE: Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu

    bienxanhlunglinh > 23-10-10, 11:16 AM

    k/g: - haquocquan & ACE:
    - Tui da lam duoc phan quyen gioi han chuc nang su dung theo nhóm quyền, tuy nhiên thắc mắc:
    khi type: Application.CommandBars("mcr_MainMenu").Controls(stt menu chính) gõ tiếp : .Controls(stt submenu).Controls(stt submenu).visible=false/true Thì: các thuộc tính .Controls tiếp theo Controls(stt menu chính) ta dùng gọi ý code bằng phím Ctl + Back Space không sổ ra gọi ý mà phải gõ bằng tay ===> vậy các Controls thừ 2 trở đi khi sử dụng dòng lệnh này không đúng? (trong thư viện code sử dụng gọi nhớ : chấm sổ xòe)

    - Trong ASP.Net thì quản lý user đăng nhập có tồn tại không thì dùng biến session global, khi user1 đăng nhập sẽ cất vào biến session global ==> như vậy nếu 1 người khác cũng dùng user1 để đăng nhập sẽ bị hắt ra vì session đang = 1 (chiếm giư username user1 đang logon). xin hỏi trong access VBA có thực hiện đc ko? ntn?

    * mời bạn haquocquan vào Y!M thảo luận đc ko?

    Chào ACE.
    ---------------
  • RE: Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu

    Noname > 23-10-10, 01:08 PM

    (23-10-10, 11:16 AM)bienxanhlunglinh Đã viết: k/g: - haquocquan & ACE:
    - Tui da lam duoc phan quyen gioi han chuc nang su dung theo nhóm quyền, tuy nhiên thắc mắc:
    khi type: Application.CommandBars("mcr_MainMenu").Controls(stt menu chính) gõ tiếp : .Controls(stt submenu).Controls(stt submenu).visible=false/true Thì: các thuộc tính .Controls tiếp theo Controls(stt menu chính) ta dùng gọi ý code bằng phím Ctl + Back Space không sổ ra gọi ý mà phải gõ bằng tay ===> vậy các Controls thừ 2 trở đi khi sử dụng dòng lệnh này không đúng? (trong thư viện code sử dụng gọi nhớ : chấm sổ xòe)

    - Trong ASP.Net thì quản lý user đăng nhập có tồn tại không thì dùng biến session global, khi user1 đăng nhập sẽ cất vào biến session global ==> như vậy nếu 1 người khác cũng dùng user1 để đăng nhập sẽ bị hắt ra vì session đang = 1 (chiếm giư username user1 đang logon). xin hỏi trong access VBA có thực hiện đc ko? ntn?

    * mời bạn haquocquan vào Y!M thảo luận đc ko?

    Chào ACE.
    ---------------
    Bản thân Access thì không phân biệt việc đó nhưng bạn hoàn toàn có thể làm được bằng cách trong table user, bạn cho ghi lại trạng thái đăng nhập của người dùng. Khi user đăng nhập thì bạn kiểm tra giá trị này để biết có ai đăng nhập hay chưa, khi out ra thì cho giá trị này là false. Khuyết điểm của nó là khi user thoát đột ngột hay cúpđiện thì user bị kẹt account trong table (vì không run được query update giá trị). Khi đó phải thiết kế cho người dùng 1 module có thể "đá" người đang vào ra khỏi hệ thống!
    ý tưởng này mình thấy trong chương trình Scala Solution. Họ cũng làm vậy!
  • RE: Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu

    haquocquan > 16-12-10, 07:36 PM

    Với cách ẩn menu trên, sẽ giấu hẳn menu con.
    Còn nếu làm mờ Menu con, thì sử dụng lệnh sau:

    Mã:
    application.commandbars("mcr_MAIN").controls(2).controls(3).Enabled = false
  • RE: Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu

    ductria3 > 27-02-14, 08:48 PM

    khi t dang mở form dang nhap, làm sao có thể làm mờ phần menu con dang nhap tren thanh menu, giúp t với
  • RE: Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu

    connguoi123 > 03-03-14, 10:29 PM

    (20-10-10, 06:54 PM)haquocquan Đã viết: Mình đã xem bài của bạn. Có mấy ý kiến thế này để bạn tham khảo và đưa vào bài của mình nhé:
    - Bạn phân quyền theo USERID hay theo NHOMQUYEN. Để phân quyền được theo nhóm quyền, thì nên đặt thuộc tính của NHOMQUYEN là số (và đặt giá trị cho các nhóm)
    Tham khảo Thiết kế chương trình phân quyền trong diễn đàn này.
    Khi đó, user có nhóm quyền cao nhất sẽ vào được tất cả. Còn nhóm quyền thấp hơn vào một số, thấp hơn nữa vào một số ít hơn.
    - Mình không tạo Menu bằng macro cho nên không biết cách làm mờ đi của Menu con. Mình thử với file của bạn theo cách mình làm mờ đi trong menu tạo bằng customize thì bị giấu hẳn.

    Khi mình không muốn cho user vào mục nào, thì mình làm như sau:

    Mã:
    if UserLevel <=4 then
    application.commandbars("mcr_MAIN").controls(2).controls(3).visible = false
    endif

    Với câu lệnh trên, Menu con Ô tô trong "Báo cáo nhập" của bạn sẽ bị giấu đi.
    Bạn vận dụng vào bài của mình cho phù hợp nhé.

    Bác Haquocquan ơi cho em hỏi, trong lệnh làm mờ menu như bác nói thì "mcr_MAIN" là tên Macro hay tên menu bar .Vì em thấy bác nói làm menu bằng customize nên em hỏi để ứng dụng vào bài của em.
  • RE: Access: Help Phân quyền người dùng sử dụng các tính năng trên Menu

    MTNQ > 04-03-14, 10:39 PM

    (03-03-14, 10:29 PM)connguoi123 Đã viết:
    (20-10-10, 06:54 PM)haquocquan Đã viết:
    Mã:
    if UserLevel <=4 then
    application.commandbars("mcr_MAIN").controls(2).controls(3).visible = false
    endif

    Bác Haquocquan ơi cho em hỏi, trong lệnh làm mờ menu như bác nói thì "mcr_MAIN" là tên Macro hay tên menu bar .Vì em thấy bác nói làm menu bằng customize nên em hỏi để ứng dụng vào bài của em.

    Trong ví dụ trên thì "mcr_MAIN" là tên của commandbar (Có thể là menu bar, toolbar, hoặc pop-up menu)

    Do khi lấy macro "mcr_MAIN" để tạo Menu, Access tự động lấy tên của macro để đặt tên cho menu bar
    Bạn có thể sửa tên bằng cách bấm phải chuột vào thanh menu > chọn customize > chọn thẻ Toolbars > kéo thanh trượt xuống tìm và chọn dòng có tên "mcr_MAIN " > bấm nút Properties > tại hộp Tollbar name bạn sửa mcr_MAIN thành tên mà bạn muốn