基于VB程序数据库登录权限问题研究.docx
- 文档编号:27407635
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:13
- 大小:19.73KB
基于VB程序数据库登录权限问题研究.docx
《基于VB程序数据库登录权限问题研究.docx》由会员分享,可在线阅读,更多相关《基于VB程序数据库登录权限问题研究.docx(13页珍藏版)》请在冰豆网上搜索。
基于VB程序数据库登录权限问题研究
基于VB程序数据库登录权限问题的研究
摘要:
程序中的权限设置问题,是程序的关键所在,在程序设计中有着至关重要的作用,在此就程序设计中的权限设置进行讨论。
程序采用模块进行权限设置,在模块中,使用程序级公用过程,设置不同权限管理员或用户的登录方法和不同的运行界面,程序使用8个运行界面,设置三级不同权限管理员的运行界面,通过数据库中对管理员或用户权限的设置,使不同的管理员或用户可以获得完全不同的运行方式,在同样界面,由于管理员权限不同,运行方式同样不同。
通过这种方法,其目的是对各级别的登录者运行不同的程序界面。
其结果是减少了程序的运行界面,使程序量大为减少。
在此的设计思路,在其他程序设计中可以借鉴。
关键词:
登录权限;权限级别;vb程序;数据库
用户、管理员登录权限问题的实例,是针对高等院校的学生管理而模拟的一个系统程序,这个程序使用access数据库,数据库名称是“学生管理”,系统包含学校级别的管理员和学校级别的用户、学院级别的管理员和学院级别的用户以及系级别的管理员和系级别的用户,因此程序实际是多级权限的管理问题。
1程序的结构
程序由2部分组成:
第一部分是用户界面,主要功能是各级别的用户查询系统中的内容;第二部分是管理员界面,程序中管理员分为3个层面,分别是学校级、学院级和系级的管理员权限层面,如图1所示。
学校级的管理员的权限是本程序中的最高权限,可以查询本校、各院、系的资料;设置本校院、各学院、各系的设置,包括新增、修改、删除院的操作;设置本校辅导员的资料,同样包括新增辅导员资料、修改辅导员资料、删除辅导员资料的操作;设置院、系级别的管理员和用户,同样包括新增、修改和删除管理员和用户。
图1程序结构图学院级管理员的权限是管理本学院的权限,可以查询本学院各系的资料,对本学院各系进行设置,包括新增资料、修改资料、删除资料。
系级管理员的权限是管理本系资料的权限,分别为学生资料管理、辅导员管理,包含查询、新增、修改、删除的操作。
虽然各管理员的管理权限不同,但是为了使程序简单明了,所有管理员均使用同一个界面在模块中设置各管理员登录后的权限分配过程。
2程序中模块的使用方法和模块的功能
vb中的模块是一个程序共享的代码块,主要作用是设置程序共享的变量<全局变量)、共享的函数<全局函数)、共享的过程<全局过程)等。
vb中的模块可以在菜单的\[工程\]\[添加模块\]中添加,也可以在右上角的工程窗口右击工程名,在弹出的菜单中点击\[添加\]\[添加模块\]中添加。
在模块中设置程序级的变量<全局变量),在模块中声明的变量是程序中各个界面容许调用的,这些变量是程序共享的;在模块中声明api函数,声明的api函数同样在各个界面进行调用;在模块中设置一个自定义函数,这个自定义函数同样在程序的各个界面进行调用;在模块中设置一个过程,这个过程同样在程序的各个界面进行调用。
在模块中声明变量必须用变量声明关键字“public”,它的意义是声明一个全局变量,“public”不仅用在声明全局变量,在声明api函数、设置全局的自定义函数、设置全局的过程中同样是不可缺少的关键字。
3数据库“学生管理.mdb”的设计
数据库“学生管理.mdb”需要添加数据表,分别是:
用户资料、学生档案、院系表、辅导员资料等,本文主要讨论用户权限,因此仅给出数据表\[用户资料\]的表结构和数据,如表1,表2所示。
表1用户资料数据表结构
序号字段名称数据类型字段大小1id自动编号int2用户名文本303用户密码文本304用户身份文本305用户部门文本306用户级别整型数据int7说明文本50
表2用户资料数据表数据<部分示例数据)
id用户名用户密码用户身份用户部门用户级别说明1xtgl123管理员学校1学校级管理员2gly1123管理员学院12学院级管理员3gly2123管理员系13系级管理员4gly3123管理员学院22学院级管理员5gly4123管理员系23系级管理员6gly5123管理员学院32学院级管理员7xxyh123用户学校4学校级用户8dxyh123用户学院15学院级用户9dxyh1123用户系16系级用户10sxyh123用户学院25学院级用户11sxyh1123用户系26系级用户12zzyh123用户学院35学院级用户
程序中需要链接数据库,在模块中设置一个数据库链接过程,在任何界面均可以调用这个过程来链接数据库:
publicsubsjk(db>
db.connectionstring=“driver=microsoftaccessdriver(*.mdb>。
dbq=“&app.path&“\学生管理.mdb”
db.open
endsub
在程序的任何地方输入代码:
callsjk(db>就可以链接到“学生管理.mdb”数据库。
4用户登录界面
用户资料数据表是用户登录权限表,从表数据中可以看出,用户名在表中是惟一的,此表在设计程序的同时已经进行了设计和部分数据的录入。
用户在登录时程序首先检查用户名是否存在,再检查用户密码是否正确,如果用户名和用户密码全部正确说明登录成功,否则登录不成功,如图2所示。
图2用户登录界面由于用户登录的资料贯穿整个程序中的,因此在模块中首先声明几个全局变量:
yhsf<用户身份)、yhbm<用户部门)、yhjb<用户级别),用户在成功登录后,将数据表中该用户的身份、部门、级别的数据赋值到相应的变量中。
下面是相应代码:
yhsf=rs(“用户身份”>
yhbm=rs(“用户部门”>
yhjb=rs(“用户级别”>
…
ifyhsf=“管理员”then
unloadme
管理员窗口.show
elseifyhsf=“用户”then
unloadme
用户窗口.show
endif
在用户登录成功后,根据用户的身份可以登录到不同的用户界面。
5管理员登录后的权限管理
从用户资料数据表可以看出,用户级别是1是学校级管理员,2是学院级管理员,3是系级管理员,4是学校级用户,5是学院级用户,6是系级用户。
实际上用户级别就是程序中用户的权限所在,级别越高,权限越大。
图3是学校级管理员登录后的界面,界面中的菜单是:
成绩管理、课程管理、学生管理、班级管理、费用管理、辅导员管理、系管理、用户管理、退出系统,其中辅导员管理、系管理、用户管理包括子菜单查询、添加、修改、删除,而其菜它单不包括子菜单。
如果是学院级管理员,登录后界面中的菜单是:
成绩管理、课程管理、学生管理、班级管理、费用管理、辅导员管理、用户管理、退出系统,其中课程管理、班级管理、用户管理包括子菜单查询、添加、修改、删除,而其他菜单不包括子菜单。
与学校级管理员菜单的不同是缺少系管理菜单,并且辅导员管理不包含子菜单,而课程管理和班级管理增加了子菜单。
如果是系级管理员登录后界面中的菜单是:
成绩管理、课程管理、学生管理、费用管理、辅导员管理、退出系统,其中成绩管理、学生管理、费用管理包括子菜单查询、添加、修改、删除,而其他菜单不包括子菜单。
与系级管理员菜单的不同是缺少用户管理、班级管理菜单,同样辅导员管理不包含子菜单。
同一个界面,不同的管理员登录后菜单功能不同,那么,它们是如何实现的呢?
这就是本文讨论的重点:
图3管理员主页面菜单5.1程序菜单的设计
在设计管理员界面时,添加一个菜单控件,在菜单控件中添加成绩管理、课程管理、学生管理、班级管理、费用管理、辅导员管理、系管理、用户管理、退出系统主菜单工程,在成绩管理、课程管理、学生管理、班级管理、费用管理、辅导员管理、系管理、用户管理工程中同时添加子菜单查询、添加、修改、删除,给每个菜单<包括主菜单和子菜单)设置标题、名称、索引。
例如:
成绩管理的标题是“成绩管理”,名称是“cjgl”,索引是1;成绩管理下的子菜单查询的标题是“查询”,名称是“cjcx”,索引是11;成绩管理下的子菜单添加的标题是“添加”,名称是“cjtj”,索引是12;成绩管理下的子菜单修改的标题是“修改”,名称是“cjxg”,索引是13;成绩管理下的子菜单删除的标题是“删除”,名称是“cjsc”,索引是14;
课程管理的标题是“课程管理”,名称是“kcgl”,索引是2;课程管理下的子菜单查询的标题是“查询”,名称是“kccx”,索引是21;课程管理下的子菜单添加的标题是“添加”,名称是“kctj”,索引是22;课程管理下的子菜单修改的标题是“修改”,名称是“kcxg”,索引是23;课程管理下的子菜单删除的标题是“删除”,名称是“kcsc”,索引是24;
按照上面的方法,将学生管理、班级管理、费用管理、辅导员管理、系管理、用户管理主菜单和子菜单全部设置好,最后添加退出系统菜单,标题是“退出系统”,名称是“tcxt”,索引是9,到此菜单设计完成。
注意:
各菜单均是有效的,是可见的。
5.2程序公用过程
为了在登录的管理员权限不同,而显示的菜单也不同,必须在程序的代码中予以控制,由于这个菜单不仅仅在管理员界面中应用,而且在管理员使用的所有界面中均使用,因此在模块中设置一个过程,对于不同的管理员显示不同的菜单,其代码如下:
publicsubgycdxs(>′菜单显示共用过程
ifyhjb=1then′权限是1,表示是学校级管理员
cjcx(11>.visible=false′使成绩管理子菜单不显示,仅仅显示主菜单可用
cjtj(12>.visible=false
cjxg(13>.visible=false
cjsc(14>.visible=false
kccx(21>.visible=false′使课程管理子菜单不显示,仅仅显示主菜单可用
kctj(22>.visible=false
kcxg(23>.visible=false
kcsc(24>.visible=false
xscx(31>.visible=false′使学生管理子菜单不显示,仅仅显示主菜单可用
xstj(32>.visible=false
xsxg(33>.visible=false
xssc(34>.visible=false
bjcx(41>.visible=false′使班级管理子菜单不显示,仅仅显示主菜单可用
bjtj(42>.visible=false
bjxg(43>.visible=false
bjsc(44>.visible=false
fycx(51>.visible=false′使费用管理子菜单不显示,仅仅显示主菜单可用
fytj(52>.visible=false
fyxg(53>.visible=false
fysc(54>.visible=false
′其他辅导员管理、系管理、用户管理、
退出系统主菜单和子菜单显示可用
elseifyhjb=2then′权限是2,表示是学院级管理员
cjcx(11>.visible=false′使成绩管理子菜单不显示,仅仅显示主菜单可用
cjtj(12>.visible=false
cjxg(13>.visible=false
cjsc(14>.visible=false
xscx(31>.visible=false′使学生管理子菜单不显示,仅仅显示主菜单可用
xstj(32>.visible=false
xsxg(33>.visible=false
xssc(34>.visible=false
jscx(61>.visible=false′使辅导员管理子菜单不显示,仅仅显示主菜单可用
jstj(62>.visible=false
jsxg(63>.visible=false
jssc(64>.visible=false
fycx(51>.visible=false
′使费用管理子菜单不显示,仅仅显示主菜单可用
fytj(52>.visible=false
fyxg(53>.visible=false
fysc(54>.visible=false
′使系管理主菜单不显示不可用,那么子菜单同样不可用了
xgl(7>.visible=false
′其他课程管理、班级管理、用户管理、退出系统主菜单
和子菜单显示可用
elseifyhjb=3then′权限是3,表示是系级管理员
kccx(21>.visible=false′使课程管理子菜单不显示,仅仅显示主菜单可用
kctj(22>.visible=false
kcxg(23>.visible=false
kcsc(24>.visible=false
jscx(61>.visible=false′使辅导员管理子菜单不显示,仅仅显示主菜单可用
jstj(62>.visible=false
jsxg(63>.visible=false
jssc(64>.visible=false
′使班级管理主菜单不显示不可用,
那么子菜单同样不可用了
bjgl(4>.visible=false
′使系管理主菜单不显示不可用,
那么子菜单同样不可用了
xgl(7>.visible=false
′使用户管理主菜单不显示不可用,
那么子菜单同样不可用了
yhgl(8>.visible=false
′其他学生管理、成绩管理、费用管理、
退出系统主菜单和子菜单显示可用
endif
endsub
5.3程序菜单管理员调用主菜单的公用过程
仅有不同管理员菜单显示不同是不够的,因为管理员不同菜单显示不同,那么点击菜单后的动作同样是不同的,因此还必须编辑在不同管理员下不同的菜单动作,也就是不同的单击菜单的过程,由于这些过程在程序中使用的界面比较多,因此同样在模块中编辑它的代码:
publicsubgycddj(>′菜单单击共用过程
ifyhjb=1then′权限是1,表示是学校级管理员
callcjgl(1>′调用成绩管理主过程
callkcgl(2>′调用课程管理主过程
callxsgl(3>′调用学生管理主过程
…
elseifyhjb=2then′权限是2,表示是学院级管理员
callcjgl(1>′调用成绩管理主过程
callxsgl(3>′调用学生管理主过程
callfygl(5>′调用费用管理主过程
…
elseifyhjb=3then′权限是3,表示是系级管理员
callcjgl(2>′调用课程管理主过程
callxsgl(6>′调用辅导员管理主过程
callcjcx(11>′调用成绩查询过程
′…
endif
为了节约篇幅菜单单击过程中仅仅列举了部分调用过程,其他根据需要调用,这里就不一一列举了。
endsub
5.4管理员调用界面的过程
上面仅仅是程序要调用的单击过程,但是这些单击过程同样也必须在模块中进行编辑,大概一共有41个单击过程,包括各主菜单的单击过程、各子菜单的单击过程。
在此仅列出成绩管理的5个过程:
publicsubcjgl(1>_click(>′成绩管理主过程
unloadme
成绩管理.show
frame1.visible=true′显示成绩查询界面
frame2.visible=false
frame3.visible=false
frame4.visible=false
endsub
publicsubcjcx(11>_click(>′成绩查询过程
unloadme
成绩管理.show
frame1.visible=true′显示成绩查询界面
frame2.visible=false
frame3.visible=false
frame4.visible=false
endsub
各界面均添加frame1、frame2、frame3、frame4四个框架,它们分别是查询功能框架、添加功能框架、修改功能框架、删除功能框架,这些框架控件的名称必须是统一的,各界面均使用frame1、frame2、frame3、frame4名称。
publicsubcjtj(12>_click(>′成绩添加过程
unloadme
成绩管理.show
frame1.visible=false
frame2.visible=true′显示成绩添加界面
frame3.visible=false
frame4.visible=false
endsub
publicsubcjxg(13>_click(>′成绩修改过程
unloadme
成绩管理.show
frame1.visible=false
frame2.visible=false
frame3.visible=true′显示成绩修改界面
frame4.visible=false
endsub
publicsubcjsc(14>_click(>′成绩删除过程
unloadme
成绩管理.show
frame1.visible=false
frame2.visible=false
frame3.visible=false
frame4.visible=true′显示成绩删除界面
endsub
privatesubtcxt(9>_click(>′退出系统过程
end′退出系统
endsub
在这样的设置下,程序中仅仅需要8个管理员界面<成绩管理界面、学生管理界面、费用管理界面、课程管理界面、班级管理界面、辅导员管理界面、系管理界面、用户管理界面)就可以完成三级管理员的管理工作了。
6各管理员界面的设置
管理员界面包括:
成绩管理界面(窗口>、学生管理界面(窗口>、费用管理界面(窗口>、课程管理界面(窗口>、班级管理界面(窗口>、辅导员管理界面(窗口>、系管理界面(窗口>、用户管理界面(窗口>,虽然各界面(窗口>所完成的功能是不同的,但是这些界面的基本结构是相同的。
首先界面中的菜单和管理员界面中的菜单是完全相同,包括标题、名称、索引均完全相同,这是为了在各界面中调用gycdxs(>和gycddj(>共用过程,以实现不同级别管理员显示和使用菜单不同。
各界面的查询功能框架(frame1>、添加功能框架(frame2>、修改功能框架(frame3>、删除功能框架(frame4>所需要完成的功能,可根据具体情况进行界面设计和代码编辑。
7结语
权限设置在程序中是经常遇到的问题,本文仅仅说明了权限设置的一些基本设计思路,在其他的应用程序中可以借鉴。
参考文献
[1]谭浩强.qbasic程序设计\[m\].北京:
清华大学出版社,2000.
[2]许尔贵,张志宇,王庆,等.visualbasic6.0教程\[m\].北京:
电子工业出版社,2001.
[3]沈祥玖,郑有增.visualbasic6.0程序设计\[m\].北京:
中国水利水电出版社,2005.
[4]郭琦.visualbasic数据库系统开发技术\[m\].北京:
人民邮电出版社,2003.
[5]刘彬彬,高春艳,王茜.visualbasic程序设计自学手册\[m\].北京:
人民邮电出版社,2008.
[6]李鸿吉.visualbasic6.0编程方法详解\[m\].北京:
科学出版社,2003.
[7]张立科.visualbasic6.0程序设计与开发技术大全\[m\].北京:
人民邮电出版社,2006.
[8]高艳春,李艳,谷伟东.visualbasic数据库开发关键技术与实例应用\[m\].北京:
人民邮电出版社,2004.
[9]廖信彦.access2003入门与提高实用教程\[m\].北京:
中国铁道出版社,2005.
[10]张强.access2003入门与实例教程\[m\].北京:
电子工业出版社,2005.
[11]李聪玲.液氧/煤油发动机实验控制系统软件架构与设计\[j\].火箭推进,2009,35(2>:
4653.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VB 程序 数据库 登录 权限 问题 研究