打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用户登录权限管理,设计方法与使用功能介绍,VBA编程技术

No.1

用户登录权限在编程设计中是一个很重要的项目,实际意义在于实现分级管理。

也就是区分不同用户可以执行的某些操作。

根本上就是一个阶级的建立过程。

虽然,任何事任何时候都要讲究平等,但实际上,有些平等只是一个相对概念,并不能完全实现。

如果一律平等,将会造成混乱,没有规则,就失去了管理的能力。

No.2

用一个表格来保存用户名,以及其对表的操作权限记录。

具体效果可看下图:

以上图为初始化之后的表格记录,'√'表示可以操作,'×'表示不允许操作。

下面我们可以进行用户权限操作,单击设置用户权限按钮,弹出下图对话框。

工作表名称自动筛选出来,选择下拉框内用户名,设置多先按钮,单击修改权限确认。

设置权限后效果如下图:

No.3

当然,设置这个表,并不是我们想要达到的目的。

我们的目的是以此表为依据,对登录后的用户进行一个判断,然后确认是否可以进行下一步表格操作。

为了实现这个目的,我们做了一些代码来进行处理。

如下图所示:

当选择某一个工作表的时候,会自动弹出一个对话框,这里只做了用户名判断,也就是说,输入一个用户名,程序会自动判断此用户名是否可以对此表进行操作功能。

如果没有自动退出,如果有便打开表,进入操作。

在这个阶段,有很多处理表的方法,如对表进行隐藏,对表进行表保护,等等。

本例,只做了限制显示的功能。

下面看一些代码:

No.4

检测用户的合法性函数:

Function CheckAdmin() As Boolean '检测是否合法用户 Dim S As Worksheet, cell As Range, Xcell As Range, ir As Integer Set S = ThisWorkbook.Worksheets('set') ir = S.UsedRange.Rows.Count Set cell = S.Range('A2:A' & ir) Dim adminName As String adminName = VBA.InputBox('输入管理用户名:', '用户合法性检测', 'admin') If VBA.Len(adminName) = 0 Then S.Activate: Exit Function '查找是否是合法用户 Set Xcell = cell.Find(what:=adminName, LookIn:=xlValues, lookat:=xlWhole) If Not Xcell Is Nothing Then MsgBox Xcell.Value & vbCr & ' 是合法用户,可以使用!', vbInformation, '提示' CheckAdmin = True Else MsgBox adminName & vbCr & ' 不是合法用户,不能使用!', vbInformation, '提示' S.Activate CheckAdmin = False End IfEnd Function

CheckAdmin()函数返回一个布尔值,True为合法用户,False为非法用户。

所谓合法用户就是指已经注册的用户,非法就是没有进行注册登记的用户。

上面代码检测了用户是否存在,下面代码检测用户是否具有对表操作的权限,这个是整个权限管理的核心,仔细看下其判断逻辑。

检测表是否可以操作函数:

Function CheckAdminSheets(ActiveSheetName As String, S As Worksheet, xcell As Range) As Boolean '检测表是否可以操作    Dim Ccell As Range, Cr As Range, Ci As Integer    Ci = S.Cells(1, S.Cells.Columns.Count).End(xlToLeft).Column    Set Ccell = S.Range(S.Cells(1, 2), S.Cells(1, Ci))    Set Cr = Ccell.Find(what:=ActiveSheetName, LookIn:=xlValues, lookat:=xlWhole)    If Cr Is Nothing Then        CheckAdminSheets = False    ElseIf Not Cr Is Nothing Then        If S.Cells(xcell.Row, Cr.Column).Value = 0 Then            CheckAdminSheets = True        ElseIf S.Cells(xcell.Row, Cr.Column).Value = -1 Then            CheckAdminSheets = False        End If    End IfEnd Function

用户权限管理,基本思路就是这样,希望这样的功能对有需求的朋友,有所借鉴。

严格来说,这样的用户登录管理方式,并不严谨。

只作为一种实现思路来进行说明,实际应用中,可能会遇到更加复杂的问题。

不做深入研究了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
oracle的体系结构之权限管理和用户schema(二)
SQL对象名无效的问题
企业Web应用生成器活字格企业管理系统设置行权限
[CentOS 0010] CentOS 配置mysql允许远程登录
第09章
Excel VBA【案例】实现用户权限控制
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服