Excel VBA编程 用户身份认证

阅读: 评论:0

Excel VBA编程  用户身份认证
Excel VBA开发的应用程序是基于Excel平台的应用程序,一般保存为启用宏Excel工作簿,在Excel环境中打开工作簿即可查看或修改其中的数据。一般情况下,可以通过限制使用的用户,以及对敏感工作表设置密码,使非授权用户对保护的工作簿无法进行操作
用户身份认证也是程序安全设置中的一种形式,它通过对用户的账号和密码进行确认是否具有操作权限。通过VBA代码将用户的权限进行设置,可使用户具有不同的操作权限。如管理员具有全部的操作权限,只读用户拥有的权限只能对工作簿中的信息进行浏览操作等(这种设置在网站系统和数据库系统中经常用到)。
在VBA中设计一个登录窗口,当用户成功登录后,才将相应的工作表设置为可见的,如果是非授权用户,则不能进入系统(或进入后看到不相关的工作表)。
例如,在管理系统中,工作表Sheet1为该系统的系统界面,工作表Sheet2和Sheet3则为系统的数据处理表。在Excel环境中打开该工作簿时,数据处理表隐藏将自动隐藏,且运行【登录】窗口,如图20-1所示。
图20-1  用户登录发票导出
打开VBE窗口,在ThisWorkbook对象的【代码】编辑窗口中,为Workbook_Open过程输入代码,这个过程在打开工作簿时自动运行并隐藏工作表Sheet2、Sheet3,再显示【登录】窗口。
Private Sub Workbook_Open()avalon总线
利路防水接头
'运行后隐藏
Sheet1.Visible = xlSheetVisible    '显示
Sheet2.Visible = xlSheetHidden      '隐藏
Sheet3.Visible = xlSheetHidden      '隐藏
'显示用户登录
UserForm1.Show 1
End Sub
在上述代码中,显示【登录】窗口时使用了模式显示状态。使用户不能在未登录状态下操作工作表。
在【登录】窗口的事件中,需要为【确定】和【取消】按钮的事件和窗体的关闭事件现实其代码。代码如下
'确定按钮
Private Sub CommandButton1_Click()
'验证输入的密码
If TextBox1.Value = "admin" And TextBox2.Value = "123456" Then
    Sheet2.Visible = xlSheetVisible
    Sheet3.Visible = xlSheetVisible
    End
挤爆胶囊End If
End Sub
'取消按钮
Private Sub CommandButton2_Click()
ThisWorkbook.Close  '关闭工作簿
End
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'关闭工作簿
ThisWorkbook.Close
End Sub
当用户输入正确的用户名和密码后,单击【确定】按钮将显示工作表Sheet2和Sheet3,并关闭【登录】窗口。在单击【取消】按钮时,应先关闭工作簿再关闭窗口。如果不关闭工作簿,则非认证用户就可以使用宏将隐藏的工作表显示出来,数据将处于不安全状态。同样在窗体的闭关事件中也具有这样的漏洞。

本文发布于:2023-06-05 19:40:29,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/127201.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:工作   用户   操作   权限
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图