《学生档案标准管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《学生档案标准管理系统的设计与实现.doc(54页珍藏版)》请在三一办公上搜索。
1、学生档案标准管理系统的设计与实现学生档案管理系统项目应用开发数据库应用程序的开发始终算得上是VB编程中的难点,这是因为你不仅要熟悉VB中关于数据库编程方面的知识(当然这是十分简单的)还要了解数据库的知识。本系统主要用来实现学生基本情况和学生成绩的录入、修改、查询、删除和打印等功能。通过本系统,可以了解如何使用Visual Basic来开发一个比较完整的数据库应用程序。用到的数据库控件有DATA、ADO,添加的一个数据环境。一、系统结构图本系统主要包括学生基本情况更新,学生基本情况维护和学生成绩维护3个大的模块,各个模块的具体功能如图所示:学生档案管理系统学生基本情况更新学生基本情况维护学生成绩
2、维护添加删除修改查询选择专业修改添加删除打印按专业查询添加成绩查找打印按学号查找按专业查找图1-1 应用程序的功能模块结构图二、数据库的建立本系统用到的数据库是用Visual Basic的外加工具Visual Data Manager(可视化数据管理器)创建,(是access数据库),其中用到两个表,分别为:基本情况表和学生成绩表。两表的结构如下所示:表1-1 字段名类型宽度学号Text6姓名Test10性别Text2班级Text20出生年月Data/Time8政治面貌Text4家庭住址Text20电话Text8E_mailText20照片Binary0表1-2字段名类型宽度学号Text6课程
3、Test8成绩Long4学期Integer制作过程如下:1、 选择VB外接程序菜单中的可视化数据管理器,进入可视化数据管理器;2、 在可视化数据管理器中选择文件菜单中的新建选项建立数据库文件,然后从数据库厂家列表中选择要创建的数据库类型(本例选择Microsoft Access中的Version MDB );3、 在选择要创建的Microsoft Access数据库对话框中,输入数据库名student,按确定按钮进入数据库窗口;4、 (基本情况表和学生成绩表)。三、各个窗体的设计与实现(一) 主窗体的设计与实现首先在VB中新建一个标准工程并起名为成绩管理,在标准工程中添加一个MDI窗体并起名为
4、Frmmain。主窗体的设计界面如图1-2所示:图1-2 主窗体的设计界面 在主窗体中主要应用了菜单、工具栏和状态栏。下面分别介绍这些组成部分的功能。1、 菜单的设计菜单是Windows应用程序中的重要组成部分,这里将对每个菜单项及其子菜单的功能进行简单介绍,如表1-1所示。表1-3 应用程序的菜单项列表主菜单名子菜单项菜单功能数据维护(Repair)情况表更新(Edit)显示学生情况表更新窗体情况表维护(Cedit)显示学生情况表维护窗体成绩表维护(Cjwh)显示学生成绩表维护窗口退出本系统(Quit1)退出应用程序帮助(Help)关于系统(Absystem)显示关于系统窗体系统帮助(Abh
5、elp)显示系统帮助窗体退出(Exit)推出本系统(Quit)退出应用程序MID应用程序中,父窗体可以有自己的菜单,子窗体也可以有属于自己的菜单。这些菜单的创建都可以利用Menu Editor来进行创建。2、 Imagelist控件程序包括一个Imagelist控件,它用来为工具栏提供图片。在程序的基本控件中没有此项控件,添加此控件的方法是在基本控件的空白处点击鼠标右键,在出现的快捷菜单中选择部件,之后在部件对话框中的部件选项卡中选择Microsoft Windows common controls ,确定即可。在窗体中添加一个Imagelist控件,名为默认的Imagelist1,再为此控件
6、添加几个图标。3、工具栏设计工具栏提供了便捷的操作方式来完成应用程序常用的操作。在现在的Windows应用程序中,工具栏已经成为非常主要的组成部分。本例工具栏的设计步骤为:首先在窗体中添加一个toolbar控件,之后为此控件添加6个按钮,并把每个按钮分别和Imagelist1控件的图片绑定。4、状态栏设计在主窗体上添加一个Statusbar控件,用鼠标右键点击此控件,在属性页的对话框中为窗体添加6个窗格,分别放置窗口信息和显示当前日期和时间。5、主窗体界面的代码实现 菜单的Click事件代码:Private Sub CEDIT_Click()Unload FrmjbgxUnload frmcj
7、Unload FrmHELPUnload FrmwelcomeUnload frmaboutLoad FrmjbwhEnd SubPrivate Sub cjwh_Click()Unload FrmjbgxUnload FrmjbwhUnload FrmHELPUnload FrmwelcomeUnload frmaboutLoad frmcjEnd SubPrivate Sub EDIT_Click()Unload FrmjbwhUnload frmcjUnload FrmHELPUnload FrmwelcomeUnload frmaboutLoad FrmjbgxEnd SubPriva
8、te Sub Absystem_Click()Unload FrmjbgxUnload frmcjUnload FrmjbwhUnload FrmwelcomeUnload frmaboutLoad FrmHELPEnd SubPrivate Sub Ahelp_Click()Unload FrmjbgxUnload frmcjUnload FrmHELPUnload FrmwelcomeUnload FrmjbwhLoad frmaboutEnd SubPrivate Sub quit_Click()Unload FrmmainEnd SubPrivate Sub quit1_Click()
9、Unload FrmmainEnd Sub窗体的Load事件代码:Private Sub MDIForm_Load()Load FrmwelcomeEnd Sub工具栏的Buttonclick事件代码: Private Sub Toolbar1_ButtonClick(ByVal Button As )Select Case Case 1Unload FrmjbwhUnload frmcjUnload FrmHELPUnload FrmwelcomeUnload frmaboutLoad Frmjbgx Case 2Unload FrmjbgxUnload frmcjUnload FrmHEL
10、PUnload FrmwelcomeUnload frmaboutLoad Frmjbwh Case 3Unload FrmjbgxUnload FrmjbwhUnload FrmHELPUnload FrmwelcomeUnload frmaboutLoad frmcj Case 4Unload FrmjbgxUnload frmcjUnload FrmHELPUnload FrmwelcomeUnload FrmjbwhLoad frmabout Case 5Unload FrmjbgxUnload frmcjUnload FrmjbwhUnload FrmwelcomeUnload fr
11、maboutLoad FrmHELP Case 6Unload FrmmainEnd SelectEnd Sub(二)学生基本情况更新窗体的设计与实现首先在工程中添加一个标准窗体并起名为Frmjbgx。再在基本空间上添加一个通用对话框控件,方法是在基本控件的空白处按鼠标右键,选择部件,在部件对话框中选择Microsoft Common Dialog Control ,按确定按钮。然后在窗体上添加各种控件,如图1-3设计屏幕,然后添加程序代码。在图中,其主要控件、主要属性、控件说明(一些次要控件如按钮、标签,次要属性如Height、Width除非特别,否则将不特别说明,读者可以根据具体情况来设定
12、)如表1-4所示:图1-3 基本情况更新设计界面表1-3 控件、主要属性、控件说明表控件名称主要控件属性名称属性值功能说明FrmjbgxCaption基本情况更新名称frmjbgxBorderStyle2 SizableMdichildTrue把此窗体作为子窗体WindowstateMaximized运行是最大化Frame名称Frame1Caption基本情况更新CommonDialog名称Commondialog1Data名称Data1ConnectAccess选择Access数据源DatabasenameStudent.mdb选择数据源的名称Recordsource基本情况和数据表进行绑定
13、Image名称Image1StretchTrue调整图片大小以适应该控件EnabledFalse初始状态为不可用Text名称Text1Text9text1_text9和数据库Student.mdb的基本情况表的各个字段进行绑定DatasourceData1Datafield学号E_MAILEnabledFalse初始状态为不可用Command名称Command4Caption放弃EnabledFalse初始状态为不可用Command名称Command10Caption添加照片EnabledFalse初始状态为不可用注意:在设置Data1的Databasename属性时,这样可以不限制应用程序的
14、路径。窗体的运行结果如图1-4所示:图1-4 基本情况更新窗体的运行结果基本情况更新设计代码实现添加按钮的Click事件代码:Private Sub Command1_Click()On Error Resume Next点击此按钮时,除放弃和添加照片按钮外,其他均不可用 = Not = Not = Not = Not = Not = Not = Not = Not = Not If = 添 加 Then = True = True = True = True = True = True = True = True = True = True = 确 定 添加一条空白记录 Else = Fal
15、se = False = False = False = False = False = False = False = False = False 把数据真正添加到表中 = 添 加 End IfEnd Sub删除按钮的Click事件代码:Private Sub Command2_Click()On Error Resume NextIf Then End Sub修改按钮的Click事件代码:Private Sub Command3_Click()On Error Resume Next = Not = Not = Not = Not = Not If = 修 改 Then = True =
16、True = True = True = True = True = True = True = True = True = 确 定Else = 修 改 = False = False = False = False = False = False = False = False = False = False End IfEnd Sub放弃按钮的Click事件代码:Private Sub Command4_Click()On Error Resume Next = 添 加 = 修 改 = True = True = False = True = True = True = True = Tr
17、ue = False = False = False = False = False = False = False = False = False = FalseEnd Sub查询按钮的Click事件代码:Private Sub Command5_Click()Dim MNO As StringMNO = InputBox$(请输入学号, 查询窗) 学号= & MNO & If Then MsgBox 无此学号, , 提示End Sub上一个按钮的Click事件代码:Private Sub Command6_Click()On Error Resume NextIf Then End Sub
18、下一个按钮的Click事件代码:Private Sub Command7_Click()On Error Resume NextIf Then End Sub第一个按钮的Click事件代码:Private Sub Command8_Click()End Sub最后一个按钮的Click事件代码:Private Sub Command9_Click()End Sub添加照片按钮的Click事件代码:Private Sub Command10_Click()调用通用对话框CommonDialog1 = 1On Error Resume NextIf = Then Exit Sub = LoadPic
19、ture()返回应用程序所在路径ChDrive Mid(, 1, 1)End Sub窗体的Load事件代码:Private Sub Form_Load()是Frame1框架在窗体加载时水平居中 = / 2 - / 2初始化通用对话框 = *.bmp = pictures(*.bmp)|*.bmp|pictures(*.jpg)|*.jpg|all files(*.*)|*.* = 1End Sub窗体的Resize事件代码:Private Sub Form_Resize()窗体的尺寸改变是,Frame1始终水平居中 = / 2 - / 2End Sub(三)学生基本情况维护窗体的设计与实现首先
20、在工程中添加一个标准窗体并起名为Frmjbwh。再在工程中添加一个数据环境,数据环境设计器为创建编程的运行时数据访问提供了一个交互的、设计时环境。在设计时,您可以设置 Connection 和 Command 对象的属性值、编写代码响应 ActiveX(R) Data Object (ADO) 事件、执行 Command、创建合计和层次结构。您也可以将 DataEnvironment 对象拖动到窗体或报表中来创建数据绑定控件。使用数据环境设计器,您可以完成下面的工作: 添加一个数据环境设计器到一个 Visual Basic 工程中。 创建 Connection 对象。 基于存储过程、表、视图、
21、同义词和 SQL 语句创建 Command 对象。 基于 Command 对象的一个分组,或通过与一个或多个 Command 对象相关来创建 command 的层次结构。 为 Connection 和 Recordset 对象编写和运行代码。 从数据环境设计器中拖动一个 Command 对象中的字段到一个 Visual Basic 窗体或数据报表设计器。 本例设置数据环境的方法是:选择工程菜单中的添加Data Environment,出现数据环境对话框如图1-5所示。图1-5 数据环境对话框在图1-5中,用鼠标右键单击Dataenvironment1下的Connection1选择属性,出现数据
22、连接属性对话框,如图1-6所示。图1-6 数据连接属性对话框 在图1-6中,在提供程序选项卡中选择数据引擎Microsoft Jet OLE DB Provider,按下一步按钮,进入连接选项卡如图1-7所示。图1-7 数据连接属性的连接选项卡在图1-7中,在选择和输入数据库名称下边的文本框中,,,这样可以不限制应用程序的路径。按确定按钮后,回到数据环境对话框,再用鼠标右键单击Connection1,在弹出的快捷菜单中选择添加命令选项,结果如图1-8所示。图1-8 添加一个命令后的窗口在图1-8中,用鼠标右键单击Command1,在弹出的快捷菜单中选择属性,出现Command1属性对话框,如图
23、1-9所示。图1-9 Command1属性对话框在入1-9中,在数据源下边数据库对象后的下拉表中选择表,在对象名称后的下拉表中选择基本情况。再在高级选项卡中,把锁定类型设成3-开放式,以便数据环境可以进行修改和删除操作。之后,按确定按钮,回到数据环境对话框。在用鼠标右键点击Command1,在出现的快捷菜单中选择添加子命令,结果如图1-10所示。图1-10 添加子命令后窗口在图1-10中,再设置command2的属性,方法同设置Command1属性,把Command2的数据对象设为学生成绩表。在关联选项卡中设置用学号同父命令对象相关联。结果如图1-11所示。图1-11 和父命令对象关联窗口数据
24、环境建立完成后,回到Frmjbwh窗体中,在基本控件中添加一个DataGrid 控件,方法是在基本控件的空白处按鼠标右键,选择部件,在部件对话框中选择Microsoft DataGrid Control (OLEDB)控件,按确定按钮。DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示 Recordset 对象的记录和字段。可以使用 DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid 控件可以在设计时快速进行配置,只需少量代码或无需代码。当在设计时设置了 DataGrid 控件的 DataSource 属性后,就会用数
25、据源的记录集来自动填充该控件,以及自动设置该控件的列标头。然后您就可以编辑该网格的列;删除、重新安排、添加列标头、或者调整任意一列的宽度。在窗体上添加各种控件,如图1-12设计屏幕。在图中,其主要控件、主要属性、控件说明如表1-4所示:图1-12 学生基本情况维护设计界面表1-4 控件、主要属性、控件说明表控件名称主要控件属性名称属性值功能说明FrmjbwhCaption基本情况维护名称FrmjbwhBorderStyle2 SizableMdichildTrue把此窗体作为子窗体WindowstateMaximized运行是最大化Datagrid名称Datagrid1DatasourceDa
26、taenvironment1把数据环境设成数据源DatamemberCommand1数据成员设成数据环境中的Command1命令 窗体的运行结果如图1-13所示:图1-13 学生基本情况维护的运行结果基本情况维护设计代码实现在通用区域声明一个全局变量key,以便在选择专业时使用:Public key As String选择班级按钮的Click事件代码:Private Sub selzy_Click() = 把对话框窗体Dialog设置成显示模式 vbModal按Dialog窗体的key变量的返回值进行筛选If Then = 班级= & key & = FalseEnd IfUnload Dia
27、logEnd Sub修改按钮的Click事件代码:Private Sub Comup_Click() = TrueEnd Sub添加按钮的Click事件代码:Private Sub Comadd_Click() = True添加操作End Sub删除按钮的Click事件代码:Private Sub Comdel_Click() 设置DataGrid1为可删除状态 = TrueIf = True Then End Sub打印按钮的Click事件代码:Private Sub Comprint_Click()显示并打印报表End Sub窗体的Resize事件代码:Private Sub Form_R
28、esize()使frame1始终居中 = / 2 - / 2 = / 2 - / 2End Sub窗体的Unload事件代码:Private Sub Form_Unload(Cancel As Integer)恢复数据环境的筛选 = adFilterNoneEnd Sub(四)学生基本情况维护中班级选择对话框的设计与实现:首先,再在基本控件中添加一个ADO Data控件,方法是在基本控件的空白处按鼠标右键,选择部件,在部件对话框中选择Microsoft ADO Data Control ,按确定按钮。这时,基本控件上就出现了ADO Data控件。ADO Data 控件使用 Microsoft
29、ActiveX 数据对象(ADO) 来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合 OLEDB 规范的数据源。使用 Visual Basic 的类模块也可以很方便地创建子集的数据提供者。它还有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使您可以用最少的代码创建数据库应用程序。然后,在窗体上添加各种控件,如图1-14设计屏幕。在图中,其主要控件、主要属性、控件说明如表1-5所示:图1-14 班级选择窗体设计图表1-5 控件、主要属性、控件说明表控件名称主要控件属性名称属性值功能说明Dialog
30、Caption班级选择对话框名称DialogAdodc名称Adodc1ConnectionstringStudent.mdb和数据表进行绑定Recordsourceselect * from 基本情况 group by 班级用SQL语句设置记录原并按班级分组VisibleFalse运行时不可见Datagrid名称Datagrid1DatasourceAdodc1把Adodc1设成数据源代码实现:选择按钮的Click事件代码:Private Sub Command1_Click()获取key值 = End Sub取消按钮的Click事件代码:Private Sub Command2_Click(
31、) = End Sub(五)学生成绩维护窗体的设计与实现:首先在工程中添加一个标准窗体并起名为Frmcjwh。再在窗体上添加一个Frame控件,并使用默认名称Frame1。之后用鼠标双击工程资源管理器中的数据环境Dataenvironment1,用鼠标把Command1拖到窗体的Frame1中来,因为默认Command2默认使用的是MSflexGrid网格不适用本例中,所以把它替换成DataGrid网格,DataGrid网格的使用如前。再把照片字段去掉,添加一个Image控件,并和Command1中的照片字段绑定。最后,添加几个命令按钮。窗体的设计如图1-15所示。在图中,其主要控件、主要属性
32、、控件说明如表1-6所示:图1-15 学生成绩维护窗体设计图表1-5 控件、主要属性、控件说明表控件名称主要控件属性名称属性值功能说明FrmcjwhCaption学生成绩维护名称FrmcjwhBorderStyle2 SizableMdichildTrue把此窗体作为子窗体WindowstateMaximized运行是最大化Datagrid名称Datagrid1DatasourceDataenvironment1把数据环境设成数据源DatamemberCommand2数据成员设成数据环境中的Command2命令Image名称Image1StretchTrue调整图片大小以适应该控件Enable
33、dFalse初始状态为不可用窗体的运行结果如图1-16所示:图1-16 学生成绩维护运行窗体学生成绩维护设计代码实现:在通用区域声明两个全局变量findxhstr和findbjstr,以便查找时使用:Public findxhstr As StringPublic findbjstr As String第一个按钮的Click事件代码:Private Sub Command1_Click()End Sub上一个按钮的Click事件代码:Private Sub Command2_Click() If Then End IfEnd Sub下一个按钮的Click事件代码:Private Sub Com
34、mand3_Click( )If Then End IfEnd Sub最后一个按钮的Click事件代码:Private Sub Command4_Click()End Sub添加成绩按钮的Click事件代码:Private Sub Command5_Click() = TrueEnd Sub查找按钮的Click事件代码:Private Sub Command6_Click() = = vbModal用Dialog1窗体的返回值还过滤数据环境If Then = 学号 = & findxhstr & End IfIf Then = 班级 = & findbjstr & End IfUnload D
35、ialog1End Sub打印按钮的Click事件代码:Private Sub Command7_Click()End SubDataGrid1的LostFocus事件代码:Private Sub DataGrid1_LostFocus()在DataGrid1失去焦点时,使其进入不添加状态 = FalseEnd Sub窗体的Load事件代码:Private Sub Form_Load()使Frame1在窗体装载时就处于水平居中 = / 2 - / 2End Sub窗体的Resize事件代码:Private Sub Form_Resize()使Frame1在窗体的大小发生改变时处于水平居中 =
36、/ 2 - / 2End Sub(六)学生成绩维护中查找对话框的设计与实现:此模块的实现和学生基本情况维护中班级选择对话框基本相似,在此只给出各个控件的主要属性和程序代码。窗体的设计如图1-17所示:图1-17 查找对话框的设计图其主要控件、主要属性、控件说明如表1-7所示:控件名称主要控件属性名称属性值功能说明DialogCaption查找对话框名称Dialog1Adodc名称Adodc1ConnectionstringStudent.mdb和数据表进行绑定Recordsourceselect * from 基本情况 group by 班级用SQL语句设置记录原并按班级分组Datagrid名
37、称Datagrid1DatasourceAdodc1把Adodc1设成数据源Label名称Label1Caption请出入学生学号:此对话框运行结果如图1-18所示:图1-18 对话框的运行结果此对话框运行时点击查找个人单选按钮时的结果如图1-19所示:图1-19 选择查找个人的运行结果此对话框运行时点击查找班级单选按钮时的结果如图1-20所示:图1-20 选择查找班级的运行结果查找对话框代码实现:窗体的Load事件代码:Private Sub Form_Load() = False = False = FalseEnd Sub确定按钮的Click事件代码:Private Sub OKButt
38、on_Click()If And Then = Trim()End IfIf Then = End IfEnd Sub取消按钮的Click事件代码:Private Sub CancelButton_Click()End Sub查找个人单选按钮的Click事件代码:Private Sub Option1_Click() = True = True = FalseEnd Sub查找个人单选按钮的Click事件代码:Private Sub Option2_Click() = False = False = TrueEnd Sub(七)报表Datareport1的设计与实现:DataReport 对象
39、与 Visual Basic 窗体类似,DataReport 对象同时具有一个可视的设计器和一个代码模块。可以使用设计器创建报表的布局。也可以向设计器的代码模块添加代码,以采用编程方式调整设计器中包含的控件或部分的格式。运行时,使用Show方法显示数据报表。 本例的报表实现的步骤如下:1. 选择工程菜单中的添加Data Report,添加一个数据报表,名称使用默认的Datareport1;2. 设定DataReport对象的DataSource属性为数据源为Environment1;3. 设定DataReport对象的DataMember属性为数据成员为Command1;4. 右键单击设计器,
40、并单击“检索结构”;5. 向相应的节添加相应的控件;报表Datareport1的设计界面如图1-21所示:图1-21 报表的设计图报表Datareport1的运行界面如图1-22所示:图1-22 报表的运行界面报表的结束(Terminate)事件代码:Private Sub DataReport_Terminate()因为报表结束时,指针指到数据表的开始标志,所以在报表结束时,让指针指到第一条记录End Sub(八)报表Datareport2的设计与实现: 报表Datareport2的设计方法同Datareport1基本相同,此处就不在叙述。在此,只给出设计界面和运行界面。报表Datareport2的设计界面如图1-23所示:图1-23 报表的设计界面报表Datareport2的运行界面如图1-24所示:图1-24 报表的运行界面(九)关于系统和系统帮助窗体的设计与实现:由于这两个窗体的设计很简单,所以在此只给出窗体的运行结果。关于系统窗体的运行窗体如图1-25所示:图1-25 关于系统的运行窗体系统帮助窗体的运行窗体如图1-26所示:图1-26 系统帮助的运行窗体