第2章 学生基本信息管理系统的开发_第1页
第2章 学生基本信息管理系统的开发_第2页
第2章 学生基本信息管理系统的开发_第3页
第2章 学生基本信息管理系统的开发_第4页
第2章 学生基本信息管理系统的开发_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 学生基本信息管理系统的开发(C级)2.1项目概述2.1.1项目主要功能登陆是否合法不合法权限判断相应功能操作次数限制 项目主要功能包含:(1)学生信息管理模块:该模块具体功能是学生基本基本信息的添加、信息修改、删除和查询,排序统计;(2)权限管理模块:该模块主要负责管理用户的信息,区分不同级别的用户,可提高系统安全性;(3)统计及报表;(4)数据管理四个部分。其操作流程如下所示:2.1.2程序文件结构图2-1程序文件结构2.2全局变量和数据库设计2.2.1定义全局变量全局变量的定义:Public Flag As IntegerPublic username As String这两个变量

2、用来存放登陆用户名和相应等级,定义在标准模块Module1.BAS中。公有函数(可执行SQL语句,返回记录集)的定义:Public Function exesql(ByVal sql As String) As ADODB.Recordsetsql = Trim$(sql)Set conn = New ADODB.ConnectionSet rst = New ADODB.Recordsetconn.ConnectionString = "dsn=student"ODBC数据源名conn.OpenSet rst.ActiveConnection = connrst.Lock

3、Type = adLockOptimisticrst.CursorType = adOpenKeysetrst.Open sqlSet exesql = rstSet rst = NothingSet conn = NothingEnd Function公有函数亦定义在标准模块Module1.BAS中。2.2.2数据库的设计物理数据库名:studentODBC数据源名:student字段名主键数据类型长度必填默认值CHECK约束说明Snochar8学号Snamechar5姓名Ssexchar2性别Sbirthdaydatetime81/1/1949,1/1/2010出生日期Sdeptchar2

4、0信科系系科Sgradeint41,4年级2.2.1S表(学生基本信息表)字段名主键数据类型长度必填默认值CHECK约束说明usernamechar8用户名passwordchar5密码jibieint21等级2.2.2yonghu表(学生基本信息表)2.3效果和关键实现2.3.1登陆模块 (窗体名:login)图2-2登陆界面(窗体名:login)关键技术:1、操作数据库的专用函数exesql也应添加到标准模块Module1.BAS中并在VB在VB工程-引用中添加Microsoft   ActiveX   Data   Objects   2.5 &#

5、160; Library。2、登陆错误次数限制3次不允许用户无止尽尝试密码,一旦错误超过三次程序自动结束,在窗体通用部分首先定义窗体级变量TIM,,核心程序如下:'验证操作员及密码 Dim sql As Stringsql = "select * from yonghu where username='" + Combo1.Text + "' and password='" + Text2.Text + "'"Set rs = exesql(sql) If rs.RecordCount >

6、 0 Then Load main main.Show username = Combo1 Unload Me ElseIf TIM = 3 Then '密码输错3次,退出系统 myval = MsgBox("密码输入错误,请向系统管理员查询!", 0, "") If myval = vbOK Then End Else MsgBox "输入错误,你还有" & 3 - TIM & "次机会" TIM = TIM + 1 End If3、支持键盘操作,例TEXT2文本框中支持方向键代码如下:P

7、rivate Sub text2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then CmdOk.SetFocus '按回车键CmdOk获得焦点 If KeyCode = vbKeyUp Then Combo1.SetFocus If KeyCode = vbKeyDown Then CmdOk.SetFocus End Sub4、密码框中输入任何字符以制定字符显示(例“*”),应设置其passwordchar属性的值即可。2.3.2学生信息管理模块(窗体名:main)图2-3学生信息管

8、理界面(窗体名:main)关键技术:1、采用adodc和datagrid显示数据。操作步骤:(1)选中工程-部件(2)Adodc控件完成与各类数据库的连接(连接ODBC数据源student),可执行sql命令(select * from s)。(3)datagrid控件完成数据的显示(指定其DataSource为Adodc控件)。2、记录移动技术首条:Adodc1.Recordset.MoveFirst未条:Adodc1.Recordset.MoveLast上一条(注意应判断是否已移到最前,如果不判断移到第1条记录后再往前移动,程序就出错),关键代码如下:If Not Adodc1.Recor

9、dset.BOF ThenAdodc1.Recordset.MovePreviousEnd If下一条(注意应判断是否已移到最后,如果不判断移到第后条记录后再往后移动,程序就出错),关键代码如下:If Not Adodc1.Recordset.EOF ThenAdodc1.Recordset.MoveNextEnd If3、数据删除技术(应判断是否存在记录,否则不存在记录作删除操作程序报错)关键代码如下:If Adodc1.Recordset.RecordCount <> 0 Then Dim sss sss = Trim(Adodc1.Recordset.Fields("

10、;sno") If MsgBox("真的要删除" + sss + "吗?", vbYesNo, "系统友情提示") = vbYes Then Adodc1.Recordset.Delete End IfEnd If4、查询技术:在这里强调标准SQL语句的语法问题,对于字符数据匹配,要加单引号,而对于数值型字段不需要加,例如SNO(char)与text1是否匹配的sql语句为:”select * from s where sno=” &text1&”,例如Sgrade(int)与text1是否匹配的sql语句为

11、”select * from s where Sgrade=” &text15、聚集函数的使用(可以给聚集函数起别名),使用方法如下:Dim t sqlt As Stringsqlt = "select count(*) as 总人数 from s where " & Combo1.Text & Combo2.Text & "'" & Text1 & "'"Set rs = exesql(sqlt) '调用执行SQL函数,已经在模块中添加Text2.Text =

12、rs("总人数")5、增加修改技术(共用界面update)增加全局变量Public Flag As Integer,Flag = 0 '增加记录,Flag = 1 '修改记录If Flag = 1 ThenCall edit调用编辑过程ElseCall add调用增加过程End If增加记录时,程序中应考虑主键,空值,check等约束,因此程序中必须增加容错判断,代码如下:Sub add() '注意也可以直接使用insert语句Dim sql As Stringsql = "select * from s where sno='&q

13、uot; & Text1.Text & "'"Set rs = exesql(sql)If Text1.Text = "" Or Text2.Text = "" ThenMsgBox "学号姓名不能空"Exit SubEnd IfIf DTPicker1.Value > #1/1/2010# Or DTPicker1.Value < #1/1/1949# ThenMsgBox "出生日期不合法(1949-1-12010-1-1)!"Exit SubEnd If

14、If rs.RecordCount = 0 Then rs.AddNew rs("sno") = Text1 rs("Sname") = Text2 If Option1.Value = True Then rs("Ssex") = "男" Else rs("Ssex") = "女" End If rs("Sbirthday") = DTPicker1.Value rs("Sdept") = Text3 rs("Sgrade&

15、quot;) = CInt(Combo1.Text) rs.UPDATE MsgBox "增加记录成功" Else MsgBox "学号重复无法添加!"End IfEnd Sub2、编辑记录时,首先加载被编辑的数据到各控件,因此在窗体的相应事件中添加:Private Sub Form_Load()Combo1.AddItem "1"Combo1.AddItem "2"Combo1.AddItem "3"Combo1.AddItem "4"If Flag = 1 Then &#

16、39;修改数据,首先加载该条数据FLAG全局变量。Text1 = main.Adodc1.Recordset.Fields("sno")Text1.Enabled = False '学号无法更改Text2 = main.Adodc1.Recordset.Fields("sname")If main.Adodc1.Recordset.Fields("ssex") = "男" Then Option1.Value = TrueElse Option2.Value = TrueEnd If DTPicker1.V

17、alue = main.Adodc1.Recordset.Fields("sbirthday") Text3 = main.Adodc1.Recordset.Fields("sdept") Combo1.Text = main.Adodc1.Recordset.Fields("sgrade")End IfEnd Sub具体编辑过程如下:Sub edit() '注意也可以直接使用update语句Dim sql As Stringsql = "select * from s where sno='" &

18、amp; Text1.Text & "'"Set rs = exesql(sql)If Text1.Text = "" Or Text2.Text = "" ThenMsgBox "学号姓名不能空"Exit SubEnd IfIf DTPicker1.Value > #1/1/2010# Or DTPicker1.Value < #1/1/1949# ThenMsgBox "出生日期不合法(1949-1-12010-1-1)!"Exit SubEnd If rs(&q

19、uot;Sname") = Text2 If Option1.Value = True Then rs("Ssex") = "男" Else rs("Ssex") = "女" End If rs("Sbirthday") = DTPicker1.Value rs("Sdept") = Text3 rs("Sgrade") = CInt(Combo1.Text) rs.UPDATE MsgBox "增加更新成功"End Sub6

20、,权限限制技术:Private Sub Form_Activate()'权限判断'1级权限所有权限'等级2:拥有数据查询,增加权限'等级3:拥有数据查询Dim sql As Stringsql = "select * from yonghu where username='" & username & "'"Set rs = exesql(sql)If rs("jibie") = 2 ThenCommand3.Enabled = FalseCommand4.Enabled

21、 = FalseElseIf rs("jibie") = 3 ThenCommand3.Enabled = FalseCommand4.Enabled = FalseCommand5.Enabled = FalseEnd IfEnd Sub7,报表打印技术(在报表中添加相应控件):Private Sub DataReport_Initialize()Set rs1 = exesql(sqltext)Set DataReport1.DataSource = rs1 '设置 DataReport 的数据源DataReport1.Sections("Section1").Controls("text1").DataField = "sno"字段名DataReport1.Sections("Section1"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论