基于VB的学生信息管理系统的设计

时间:2022-09-02 10:44:50

基于VB的学生信息管理系统的设计

摘要:在VB6.0环境下,通过连接Access2000数据库,建立了一个学生管理系统。在这个系统里,可以实现学生学号,姓名,年龄,联系方式,照片等各种信息的录入,精确查找,模糊查找,更新,删除等操作。从程序的界面设计到源代码,都做了详尽的说明,适合初学者快速掌握信息管理系统开发的步骤。

关键词:VB;数据库;管理系统;access;查询

中图分类号:TP39 文献标识码:A文章编号:1009-3044(2008)35-2374-04

Designing of Student Information Management System by VB

HUANG Min

(Xuzhou Normal Higher School, Xuzhou 221116, China)

Abstract: It is designed for the establishment of student information managementsystem in vb6.0 by connecting Access2000 database. This system can realize Information Processing including data entry, query, update, delete and so on.The Information means the student's number,name,age, contact.From the interface design to the source code, it has shown a detailed description, which suitable for beginners to master the designing of system quickly.

Key words: vb; database; system of management; access; query

1 引言

基于数据库的管理系统,可以完成数据的输入,修改,删除,查询等。数据包含文本,数值,二进制等。很多人都觉得VB简单,但用VB开发一个项目,又无从下手,其实可以从最简单的系统做起,然后不断去完善这个系统,都是一个很好的学习过程,并且能够触类旁通,完成其它系统的开发与设计。

2 功能需求分析

学生管理系统采用Visual Basic6.0作为开发工具,后台数据库采用Assecc2000。系统开发的总体任务是实现学生信息管理的条理化,系统化。用户通过界面,完成对学生学号、姓名,年龄,照片、通讯地址,电话等信息的管理。可以对学生信息方便的实现输入,删除,修改,模糊查询,精确查询,在浏览记录时可以切换上一条,下一条,第一条和最后一条。

3 数据库建立与连接

3.1 数据库建立

针对学生信息管理系统的需求和目标,在Assecc2000中建立一个学生信息记录表,用来存放学生信息。字段名字和类型表1所示。并将学生的学号字段作为主键。

3.2 数据库连接

VB提供了多种与数据库连接的方式,这里使用数据控件(Data)。数据控件(Data)提供了一种方便地访问数据库中数据的方法,使用数据控件无须编写代码就可以对VB所支持的各种类型的数据库执行大部分数据访问操作。

数据控件本身不能显示和直接修改记录,但是可以通过与数据控件相关联的数据约束控件中显示各个记录。

4 用户界面设计

在Visual Basic6.0环境中,建立一个标准的exe工程。学生的学号,姓名,年龄,通讯地址,邮政编码,电话号码,电子邮件,qq号码用文本框控件来显示,名称分别为text1,text2…text8, 他们分别与数据库中的相应字段绑定。用图片框控件Picture1来显示学生的照片,它与数据库中的照片字段绑定。选择数据控件data1,并设置它的属性,使得它与数据库连接。实现记录的第一条,上一条,下一条,最后一条的切换以及添加记录,删除记录和编辑记录的操作用按钮来控制实现,名称分别为command1,command2…command7。对按不同的条件进行查询,这里使用了组合框Combo1和Combo2,分别用来选择精确查找和模糊查找的条件。学生信息的界面如图1所示。

5 代码

程序的实现主要使用了data控件的常用方法。对于精确查找和模糊查找中的“查找第一个”与“查找下一个”按钮的事件中,它们所使用的查找条件是一样的,所以需要先定义窗体变量。

5.1 定义窗体变量

Dim s1 As String

Dim s2 As String

5.2 照片的输入

静态设置:通过一个图片编辑程序将照片装入剪贴板,等待从剪贴板复制到Picture1控件。

动态设置:通过Picture1_DblClick事件来完成剪贴板到Picture1控件的复制,当移动记录指针时,Picture1控件内的照片存入数据库。

Private Sub Picture1_DblClick()

Picture1.Picture = Clipboard.GetData

End Sub

5.3 记录的跳转

Private Sub Command1_Click()

'移动到第一条

Data1.Recordset.MoveFirst

Command1.Enabled = False

Command2.Enabled = False

Command3.Enabled = True

Command4.Enabled = True

End Sub

Private Sub Command2_Click()

'移动到上一条

Data1.Recordset.MovePrevious

Command3.Enabled = True

Command4.Enabled = True

If Data1.Recordset.BOF = True Then

Data1.Recordset.MoveFirst

Command1.Enabled = False

Command2.Enabled = False

End If

End Sub Private Sub Command3_Click()

'移动到后一条

Data1.Recordset.MoveNext

Command1.Enabled = True

Command2.Enabled = True

If Data1.Recordset.EOF = True Then

Data1.Recordset.MoveLast

Command3.Enabled = False

Command4.Enabled = False

End If

End Sub

Private Sub Command4_Click()

'移动到最后一条

Data1.Recordset.MoveLast

Command1.Enabled = True

Command2.Enabled = True

Command3.Enabled = False

Command4.Enabled = False

End Sub

Private Sub Command5_Click()

If Command9.Caption = "确 定" Then

'更新记录集

Data1.UpdateRecord

'移动到最后一条记录

Data1.Recordset.MoveLast

Command5.Caption = "添加记录"

Else

'添加新的记录

Data1.Recordset.AddNew

Command5.Caption = "确 定"

End If

End Sub

Private Sub Command6_Click()

'删除记录

If Data1.Recordset.EOF Then

Else

Data1.Recordset.Delete

Data1.Recordset.MoveLast

End If

End Sub

Private Sub Command7_Click()

Data1.Recordset.Edit

Data1.Recordset.Update

End Sub

5.5 记录的查找

Private Sub Command8_Click()

'精确查找第一个符合条件的记录,用窗体变量s1来表示查找的条件

s1 = InputBox("请输入要查找的内容")

If s1 = "" Then

MsgBox "请输入查询内容!", 48, "提示"

Exit Sub

End If

If Combo1.Text = "姓名" Then

Data1.Recordset.FindFirst "姓名=" & "'" & s1 & "'"

ElseIf Combo1.Text = "学号" Then

Data1.Recordset.FindFirst "学号=" & "'" & s1 & "'"

ElseIf Combo1.Text = "年龄" Then

Data1.Recordset.FindFirst "年龄" & "'" & s1 & "'"

ElseIf Combo1.Text = "电话号码" Then

Data1.Recordset.FindFirst "电话号码=" & "'" & s1 & "'"

ElseIf Combo1.Text = "qq号码" Then

Data1.Recordset.FindFirst "qq号码=" & "'" & s1 & "'"

End If

If Data1.Recordset.NoMatch Then

MsgBox "没有符合条件的记录", 64, "提示"

End If

End Sub

Private Sub Command9_Click()

'精确查找下一个符合条件的记录,由于和“查找第一个”的条件相同,所以同样使用s1作为查找的条件。

If s1 = "" Then

MsgBox "请输入查询内容!", 48, "提示"

Exit Sub

End If

If Combo1.Text = "姓名" Then

Data1.Recordset.Findnext "姓名=" & "'" & s1 & "'"

ElseIf Combo1.Text = "学号" Then

Data1.Recordset.Findnext "学号=" & "'" & s1 & "'"

ElseIf Combo1.Text = "年龄" Then

Data1.Recordset.Findnext "年龄" & "'" & s1 & "'"

ElseIf Combo1.Text = "电话号码" Then

Data1.Recordset.Findnext "电话号码=" & "'" & s1 & "'"

ElseIf Combo1.Text = "qq号码" Then

Data1.Recordset.Findnext "qq号码=" & "'" & s1 & "'"

End If

If Data1.Recordset.NoMatch Then

MsgBox "没有符合条件的记录", 64, "提示"

End If

End Sub

Private Sub Command10_Click()

'模糊查找第一个符合条件的记录,用窗体变量s2来表示模糊查找的条件

s2 = InputBox("请输入")

If s2 = "" Then

MsgBox "请输入查询内容!", 48, "提示"

Exit Sub

End If

If Combo2.Text = "姓名" Then

Data1.Recordset.FindFirst "姓名 like " & "'*" & s2 & "*'"

ElseIf Combo2.Text = "学号" Then

Data1.Recordset.FindFirst "学号 like " & "'*" & s2 & "*'"

ElseIf Combo2.Text = "年龄" Then

Data1.Recordset.FindFirst "年龄 like " & "'*" & s2 & "*'"

ElseIf Combo2.Text = "电话号码" Then

Data1.Recordset.FindFirst "电话号码 like " & "'*" & s2 & "*'"

ElseIf Combo2.Text = "qq号码" Then

Data1.Recordset.FindFirst "qq号码 like " & "'*" & s2 & "*'"

End If

If Data1.Recordset.NoMatch Then

MsgBox "没有符合条件的记录", 64, "提示"

End If

End Sub

Private Sub Command11_Click()

'模糊查找下一个符合条件的记录,由于和模糊查找中的“查找第一个”的条件相同,所以同样使用s2作为查找的条件。

If s2 = "" Then

MsgBox "请输入查询内容!", 48, "提示"

Exit Sub

End If

If Combo2.Text = "姓名" Then

Data1.Recordset.Findnext "姓名 like " & "'*" & s2 & "*'"

ElseIf Combo2.Text = "学号" Then

Data1.Recordset.Findnext "学号 like " & "'*" & s2 & "*'"

ElseIf Combo2.Text = "年龄" Then

Data1.Recordset.Findnext "年龄 like " & "'*" & s2 & "*'"

ElseIf Combo2.Text = "电话号码" Then

Data1.Recordset.Findnext "电话号码 like " & "'*" & s2 & "*'"

ElseIf Combo2.Text = "qq号码" Then

Data1.Recordset.Findnext "qq号码 like " & "'*" & s2 & "*'"

End If

If Data1.Recordset.NoMatch Then

MsgBox "没有符合条件的记录", 64, "提示"

End If

End Sub

6 结束语

本系统操作界面直观,简洁,使用方便,只要拥有VB基础,就可以完全理解整个系统开发的思想。通过本项目的实践训练,编程初学者可以轻松愉悦的练习中,把零散的知识点贯穿起来,并具有系统开发的经验。当然,在实际工

作中,系统的完善和性能的优化还需要逐步提高,从而真正的提高信息管理的效率。

参考文献:

[1] 刘恩涛,等.VB6.0编程技巧与实例分析[M].北京:中国水利水电出版社,1999.

[2] 刘炳文.Visual Basic 6.0程序设计[M].北京:人民邮电出版社,1999.

[3] 伍俊良.VB6控件应用实例教程[M].北京:北京希望电子出版社,2002.

上一篇:构建无线校园网络平台之研究 下一篇:基于单片机AT89C52的血流信号采集系统的设计