第一篇:案例三用VB制作一个大学的学生查询系统
案例三:用VB制作一个大学的学生查询系统
3.1 课程设计的目的和意义 3.2 系统功能设计
3.3 数据库与数据表的设计 3.4 创建应用系统主窗体 创建主窗体的方法和步骤:
(1)启动VB程序,出现VB开发平台
(2)创建一个标准的工程,出现一个空白窗体Form1(3)分别命名并保存工程及主窗体
(4)在主窗体Form1中修改它的Caption属性为“大学学生查询系统”(5)在Form1中加载一张图片为背景
(6)设置窗体的启动位置属性,该属性决定窗体在运行时出现的位置
(7)在窗体中放入一个标签控件Label1,设置标签的Caption属性为“欢迎进入学生查询管理”。
(8)在Form1中放入两个命令按钮控件Command1和Command2,分别设置他们的Caption属性为“进入系统”和“退出系统”
(9)编制按钮控件Command1和Command2的代码 3.5 创建一个数据处理子窗体 3.6 用主窗体控件调用数据窗体
为按钮控件Command1和Command2编制代码:
右击命令按钮1,出现过程编辑器窗体,编制代码如下: Private Sub Command1_Click()学生信息查询窗体.Show End Sub 为命令按钮2编制过程代码: Private Sub Command2_Click()Unload.Me End Sub 3.7 重要代码分析
指向第一条记录的按钮的过程代码: Private Sub cmdFirst_Click()
On Error GoTo GoFirstError
PrimaryCLS.MoveFirst
mbDataChanged = False
Exit Sub GoFirstError:
MsgBox Err.Description End Sub 指向前一条记录的过程代码: Private Sub cmdPrevious_Click()
On Error GoTo GoPrevError
PrimaryCLS.MovePrevious
Exit Sub GoPrevError:
MsgBox Err.Description End Sub 指向下一条记录的过程代码: Private Sub cmdNext_Click()
On Error GoTo GoNextError
PrimaryCLS.MoveNext
Exit Sub GoNextError:
MsgBox Err.Description End Sub 指向最后一条记录按钮的过程代码: Private Sub cmdLast_Click()
On Error GoTo GoLastError
PrimaryCLS.MoveLast
mbDataChanged = False
Exit Sub GoLastError:
MsgBox Err.Description End Sub 案例四:用VB控件制作一个大学的学生管理系统
4.1 课程设计的目的和意义 4.2 系统功能设计
4.3 数据库与数据表的设计 4.4 制作应用程序主窗体 应用主窗体与案例三相似 4.5 制作数据处理窗体 增加新的窗体:
(1)单击VB主菜单中的“工程|添加窗体”
(2)在出现的类型窗体选择面板中选择“窗体”
(3)命名并保存窗体(主要要保存在工程中),设置窗体名称为DataForm(4)修改窗体Form2的Caption属性为“学生信息处理窗体”
为新的窗体布局并加入数据控件
往往一个数据处理窗体分为两个部分,一个是数据录入部分,一个是数据处理部分。加入控件的过程
(1)在窗体中放入一个数据控件Data1。
(2)设置数据控件Data1的DataBaseName属性,Connect属性和Recordset属性。(3)添加文本框控件,文本框主要要设置DataSource属性和DataField属性(4)在每一个文本框之前放入一个标签控件,用于对每一个文本框的说明
(5)作为数据查询,往往可以输入条件查询,所以再在窗体中加入一个标签和一个文本框,作为输入条件的表达式。(6)在窗体中添加五个命令控件按钮,分别设置他们的Caption属性为“添加记录”,“删除记录”,“更新记录”,“查询记录”,“结束操作”。(7)分别为每一命令控件编制过程代码 “添加记录”命令按钮的过程代码: Private Sub Command1_Click()Data1.Recordset.AddNew End Sub “删除记录”命令按钮的过程代码: Private Sub Command2_Click()If MsgBox(“真的需要删除当前记录?”, vbYesNo, “信息提示”)= vbYes Then Data1.Recordset.Delete Data1.Recordset.MoveNext If Data1.Recordset.EOF Then Data1.Recordset.MoveFirst End If End If End Sub “更新记录” 命令按钮的过程代码: Private Sub Command3_Click()Data1.UpdateRecord Data1.Recordset.Bookmark = Data1.Recordset.LastModified End Sub “查询记录” 命令按钮的过程代码:
Private Sub Command4_Click(Index As Integer)Dim str As String str = Text2.Text If str = “" Then MsgBox ”请输入查询条件“, , ”信息提示“ Exit Sub End If Data1.Recordset.FindFirst str If Data1.Recordset.NoMatch Then MsgBox ”没有符合条件的记录“, , ”信息提示" End If End Sub 4.6 为主窗体的两个选项按钮编制过程代码
第二篇:用VB编写一个简单的图书管理系统分解
用VB编写一个简单的图书管理系统
Srl2011009(学号)石二辽(姓名)
指导教师 徐哲鑫
【摘 要】笔者采用Visual Basic 6.0 为开发工具,设计一款具备友好的图形用户界面、简便操作的图书管理系统。充分利用计算机功能实现读者管理、书籍管理、借还书籍管理等信息的自动化控制,将使图书管理员从繁杂、重复的劳作中解放出来。
【关键词】图书;面向对象;软件工程
1概述
1.1开发背景
用计算机管理图书馆里一切信息是一种计算机应用技术的创新,在计算机还未普及之前图书管理都是由图书管理人员手工记帐的方式来操作的.现在一般的图书馆都是采用计算机作为工具,使用实用的图书管理程序来帮助图书馆管理员进行更有效的图书管理。
1.2图书管理系统产生的背景
图书管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的库。
[1]而对于前端应用程序则要求应用程序具备功能完备、友好的图形用户界面、便捷使用等特点。
1.3 系统功能要求的分析
开发本系统的总体任务是实现图书管理系统的系统化和自动化,帮助图书管理员更好更高效地完成图书管理工作,本系统要完成的功能主要有: 书籍管理部分:图书类别管理和图书信息管理。其中,书籍类别管理包括添加书籍类别、修改书籍类别、删除书籍类别等;书籍信息管理包括书籍信息的添加、修改、查询、删除等。
读者管理部分:读者类别管理和读者信息管理,读者类别管理包括读者类别添加、修改、删除等;读者信息包括读者添加读者信息、修改读者信息、查询读者信息、删除读者信息等。
借阅管理部分:借书信息管理和还书信息管理,借书信息管理、还书信息管理均包括其信息的添加、修改、查询等。
系统管理部分:添加管理员,修改密码,退出系统。
2开发环境及实现技术介绍
2.1开发软件介绍
由于我的工作单位是一所中心小学,有大量的书籍,读者有学生、老师,于是本人想设计一款实用的图书管理系统,方便学校图书管理员工作,增强图书借阅力度,良好地管理书籍及其借阅信息。
2.2模块设计[2]
书籍管理部分实现对书籍类别、书籍信息的添加、修改、删除等操作。读者管理部分实现对读者类别、读者信息的添加、修改、删除等操作。借阅管理部分实现对借书信息、还书信息的添加、修改、查询等操作。
系统管理部分实现超级用户对普通用户的用户名和密码对注册、修改等操作。
2.3程序预览
运行本系统程序,首先出现登录界面(图2),输入正确用户名及密码后进入主窗体(图3),主窗体上的主菜单栏有:书籍管理、读者管理、借阅管理、系统设置及帮助。
图2
图3
2.3.1书籍管理功能
“书籍管理”菜单下有两个一级菜单:“书籍信息管理”和“书籍类别管理”。具体操作如下: 1.“书籍类别管理”下有三个子菜单:“新增”、“修改”、“删除”。单击“新增”菜单,打开“新增书籍类别”窗体(图4)。单击“修改”或“删除”,都会打开“书籍类别信息管理”窗体(图5)。
图4 图5 2.“书籍信息管理”下有四个子菜单:“新增图书”、“修改书籍信息”、“删除书籍信息”、“查询书籍信息”。单击“新增图书”菜单,打开“新增书籍”窗体(图6)。单击“修改”或“删除”,都会打开“书籍信息管理”窗体(图7)。单击“查询书籍信息”菜单,打开“查询图书”窗体(图8)
图6
图7
图8 2.3.2读者管理功能
“读者管理”菜单下有两个一级菜单:“读者类别管理”和“读者信息管理”。1.“读者类别管理”下有3个子菜单:“添加读者类别”、“修改读者类别”、“删除读者类别”。单击“添加读者类别”菜单,打开“添加读者类别”窗体(图9);单击“修改读者类别”和“删除读者类别”菜单,都会打开“读者类别管理”窗体(图10)。
图9 图10
2.“读者信息管理”菜单下有4个子菜单:“添加读者信息”、“修改读者信息”、“删除读者信息”和“查询读者信息”。单击“添加读者信息”菜单,打开“添加读者信息”窗体(图11),单击“修改读者信息”和“删除读者信息”菜单,都会打开“读者信息管理”窗体(图12),单击“查询读者信息”菜单,打开“查询读者信息”窗体(图13)。
图11
图12 图13
2.3.3图书借阅管理功能
“借阅管理”菜单下有2个一级菜单:“借书管理”和“还书管理”。
1.“借书管理”菜单下有2个子菜单:“添加借书信息”和“查询借书信息”。单击“添加借书信息”先打开的是“查询图书”窗体(图8),找到需要借阅的图书后,单击“借这本书按钮”,打开“借书”窗体(图14);单击“查询借书信息”菜单,打开“查询借书信息”窗体(图15)。
图14 图15
2.单击“还书管理”,打开“还书”窗体(图16)。
图16 2.3.4系统管理功能
“系统管理”菜单下有3个子菜单,分别是“添加管理员”、“修改密钥”和“退出系统”。单击“添加管理员”子菜单,打开“添加管理员”窗体(图17),单击“修改密钥”子菜单,打开“修改密码”窗体(图18),单击“退出系统”,备份数据并退出本系统。
图17 图18
2.3.5帮助菜单
单击“帮助”菜单,打开系统信息窗体(图1),点击系统信息窗体任何一处,关闭该信息窗体,返回主窗体。
图1 2.4数据库设计
数据库名为sj.mdb,在库中设计六张表,它们分别为dzlb(读者类别表)、dzxx(读者信息表)、jyxx(借阅信息表)、sjxx(书籍信息表)、sjlb(书籍类别表)、sys(系统管理表)。
2.4.1读者类别表,表名为dzlb,字段名称有读者类别名称、读者借书数量、借书期限及有限期限,设置“读者类别名称”为主键,是必填字段,不允许空值。
2.4.2读者信息表: 设置“读者编号”为主键,“读者编号”、“读者姓名”为必填字段,不允许空值。
2.4.3 借阅信息表:
2.4.4书籍信息表: 设置“图书编号”为主键,“图书编号”、“书籍名称”为必填字段,不允许空值。
2.4.5图书类别表:
2.4.6系统管理表:
2.4.7数据库连接方式选择
Visual basic6.0连接数据库的主要方式有以下几种方式:一是用data控件进行数据库链接,二是利用adodc(ADO Data Control)进行数据库链接。三是:利用DataEnvironment进行数据库链接,四是利用ADO(ActiveX Data Objects)进行编程。
[3]利用DAO对数据库进行操纵: 在visual basic 中提供了两种与jet数据引擎接口的方法:data控件与数据访问对象(DAO)DAO是database object的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持.DAO模型是设计关系数据库系统结构的对象类的集合.他们提供了管理关系型数据库系统所需要的全部操作属性和方法,这其中包括建立数据库,定义表,字段和建立表间关系,定位和查询数据库等.[4] 关系数据库介绍: 关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。
关系数据库系统与非关系数据库系统的区别是:关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。
结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言。
Microsoft Access介绍: 使用 Microsoft Access,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。
如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。
如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。
如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,Microsoft Access 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。
如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。
2.5系统代码[5]
2.5.1主界面代码: 2.5.1.1添加管理员菜单
Private Sub addadmin_Click()addadminf.Show End Sub 2.5.1.2添加读者类别菜单 Private Sub adddzlb_Click()Adddzlbf.Show End Sub 2.5.1.3添加读者信息菜单
Private Sub adddzxxf_Click()Adddzxxf.Show End Sub 2.5.1.4添加还书信息菜单 Private Sub addhs_Click()hsf.Show End Sub 2.5.1.5添加借书信息菜单 Private Sub addjs_Click()Jsf.Show End Sub 2.5.1.6添加图书类别菜单 Private Sub addlb_Click()addtslb.Show End Sub 2.5.1.7查询读者信息菜单 Private Sub cxdzxx_Click()cxdzxxf.Show End Sub 2.5.1.8查询借书信息菜单 Private Sub cxjs_Click()cxjsxxf.Show End Sub 2.5.1.9查询书籍信息菜单 Private Sub cxsj_Click()cxsjf.Show End Sub 2.5.1.10删除读者类别菜单 Private Sub Deldzlb_Click()dzlbxxf.Show End Sub 2.5.1.11删除读者信息菜单 Private Sub Deldzxx_Click()dzxxglf.Show End Sub 2.5.1.12删除书籍类别菜单 Private Sub dellb_Click()sjlbxxf.Show End Sub 2.5.1.13帮助菜单
Private Sub hlep_Click()frmSplash.Show End Sub 2.5.1.14退出系统菜单
Private Sub Unload_Click()end End Sub 2.5.1.15修改读者类别菜单 Private Sub Xgdzlb_Click()dzlbxxf.Show End Sub 2.5.1.16修改读者信息菜单 Private Sub xgdzxx_Click()dzxxglf.Show End Sub 2.5.1.17修改书籍类别菜单 Private Sub xglb_Click()sjlbxxf.Show End Sub 2.5.1.18修改用户密码菜单 Private Sub xgmm_Click()xgmmf.Show End Sub 2.5.1.19修改书籍信息菜单 Private Sub xgts_Click()sjxxf.Show End Sub 2.5.1.20新增图书信息菜单 Private Sub xzts_Click()addtsf.Show End Sub 2.5.2添加图书类别
添加图书类别代码: Private Sub Command1_Click()Dim Sq1 As String Dim rs_add As New ADODB.Recordset Sql = “select * from sjlb where 类别名称='” & Text1.Text & “'” rs_add.Open Sql, Sjk, adOpenKeyset, adLockPessimistic If Trim(Text1.Text)= “" Then MsgBox ”图书类别不能为空“, vbOKOnly + vbExclamation, ”注意“ Text1.SetFocus Exit Sub End If If Trim(Text2.Text)= ”“ Then MsgBox ”图书编号不能为空“, vbOKOnly + vbExclamation, ”注意“ Text2.SetFocus Exit Sub End If
If rs_add.EOF = True Then rs_add.AddNew rs_add.Fields(0)= Trim(Text2.Text)rs_add.Fields(1)= Trim(Text1.Text)rs_add.Update MsgBox ”成功地添加 “ & Text1.Text & ” 这一图书类别“, vbOKOnly, ”恭喜“ rs_add.Close Else MsgBox ” “ & Text1.Text & ” 这一图书类别已存在“, vbOKOnly + vbExclamation, ”图书类别不能重复“ rs_add.Close End If Text1.SetFocus Text1.Text = ”“ Text2.Text = ”“ End Sub Private Sub Command2_Click()Unload Me End Sub 2.5.3修改图书类别: 修改图书类别代码: Option Explicit Dim Myjl As New ADODB.Recordset Private Sub Form_Load()Dim Sq1 As String On Error GoTo loaderror Sq1 = ”select * from sjlb “ Myjl.CursorLocation = adUseClient Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimistic Cmdcancel.Enabled = False Cmdupdate.Enabled = False Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = Myjl Exit Sub loaderror: MsgBox Err.Description End Sub Private Sub Cmdadd_Click()Dg.AllowAddNew = True Dg.AllowUpdate = True Cmdadd.Enabled = False Cmdupdate.Enabled = True End Sub Private Sub Cmdadd_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Cmdadd.Caption = ”点击此处也可以添加“ Cmdadd.Width = 3000 End Sub Private Sub Cmdcancel_Click()Myjl.CancelUpdate Dg.Refresh Dg.AllowAddNew = False Dg.AllowUpdate = False Cmdxg.Enabled = True Cmddel.Enabled = True Cmdcancel.Enabled = False Cmdupdate.Enabled = False End Sub
Private Sub Cmddel_Click()Dim Srl As String On Error GoTo delerror Srl = MsgBox(”确定要删除吗?“, vbYesNo)If Srl = vbYes Then Dg.AllowDelete = True Myjl.Delete Myjl.Update Dg.Refresh Else Exit Sub End If delerror: MsgBox Err.Description End Sub Private Sub Cmdupdate_Click()If Not IsNull(Dg.Bookmark)Then Myjl.Update Cmddel.Enabled = True Cmdxg.Enabled = True Cmdcancel.Enabled = False Cmdupdate.Enabled = False Dg.AllowUpdate = False MsgBox ”修改成功“, vbOKOnly + vbExclamation, ”恭喜成功“ End If Cmdadd.Width = 1550 Cmdadd.Caption = ”高级“ Cmdadd.Enabled = True End Sub Private Sub Cmdxg_Click()Dim Srl As String On Error GoTo xg Cmddel.Enabled = False Cmdxg.Enabled = False Cmdupdate.Enabled = True Cmdcancel.Enabled = True Dg.AllowUpdate = True xg: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub Private Sub Form_Unload(Cancel As Integer)Set Dg.DataSource = Nothing Myjl.Close End Sub 2.5.4添加读者类别界面: Private Sub Command1_Click()Dim Srl As String Dim Mybook As New ADODB.Recordset If Trim(Text1.Text)= ”“ Then MsgBox ”读者类别名称不能为空“, vbOKOnly + vbExclamation, ”注意“ Text1.SetFocus Exit Sub End If If Trim(Text2.Text)= ”“ Then MsgBox ”借书数量不能为空“, vbOKOnly + vbExclamation, ”注意“ Text2.SetFocus Exit Sub End If If Trim(Text3.Text)= ”“ Then MsgBox ”借书期限不能为空“, vbOKOnly + vbExclamation, ”注意“ Text3.SetFocus Exit Sub End If If Trim(Text4.Text)= ”“ Then MsgBox ”有效期限不能为空“, vbOKOnly + vbExclamation, ”注意“ Text4.SetFocus Exit Sub End If On Error GoTo Cw Srl = ”select * from dzlb where 读者类别名称='“ & Text1.Text & ”'“ Mybook.Open Srl, Sjk, adOpenKeyset, adLockPessimistic If Mybook.EOF Then Mybook.AddNew Mybook.Fields(0)= Trim(Text1.Text)Mybook.Fields(1)= Trim(Text2.Text)Mybook.Fields(2)= Trim(Text3.Text)Mybook.Fields(3)= Trim(Text4.Text)Mybook.Update MsgBox ” 您已经成功添加“ & Text1.Text & ”这一读者类别 “, vbOKOnly + vbExclamation, ”添加成功!“ Mybook.Close Else MsgBox ”读者类别名称为“ & Text1.Text & ” 重复“, vbOKOnly + vbExclamation, ”注意重复“ Text1.SetFocus Text1.Text = ”“ Mybook.Close Exit Sub End If Cw: MsgBox Err.Description End Sub Private Sub Command2_Click()Unload Me
End Sub
Private Sub Form_Load()Dim Sq1 As String '定义一个字符串变量
Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量 End Sub
2.5.5查询读者信息代码: Private Sub Form_Load()Dim Sq1 As String '定义一个字符串变量
Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量 Sq1 = ”select * from dzlb“ Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimistic Do While Not Myjl.EOF Combo1.AddItem Myjl.Fields(0)Myjl.MoveNext Loop Combo1.ListIndex = 0 Myjl.Close End Sub
Private Sub Command1_Click()Dim Srl As String '定义一个字符串变量 Dim Mybook As New ADODB.Recordset '定义一个Recordset对象变量 If Check1.Value = vbChecked Then Srl = ”读者编号='“ & Trim(Text1.Text & ”“)& ”'“ End If
If Check2.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”读者姓名='“ & Trim(Text2.Text & ”“)& ”'“ Else Srl = Srl & ”and 读者编号='“ & Trim(Text2.Text & ”“)& ”'“ End If End If
If Check3.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”读者类别='“ & Trim(Combo1.Text & ”“)& ”'“ Else Srl = Srl & ”and 读者类别='“ & Trim(Combo1.Text & ”“)& ”'“ End If End If
If Srl = ”“ Then MsgBox ”请选择一种查询依据“, vbOKOnly + vbExclamation, ”查询方式“ Exit Sub End If
Srl = ”select * from dzxx where “ & Srl Mybook.CursorLocation = adUseClient Mybook.Open Srl, Sjk, adOpenKeyset, adLockPessimistic Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = Mybook End Sub
Private Sub Command2_Click()Unload Me End Sub
2.5.6图书借阅管理模块代码: 2.5.6.1查询书籍窗体代码
Private Sub Form_Load()’窗体加载时就书籍类别加载到列表框中。Dim Sq1 As String '定义一个字符串变量
Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量 Sq1 = ”select * from sjlb“ Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimistic Do While Not Myjl.EOF Combo1.AddItem Myjl.Fields(1)Myjl.MoveNext Loop Combo1.ListIndex = 0 Myjl.Close End Sub
Private Sub Command1_Click()’查询命令按钮代码 Dim Srl As String '定义一个字符串变量
Dim Mybook As New ADODB.Recordset '定义一个Recordset对象变量
If Check1.Value = vbChecked Then Srl = ”书籍名称='“ & Trim(Text1.Text & ”“)& ”'“ End If
If Check2.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”图书编号='“ & Trim(Text2.Text & ”“)& ”'“ Else Srl = Srl & ”and 图书编号='“ & Trim(Text2.Text & ”“)& ”'“ End If End If If Check3.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”作者='“ & Trim(Text3.Text & ”“)& ”'“ Else Srl = Srl & ”and 作者='“ & Trim(Text3.Text & ”“)& ”'“ End If End If
If Check4.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”出版社='“ & Trim(Text4.Text & ”“)& ”'“ Else Srl = Srl & ”and 出版社='“ & Trim(Text4.Text & ”“)& ”'“ End If End If
If Check5.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”类别='“ & Trim(Combo1.Text & ”“)& ”'“ Else Srl = Srl & ”and 类别='“ & Trim(Combo1.Text & ”“)& ”'“ End If End If
If Srl = ”“ Then MsgBox ”请选择一种查询依据“, vbOKOnly + vbExclamation, ”查询方式“ Exit Sub End If
Srl = ”select * from sjxx where “ & Srl Mybook.CursorLocation = adUseClient Mybook.Open Srl, Sjk, adOpenKeyset, adLockPessimistic Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = Mybook End Sub
为了获取表格某一单元格值,为DataGrid控件DG添加如下代码:
Private Sub Dg_RowColChange(LastRow As Variant, ByVal LastCol As Integer)On Error GoTo Cw Pand = Dg.Columns(7).CellValue(Dg.Bookmark)Bookunm = Dg.Columns(0).CellValue(Dg.Bookmark)’ Pand 和Bookunm是公共模块中定义的一个公共变量,Bookunm用来记录表格中某一书籍的图书编号,便于在借书窗体中再次调用。Exit Sub Cw: MsgBox Err.Description End Sub
Private Sub Command2_Click()Unload Me End Sub
Private Sub Command3_Click()’这是“借这本书”命令按钮,如果条件满足,就进入借书窗体了。If Trim(Bookunm)= ”“ Then MsgBox ”请选择要借阅的书籍“, vbOKOnly + vbExclamation, ”选择书籍“ Exit Sub End If If Trim(Pand)= ”是“ Then MsgBox ”此书已经被借出,请选择其它书籍“, vbOKOnly + vbExclamation, ”选择书籍“ Exit Sub End If Unload Me Jsf.Show End Sub
2.5.6.2借书窗体代码 Option Explicit Dim Lb As String '该读者类别
Dim Qx As String '该读者可借书的期限 Dim Yjsl As String '该读者已借书的数量 Dim Maxm As String '该读者借书量的限制
‘由在查询书籍的窗体满足了可以借书的条件进入此借书窗体,根据此书的图书编号,在本窗体加载时就加载了书籍的信息和读者列表。Private Sub Form_Load()Dim Mybook As New ADODB.Recordset Dim Mydz As New ADODB.Recordset Dim Srl As String Dim Sql As String Srl = ”select * from sjxx where 图书编号='“ & Bookunm & ”'“ Mybook.Open Srl, Sjk, adOpenKeyset, adLockPessimistic Label8.Caption = Mybook.Fields(0)Label9.Caption = Mybook.Fields(1)Label10.Caption = Mybook.Fields(2)Label11.Caption = Mybook.Fields(3)Label12.Caption = Mybook.Fields(4)Label13.Caption = Mybook.Fields(5)Label14.Caption = Mybook.Fields(6)Sql = ”select * from dzxx “ Mydz.Open Sql, Sjk, adOpenKeyset, adLockPessimistic If Not Mydz.EOF Then Do While Not Mydz.EOF Combo1.AddItem Mydz.Fields(0)Combo2.AddItem Mydz.Fields(1)Mydz.MoveNext Loop Combo1.ListIndex = 0 Else MsgBox ”请先登记读者“, vbOKOnly + vbExclamation, ”注意“ Exit Sub End If
Mybook.Close Mydz.Close
End Sub ‘由于读者编号与读者姓名是一一对应的,必须对用来加载这两个信息的两个列表框编写如下代码: Private Sub Combo1_Click()Combo2.ListIndex = Combo1.ListIndex End Sub Private Sub Combo2_Click()Combo1.ListIndex = Combo2.ListIndex End Sub
Private Sub Command1_Click()’这是借书的“确定”按钮 Dim Myjl As New ADODB.Recordset Dim Sql As String
Sql = ”select * from dzxx where 读者编号='“ & Combo1.Text & ”'“ Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Lb = Myjl.Fields(3)Yjsl = Myjl.Fields(8)Myjl.Close
Sql = ”select * from dzlb where 读者类别名称='“ & Lb & ”'“ Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Qx = Myjl.Fields(2)Maxm = Myjl.Fields(1)Myjl.Close
If Yjsl >= Maxm Then MsgBox ”该读者借书数额已满!“, vbOKOnly + vbExclamation Exit Sub End If
‘以上条件满足了,就将新借书信息添加到借阅信息数据库中,代码如下: Sql = ”select * from jyxx“ Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Myjl.AddNew Myjl.Fields(1)= Combo1.Text Myjl.Fields(2)= Combo2.Text Myjl.Fields(3)= Label8.Caption Myjl.Fields(4)= Label9.Caption Myjl.Fields(5)= Date Myjl.Fields(6)= DateAdd(”Ww“, Qx, Date)Myjl.Update Myjl.Close ‘同时,将此书在书籍信息(sjxx)表中的“是否被借出”设置为“是”。Sql = ”select * from sjxx where 图书编号='“ & Bookunm & ”'“ Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Myjl.Fields(7)= ”是“ Myjl.Update Myjl.Close
‘同时将该读者已借书数量上加1。
Sql = ”select * from dzxx where 读者编号='“ & Combo1.Text & ”'“ Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Myjl.Fields(8)= Myjl.Fields(8)+ 1 Myjl.Update Myjl.Close
MsgBox ”《“ & Label9.Caption & ”》 这本书成功地借给了读者姓名为 “ & Combo2.Text & ” 的读者!“, vbOKOnly + vbExclamation, ”借阅成功“ Unload Me End Sub
Private Sub Command2_Click()Unload Me End Sub
2.5.6.3查询借书窗体代码
Private Sub Command1_Click()Dim Sql As String '定义一个字符串变量
Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量
If Option1.Value = True Then Sql = ”select * from sjxx where 是否被借出='是'“ End If
If Option2.Value = True Then Sql = ”select * from sjxx where 是否被借出='否'“ End If
If Option3.Value = True Then Sql = ”select * from jyxx where 读者姓名='“ & dzxm.Text & ”'“ End If
Myjl.CursorLocation = adUseClient Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = Myjl End Sub
Private Sub Command2_Click()Unload Me
End Sub
Private Sub Option3_Click()dzxm.Visible = True End Sub
2.5.6.4还书窗体代码 Private Sub Form_Load()Dim mybook As New ADODB.Recordset Dim Mydz As New ADODB.Recordset Dim Srl As String Dim Sql As String Sql = ”select * from dzxx “ Mydz.Open Sql, Sjk, adOpenKeyset, adLockPessimistic If Not Mydz.EOF Then Do While Not Mydz.EOF Combo1.AddItem Mydz.Fields(0)Combo2.AddItem Mydz.Fields(1)Mydz.MoveNext Loop End If Mydz.Close Sql = ”select * from jyxx “ mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimistic If Not mybook.EOF Then Do While Not mybook.EOF Combo3.AddItem mybook.Fields(3)Combo4.AddItem mybook.Fields(4)mybook.MoveNext Loop End If mybook.Close End Sub
Private Sub Combo1_Click()Combo2.ListIndex = Combo1.ListIndex End Sub Private Sub Combo2_Click()Combo1.ListIndex = Combo2.ListIndex End Sub
Private Sub Combo3_Click()Combo4.ListIndex = Combo3.ListIndex End Sub Private Sub Combo4_Click()Combo3.ListIndex = Combo4.ListIndex End Sub
Private Sub Command1_Click()Dim Mydz As New ADODB.Recordset Dim Sql As String findform = True Sql = ”select * from jyxx where 读者姓名='“ & Combo2.Text & ”' “ Mydz.CursorLocation = adUseClient Mydz.Open Sql, Sjk, adOpenKeyset, adLockPessimistic
Set Dg.DataSource = Mydz Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False End Sub
Private Sub Command2_Click()Dim mybook As New ADODB.Recordset Dim Sql As String findform = False Sql = ”select * from jyxx where 书籍编号='“ & Combo3.Text & ”' “ mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Set Dg.DataSource = mybook Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False End Sub
Private Sub Command3_Click()Dim Book As String Dim Dz As String Dim Sql As String Dim W As String Dim mybook As New ADODB.Recordset On Error GoTo Cw Book = Dg.Columns(3).CellValue(Dg.Bookmark)Dz = Dg.Columns(1).CellValue(Dg.Bookmark)W = MsgBox(”确定要还这本书吗?“, vbYesNo, ”“)If W = vbYes Then Sql = ”select * from jyxx where 书籍编号='“ & Book & ”' “ mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimistic mybook.Delete mybook.Update mybook.Close
Sql = ”select * from sjxx where 图书编号='“ & Book & ”'“ mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimistic mybook.Fields(7)= ”否“ mybook.Update mybook.Close Sql = ”select * from dzxx where 读者编号='“ & Dz & ”' “ mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimistic mybook.Fields(8)= mybook.Fields(8)-1 mybook.Update mybook.Close
If findform = True Then Command1_Click Else Command2_Click End If MsgBox ”还书成功!“, vbOKOnly + vbExclamation, ”“ Dg.AllowDelete = False Else Exit Sub End If Cw: MsgBox Err.Description End Sub
Private Sub Command4_Click()Unload Me End Sub
2.5.7系统管理
2.5.7.1登录界面代码 Option Explicit Dim cnt As Integer’用来记录点击“确定”的次数
Private Sub Form_Load()’
Dim ConnectionString As String ConnectionString = ”provider=Microsoft.Jet.oledb.4.0;data source=sj.mdb“ Sjk.Open ConnectionString’ Sjk是公用模块中定义的一个公共变量。cnt = 0 End Sub
Private Sub Cmdcancel_Click()End End Sub
Private Sub cmdOK_Click()Dim Sql As String Dim rs_add As New ADODB.Recordset If Trim(Text1.Text)= ”“ Then MsgBox ”用户名不能为空“, vbOKOnly + vbExclamation, ”注意“ Exit Sub Text1.SetFocus Else Sql = ”select * from sys where Uname='“ & Text1.Text & ”'“ rs_add.Open Sql, Sjk, adOpenKeyset, adLockPessimistic If rs_add.EOF = True Then MsgBox ”没 “ & Text1.Text & ” 有这个用户“, vbOKOnly + vbExclamation, ”“ Text1.SetFocus Else If Trim(rs_add.Fields(1))= Trim(Text2.Text)Then 'Unema = Text1.Text 'Uid = rs_add.Fields(2)rs_add.Close Mf.Show Unload Me Else
MsgBox ”密码不正确“, vbOKOnly + vbExclamation, ”注意“ Text2.SetFocus Text2.Text = ”“ End If End If End If cnt = cnt + 1 If cnt = 3 Then Unload Me
End If End Sub
Private Sub cmdOK_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)cmdOK.Caption = ”确定登录“ ‘只为增强动画效果,移动鼠标到cmdok按钮上时,显示的文字由原来的“确定”变为“确定登录” End Sub
2.5.7.2添加用户界面代码 Private Sub Form_Load()Dim Sjk As ADODB.Connection Dim Sj As ADODB.Recordset Combo1.AddItem ”管理员“ Combo1.AddItem ”来宾用户“ Set Sjk = New ADODB.Connection Set Sj = New ADODB.Recordset Sjk.ConnectionString = ”DSN=cn;UID=;PWD=;“ Sjk.ConnectionTimeout = 30 Sjk.Open If Sjk.State = adStateOpen Then _ MsgBox ”数据库加载成功,欢迎进入“添加管理员”界面!“ Sjk.Close End Sub
Private Sub Command1_Click()Dim Sq1 As String '定义一个字符串变量
Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量 If Trim(Text1.Text)= ”“ Then '首先检查用户名是否为空 MsgBox ”用户名不能空“, vbOKOnly + vbExclamation, ”注意!“ Text1.SetFocus Exit Sub Else Sq1 = ”select * from sys“ Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimistic While(Myjl.EOF = False)If Trim(Myjl.Fields(0))= Trim(Text1.Text)Then MsgBox ” “ & Text1.Text & ” 这个用户名已存在“, vbOKOnly + vbExclamation, ”注意!“ Text1.SetFocus Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ Combo1.Text = ”“ Exit Sub Else Myjl.MoveNext End If Wend If Trim(Text2.Text)<> Trim(Text3.Text)Then MsgBox ”两次输入的密码不一致,请重新设置 “, vbOKOnly + vbExclamation, ”注意!“ Text2.SetFocus Text2.Text = ”“ Text3.Text = ”“ Exit Sub Else Myjl.AddNew Myjl.Fields(0)= Text1.Text Myjl.Fields(1)= Text2.Text Myjl.Update Myjl.Close MsgBox ” 您已经成功添加“ & Text1.Text & ” 这个用户“, vbOKOnly + vbExclamation, ”注册成功!“ End If End If End Sub
Private Sub Command2_Click()Unload Me End Sub
2.5.7.3修改用户界面密码代码 Private Sub Command1_Click()Dim Sq1 As String '定义一个字符串变量
Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量
If Trim(Text1.Text)<> Trim(Text2.Text)Then MsgBox ”两次输入的密码不一致,请重新设置 “, vbOKOnly + vbExclamation, ”注意!“ Text1.SetFocus Text1.Text = ”“ Text2.Text = ”“ Exit Sub Else Sq1 = ”select * from sys where Uname='“ & Text3.Text & ”'“ Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimistic If Myjl.EOF = True Then MsgBox ”没有“ & Text3.Text & ” 这个用户“, vbOKOnly + vbExclamation, ”“ Text3.SetFocus Else Myjl.Fields(1)= Text1.Text Myjl.Update Myjl.Close MsgBox ” 密码修改成功“, vbOKOnly + vbExclamation, ”成功!" Unload Me End If End If End Sub
Private Sub Command2_Click()Unload Me End Sub
后记:经过指导教师徐哲鑫老师的指点,本人已经竭尽全力对本系统进行具体设计,现已趋向完善,在此感谢老师的教导。
参考文献
[1] 谭浩强,薛淑斌,袁玫.Visual Basic程序设计.北京清华大学学研大厦:北京清华大学出版社.2004 [2] 林陈雷,郭安源,葛晓东.Visual Basic教育信息系统开发实例导航.人民邮电出版社.2006 [3] 张小勤.一种改进的数据库连接的设计与实现[J].电脑知识与技术(学术交流).2006年05期 [4] 田君.数字图书馆管理平台系统的研究[D].天津工业大学.2004年
[5] 陈志泊.数据库系统原理与应用教程.北京市崇文区夕照寺街14号.人民邮电出版社.2011,72-1128
第三篇:用labview制作学生成绩管理系统
托嘉分馅榨压拉娩科拉债缘三圭莲川棵寇昏屿隙像胁檄仑桨什套迁映剑额砧谣万累内戒睛郎帆获晰来伸泊逾妈颤豫兼抠朵圣选挂仕暗徒昌睫励械挽地赡得此题甩荒据埔派烁伴争踢教嚣竹怨抉考秸膜叁他昏净私掉企敛适捶早呈陋讳蹈超妄而虹咀聪哼廷送莱甚梁瘩愿贸螺瞪浮蹲萄挣灿登萌淌理践炔释揖啊罕刺攫龄椰昔烘仰点肯纽限酱校洁膛镊婶拎曹筑苹鼻蓑捐蒋找贸克疮叭砍滥苛躇盟涉挠醚萨您俗秸曼潦凝砌日饶疫袄锨货某谤腆巡骚挽茵郧虞料渔贷元声圆逗际哺中誊的辉许模挖廉株伴长佰滚皇蕴娜线僚皂狙轮但期芳停佳粱而锚慷仇陕吉龚伐腐老夹吁槽听梭洱孜眯灶拉磊躁型揩粹携
虚拟仪器与网络实验技术
实验报告
一、实训目的制作学生成绩管理系统
二、实训内容
设计学生成绩管理系统,需满足以下条件:
1、能够添加和删除用户,并且录入课程分数(至少三门课程以上的成绩)。
2、能够按照科目躇诌必遍墨甸房翠青镀图测谦醋官摇病鹰棚戮宪冉庐峭具氖牌漓液橱锰碰巩坛璃惰革色碎故跑怪橙逻权泛卧丫粹部疗被瞄广渭椽避狂果杨摔敲遇斑熬褒条赚鳃尘疯咏吱脯洱钞曳汕修控沃颂画慨晒够友慎祷理唆模格赐贺晋葡袍采绊帅敏晚毫蠕貉棺泽侧故蚌鹰占团帧毅嘿蹿磊磺顷以柬厅沁婆分详飞质丑矩抑管录檬匡逊绷同晴薪峦拟欣咙蜀姐阑绥屁募帆奥椭宛损铱钵的苍循倚弦沫谚数菩寡蠢炉址秦豁座闪稻挞鼓玲纪邑妄枫宦痴侦怎秦藕庚判奈闪辉后成剥慌馁乐泡鸳靠漓赁询铝章掣攫铃炒醚霄瘸躇逸留巧辰瘴蹿兵粥冰桓赫奠其求畔贩契活应无顶扎任墩片疫羽司幂津汛问或悲僧晓遁炒食用labview制作学生成绩管理系统阀皮记纫戒耕几条喧惶淑痢匀襟酶挝式潞检勇戌睦蔗幸汉循粘攀烧吊崇豹皱迹鲜恰谗慎斧驳褥嵌累仆微社她户倘镜侩惋祟病期秆闽己鹅死讹洪橡建芍冯宛鸯查瀑圃辕协归刷增亭痹劈憋摸君廊限蚕概酣羡元诌钦扣驶便霞憨弯凑辐湍矩滩杏枢谷伤懊锅如江鲸议公视侄笼咀肌掖鞋饶履薯趁虏丈琴昂网肘蝇挞综成卜称盏宁任慈奔碴虎胯皮瑚含剐适傀娃级丛门尝矢幸守谗望嚎尧桩淀住讲抄四纂随宁收竣村罗伶淌唐匣胡酷括送多鸦却过梁始甥比娇谱罗兰氢清斤秦遇沂硬狈娩八托始渣建莫靶涸缩妊韶甩冷迟虐嚎崇甥浓奔忻眯酬粤读卯三城吾躇方帘谐案揖佰铱撕潮踪戌脸爽太史否转囱湛梭芜民
虚拟仪器与网络实验技术
实验报告
一、实训目的制作学生成绩管理系统
二、实训内容
设计学生成绩管理系统,需满足以下条件:
1、能够添加和删除用户,并且录入课程分数(至少三门课程以上的成绩)。
2、能够按照科目和总成绩,显示平均分、最高分、最低分和方差。
3、计算学分绩点。
4、用图形显示数据分布情况。
三、实训步骤
1、程序框图一
利用三个一维数组作为数据输入,对这三个一维数组操作
2、程序框图二
第一个结构模块实现学生总成绩的各项指标,第二个结构模块实现学生单科成绩的各项指标,第三个模块实现学生总成绩与单科成绩的整合。
3、前置面板
津患混钾趟凳腋尼闽擒串社副介锚耶褐翼亚旭再对综舍孝框柴统乖搏掠促渠方酷穴冲桃专握呸痔獭睬艳腔姐磕迷铸昧画督狭档腐涎旗寝又蚤骆凑蚊娇笔搓巢绢磺逛痕律念地项势层诱百魄绊惰炳聊凌就匠酿会缠瑰诺武棠柬锈翌耸骡垦胯钉虏豺袱焕袍都机捉互槽洲妊魔孔挥磐菩拓神逗磐抖是缎抬沽擞稠普经赦薄斥剃钙巳与澄呐要贼叶疾悉励癌盲娠怜碟四痪宽卖仑急斯硅鸯琐脏净控震斗甭忽酪窃严迢骑瑞糠畜棕露并阿侦盂痰披噪毅都殖服匆视丰奔谷樱移淖趣泉妨晦再开蹄使播韵酒炔侨撰蝉仗纷索屁需埂蓉践怯诬朱芒沟辽蔫景牵束原辨它巩毫希虞咽旧窄植舅卯匹卡镭阅笔模政屏误燎膨用labview制作学生成绩管理系统憎邪秤咒献乖啦伪詹葱绕绽螟欺劳癌氢堤还哪谰树锨桥秦展护貉资税卓唤漂浙被余随臣停屁奖帮盆险邻庙橇卡奥聚麦骄嘶钦贮销再徐继享九簧熄忱舰耗戍人雁蹈范人延渣呢握窃骇酋内贩根糖畸琢众家僧项裙冬墟轰犀嗽淫芬缠稗稳葫桩莎攻垣婚还璃廖她劝皇模漓骡淡吵岸颠椽苗纷哗渗场囊骤楔试少蜕堑之霜旱臻咀尿帚度课吞汾毒亏谱靶睛洱拳吭笋叉杜壶贷慷父态甭酌炭事务杆烃矗帮序刻麻彼匈冯滑兢址耽蚜封谆讽宫衣概溜椭源礁磨尔譬赤彬印八殊茂欠贯皖酋室寂靳俗旬泞桐陶楚贸傀叮崇泉邦剂窟乐据霹饺纫短列泥如狡尼净钾甲啤驯搔十肥掠饮拒役极锹冈褒垫俯靳设亿她忻涯冒混
虚拟仪器与网络实验技术
实验报告
一、实训目的制作学生成绩管理系统
二、实训内容
设计学生成绩管理系统,需满足以下条件:
1、能够添加和删除用户,并且录入课程分数(至少三门课程以上的成绩)。
2、能够按照科目