VB+Access设计图书管理系统5篇

时间:2019-05-14 03:27:05下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《VB+Access设计图书管理系统》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《VB+Access设计图书管理系统》。

第一篇:VB+Access设计图书管理系统

VB+Access设计图书管理系统一、需求分析

在进行一个项目的设计之前,先要进行必要的需求分析。

现某图书馆需要管理其各种人员和图书信息,希望实现办公的信息化,通过建立一个图书管理系统来管理图书。其完成的功能如下:

(1)可以实现图书的登记、借阅和赔偿的管理。

(2)可以实现对图书的各种信息的查询,包括逐个浏览,以及对图书信息的增加、删除和编辑操作。另外,可以根据输入的信息来检索某个图书的信息。

(3)可以实现对管理人员的投诉管理。

(4)可以实现对值班人员的管理。

系统的功能模块图如图1所示。

本实例根据上面的设计规划出的实体有图书登记实体、图书借阅实体、图书赔偿实体、查询输出实体、值班管理实体、投诉管理实体。各个实体具体的描述E-R图如下。

图书登记实体E-R图如图2所示。

图书借阅实体E-R图如图3所示。

图1 系统的功能模块图

图2 图书登记实体E-R图

图3 图书借阅实体E-R图

图书赔偿实体E-R图如图4所示。

图4 图书赔偿实体E-R图

投诉管理实体E-R图如图5所示。

图5 投诉管理实体E-R图

值班管理实体E-R图如图6所示。

图6 值班管理实体E-R图

查询输出实体E-R图如图7所示。

图7 查询输出实体E-R图

二、结构设计

根据上面的需求分析,设计好数据库系统,然后开发应用程序可以考虑的窗体的系统,每一个窗体实现不同的功能,可以设计下面的几个模块。

● 图书管理模块:用来实现图书的登记、借阅、赔偿。

● 图书资料模块:用来实现图书的查询输出。

● 值班管理模块:用来实现管理人员的值班浏览。

● 投诉管理模块:用来实现对管理人员的投诉管理。

● 系统管理模块:用来实现用户的增加、删除和修改等操作。

三、数据库设计

这里的数据库采用Access,用ADO作为连接数据对象。

1、建立Access 数据库

启动Access,建立一个空的数据库book.mdb,如图8所示。

使用程序设计器建立系统需要的表格如下。

图书登记表,如图9所示。

图8 建立数据库book.mdb 图9 图书登记表

图书借阅表,如图10所示。图书赔偿表,如图11所示。

图10 图书借阅表 图11 图书赔偿表

图书资料表,如图12所示。系统管理表,如图13所示。

图12 图书资料表 图13 系统管理表

投诉管理表,如图14所示。

图14 投诉管理表

值班管理表,如图15所示。

图15 值班管理表

2、连接数据

在Visual Basic环境下,选择“工程”→“引用”命令,在随后出现的对话框中选择“Microsoft ActiveX Data Objects 2.0 Library”,然后单击“确定”按钮,如图16所示。

图16 引用ADO连接数据库

在程序设计的公共模块中,先定义ADO连接对象。语句如下:

Public conn As New ADODB.Connection ' 标记连接对象

然后在子程序中,用如下的语句即可打开数据库:

Dim connectionstring As String

connectionstring = “provider=Microsoft.Jet.oledb.4.0;” &_

“data source=book.mdb”

conn.Open connectionstring

3、设置ODBC

VB的ADO对象是通过ODBC来访问数据库,所以还要建立ODBC数据引擎接口。

打开控制面板中的“管理工具”→“数据源”(ODBC),出现如图17所示的对话框。

图17 ODBC对话框

单击“添加”按钮,出现“创建新数据源”对话框,如图18所示。

图18 “创建新数据源”对话框

选择Microsoft Access Driver(*.mdb),单击“完成”按钮,出现如图19所示对话框。

图19 设置连接数据源

在“数据源名”文本框中添加一个名字,单击“确定”按钮完成系统默认连接设置。然后在ODBC对话框中单击“确定”按钮完成ODBC设置。

界面设计

设计好的界面如图20所示。

图20 图书管理系统界面

这是一个多文档界面(MDI)应用程序,可以同时显示多个文档,每个文档显示在各自的窗体中。MDI 应用程序中常有包含子菜单的“窗体”选项,用于在窗体或文档之间进行切换。

菜单应用程序中,有5个菜单选项,每个选项对应着E-R图的一个子项目。

1、创建主窗体

首先创建一个工程,命名为图书管理系统,选择“工程”→“添加MDI窗体”命令,则在项目中添加了主窗体。该窗体的一些属性如表1所示。

表1 主窗体的属性

Caption Name Menu Windowstate

性值

图书管理系统 Main Mainmenu1 Maxsize

Windowstate的值为Maxsize,即程序启动之后自动最大化。

将“菜单”组件从“工具箱”拖到窗体上。创建一个 Text 属性设置为“文件”的顶级菜单项,且带有名为“关闭”的子菜单项。类似地创建一些菜单项,如表2所示。

表2 菜 单 项 表

菜 单 名 称 MenuItem1 MenuItem2 MenuItem3 MenuItem4 MenuItem5 MenuItem6 MenuItem7 MenuItem8 MenuItem9 MenuItem10 MenuItem11 MenuItem12

Text属性 图书管理 图书登记 图书借阅 图书赔偿 图书资料 查询输出 值班管理 投诉管理 系统管理 增加用户 修改密码 退出

功 能 描 述

顶级菜单,包含子菜单 调出图书登记窗体 调出图书借阅窗体 调出图书赔偿窗体 顶级菜单,包含子菜单 调出查询输出窗体 顶级菜单,没有子菜单 顶级菜单,没有子菜单 顶级菜单,包含子菜单 调出用户窗体 调出密码窗体 系统退出

主窗体如图21所示。

图21 主窗体

2、创建各子窗体

选择“工程”→“添加窗体”命令,添加子窗体。

在新建Visual Basic工程时自带的窗体中,将其属性MIDChild改成True,则这个窗体成为MID窗体的子窗体。

在这个项目中,要创建的子窗体如表3所示。

表3 所有子窗体

子 窗 体 名 图书登记 图书借阅 图书赔偿 增加新用户 查询输出 登录系统 修改密码

Text frmdengji frmjieyue frmpeichang frmadduser frmfind frmlogin frmchangepwd

下面分别给出这些子窗体,以及它们所使用的控件。

(1)图书登记子窗体如图22所示,其控件如表4所示。

图22 图书登记子窗体

表4 图书登记子窗体控件

控 件 类 别

控件Name Label1 Label2 Label

Label3 Label4 Label5 Text1 Text2 TextBox

Text3 Text4 Text5 Command1 Command2 Command3 CommandButton

Command4 Command5 Command6 Command7 ADO DataGrid

DataAdodc1 DataGrid1

控件Text 编号 书名 类型 购买日期 定价(空)(空)(空)(空)(空)增加记录 删除记录 下一条 上一条 第一条 最后一条 退出(空)(空)

图书借阅和图书赔偿子窗体分别如图23和图24所示,因为它们的控件与图书登记子窗体的雷同,在此不作介绍。

图23 图书借阅子窗体

图24 图书赔偿子窗体

(2)增加用户子窗体如图25所示,其控件如表5所示。

图25 增加用户子窗体

表5 增加用户子窗体控件

控 件 类 别

控件Name 控件Text

Label1 Label

Label2 Label3 Label4 Text1 TextBox ComboBox CommandButton

Text2 Text3 Comb1 Commandl Command2

输入用户名 输入密码 确认密码 选择权限(空)(空)(空)(空)确定 取消

(3)修改密码子窗体如图26所示。

图26 修改密码子窗体

(4)库房管理子窗体如图27所示。

图27 库房管理子窗体

其控件如表6所示。

表6 库房管理子窗体控件

控 件 类 别 TextBox ComboBox MSFlexGrid

控件Name Text1 Combo1 MSFlexGrid1

控件Text(空)

(5)查询子窗体如图28所示,其控件如表7所示。

图28 查询子窗体

表7 查询子窗体控件

控 件 类 别 OptionButton

控件Name Option1 Option2 Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10

控件Text 按编号查询 按购买日期查询 从 到 从 年 月 日 到 年 月 日(空)(空)(空)(空)(空)(空)(空)(空)查询 取消 Label Combo(0)ComboBox Combo(1)ComboBox Comboy(0)ComboBox Comboy(1)ComboBox Combom(0)ComboBox Combom(1)ComboBox Combod(0)ComboBox Combod(1)ComboBox CommandButton

Combo1 Combo1 Comboy Comboy Combom Combom Combod Combod Command1 Command2

(6)用户登录子窗体如图29所示。

(7)值班管理子窗体如图30所示,其控件如表8所示。

图29 用户登录子窗体 图30 值班管理子窗体

(8)投诉管理子窗体如图31所示,其控件如表9所示。

图31 投诉管理子窗体

建立公共模块

1、显示目录

建立公共模块可以提高代码的效率,同时使得修改和维护代码都很方便。

创建公共模块的步骤如下:

(1)在菜单中选择“工程”→“添加模块”命令,则出现模块对话框,如图32所示。

(2)选择模块图标后,单击“打开”按钮,则模块已经添加到项目中了。默认情况下名为Module1。

图32 模块对话框

(3)在模块中定义整个项目的公共变量。

Public conn As New ADODB.Connection ' 标记连接对象

Public userID As String ' 标记当前用户ID

Public userpow As String ' 标记用户权限

Public find As Boolean ' 标记查询

Public sqlfind As String ' 查询语句

Public rs_data1 As New ADODB.Recordset

Public findok As Boolean

Public frmdata As Boolean

Public Const keyenter = 13 ' enter键的ASCII码

在主窗体添加完菜单之后,就要为各个子菜单创建事件处理程序。主窗体代码

在本项目中,子菜单事件都是Click事件,这里先给出主窗体部分的代码。

下面是响应“增加用户”子菜单Click事件,调出增加用户窗体代码。

Private Sub adduser_Click()

frmadduser.Show

End Sub

下面是响应“查询输出”子菜单Click事件,调出查询输出窗体代码。

Private Sub chaxunshuchu_Click()

frmfind.Show

End Sub

下面是响应“退出”子菜单Click事件,调出退出窗体代码。

Private Sub exit_Click()

Unload Me

End Sub 下面是响应“图书登记”子菜单Click事件,调出图书登记窗体代码。

Private Sub checkin_Click()

frmdengji.Show

End Sub

下面是响应“修改密码”子菜单Click事件,调出修改密码窗体代码。

Private Sub changepwd_Click()

frmchangepwd.Show

End Sub

下面是响应“图书借阅”子菜单Click事件,调出图书借阅窗体代码。

Private Sub borrow_Click()

frmjieyue.Show

End Sub

下面是响应“图书赔偿”子菜单Click事件,调出图书赔偿窗体代码。

Private Sub tushupeichang_Click()

frmpeichang.Show 1

End Sub

下面是响应“值班管理”菜单Click事件,调出值班管理窗体代码。

Private Sub zhibanguanli_Click()

frmzhiban.Show 1

End Sub

下面是响应“投诉管理”子菜单Click事件,调出投诉管理窗体代码。

Private Sub tousuguanli_Click()

frmtousu.Show 1

End Sub

2、各子窗体的代码

在各个子窗体建立好后,就可以根据各个子窗体的功能给它们添加相应代码了。

(1)图书登记子窗体代码

本窗体用来填写图书登记的信息,用ADO来连接数据库,是本窗体的重点。采用MDI的子程序,所以运行后,它出现在主程序的界面下,如图33所示。

图33 图书登记子窗体

按钮控件要求先填写基本信息,然后与数据库信息比较。Private Sub Command1_Click()On Error GoTo adderr Text1.SetFocus Adodc1.Recordset.AddNew Exit Sub adderr: MsgBox Err.Description End Sub Private Sub Command2_Click()On Error GoTo deleteerr With Adodc1.Recordset If Not.EOF And Not.BOF Then If MsgBox(“删除当前记录吗?”, vbYesNo + vbQuestion)= vbYes Then.Delete.MoveNext If.EOF Then.MoveLast End If End If End With Exit Sub deleteerr: MsgBox Err.Description End Sub Private Sub Command3_Click()Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox “这是最后一条记录”, vbOKCancel + vbQuestion Adodc1.Recordset.MoveLast End If

End Sub

Private Sub Command4_Click()

Adodc1.Recordset.MovePrevious

If Adodc1.Recordset.BOF Then

MsgBox “这是第一条记录”, vbOKCancel + vbQuestion

Adodc1.Recordset.MoveFirst

End If

End Sub

Private Sub Command5_Click()

If Adodc1.Recordset.EOF Then

MsgBox “记录空”, vbOKCancel + vbQuestion

End

Else

Adodc1.Recordset.MoveFirst

Exit Sub

End Sub

Private Sub Command6_Click()

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox “空记录”, vbOKCancel + vbQuestion

End

Else

Adodc1.Recordset.MoveLast

End If

End Sub

Private Sub Command7_Click()

MDIForm1.Show

frmdengji.Hide

End Sub 图书借阅和图书赔偿子窗体运行后如图34和图35所示,因为它们的代码和图书登记子窗体的代码雷同,在此不做重复。

图34 图书借阅子窗体运行效果

示。

图35 图书赔偿子窗体运行效果

(2)增加用户子窗体代码

增加用户子窗体是用来增加用户的用户名、密码和权限的。其运行效果如图36所 单击“确定”按钮后,还要返回一个信息框,提示成功信息,如图37所示。

图36 增加用户子窗体运行效果 图37 成功信息框

窗体部分代码的思路是,收集输入的表中的字符串,然后与数据库中的系统的用户数据比较,如果不存在,则允许添加。

Private Sub Command1_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 系统管理“

rs_add.Open sql, conn, adOpenKeyset, adLockPessimistic

While(rs_add.EOF = False)

If Trim(rs_add.Fields(0))= Trim(Text1.Text)Then

MsgBox ”已有这个用户“, vbOKOnly + vbExclamation, ”“

Text1.SetFocus

Text1.Text = ”“

Text2.Text = ”“

Text3.Text = ”“

Combo1.Text = ”“

Exit Sub

Else

rs_add.MoveNext

End If

Wend

If Trim(Text2.Text)<> Trim(Text3.Text)Then

MsgBox ”两次密码不一致“, vbOKOnly + vbExclamation, ”“

Text2.SetFocus

Text2.Text = ”“

Text3.Text = ”“

Exit Sub

ElseIf Trim(Combo1.Text)<> ”system“ And Trim(Combo1.Text)<> ”guest“ Then

MsgBox ”请选择正确的用户权限“, vbOKOnly + vbExclamation, ”“

Combo1.SetFocus

Combo1.Text = ”“

Exit Sub

Else

rs_add.AddNew

rs_add.Fields(0)= Text1.Text

rs_add.Fields(1)= Text2.Text

rs_add.Fields(2)= Combo1.Text

rs_add.Update

rs_add.Close 下面是返回成功信息对话框的代码:

MsgBox ”添加用户成功“, vbOKOnly + vbExclamation, ”“

Unload Me

End If

End If

End Sub

(3)修改密码子窗体代码

修改密码子窗体是用来修改用户密码的。其运行效果如图38所示。

图38 修改密码子窗体运行效果

在“确定”按钮的Click事件中添加如下代码: Private Sub Command1_Click()Dim rs_chang As New ADODB.Recordset

Dim sql As String If Trim(Text1.Text)<> Trim(Text2.Text)Then MsgBox ”密码不一致!“, vbOKOnly + vbExclamation, ”“ Text1.SetFocus Text1.Text = ”“ Text2.Text = ”“ Else sql = ”select * from 系统管理 where 用户名='“ & userID & ”'“ rs_chang.Open sql, conn, adOpenKeyset, adLockPessimistic rs_chang.Fields(1)= Text1.Text rs_chang.Update rs_chang.Close MsgBox ”密码修改成功“, vbOKOnly + vbExclamation, ”“ Unload Me End If End Sub

在上述代码中,首先比较两个表中的数据是否一致,然后用rs_chang.Fields(1)= Text1.Text语句把代码输入到数据库中。最后,用MsgBox ”密码修改成功“, vbOKOnly + vbExclamation,”“语句弹出一个信息框,告诉修改成功,如图39所示。

显示目录

(4)库房管理子窗体代码

库房管理子窗体是用来管理图书资料的。其运行效果如图40所示。

图40 库房管理子窗体

实际上,设计库房管理子窗体的程序代码与增加用户子窗体的代码在思路上是完全相同的。就是在DataGrid的文本框中显示图书进出的清单,最后把填写的明细存储到数据库中。

检查代码如下:

Option Explicit

Else

Dim rs_data2 As New ADODB.Recordset Dim select_row As String Dim showgrid2 As Boolean Dim rs_custom As New ADODB.Recordset Dim jinchu As String ' 进出库标志

Dim modify As Boolean ' 修改状态标志 Private Sub cmdexit_Click()Unload Me End Sub Private Sub Form_Load()On Error GoTo loaderror Dim sql As String sql = ”select * from 图书资料“ rs_custom.CursorLocation = adUseClient rs_custom.Open sql, conn, adOpenKeyset, adLockPessimistic While Not rs_custom.EOF Combo1.AddItem rs_custom.Fields(0)rs_custom.MoveNext Wend findok = True modify = False ' 非修改状态 showgrid2 = False displaygrid1 ' 调用显示Datagrid1子程序 loaderror: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub '显示msflexgrid1子程序 Public Sub displaygrid1()Dim i As Integer On Error GoTo displayerror setgrid setgridhead MSFlexGrid1.Row = 0 If Not rs_data1.EOF Then rs_data1.MoveFirst Do While Not rs_data1.EOF MSFlexGrid1.Row = MSFlexGrid1.Row + 1 MSFlexGrid1.Col = 0 If Not IsNull(rs_data1.Fields(0))Then MSFlexGrid1.Text = rs_data1.Fields(0)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 1 Else

Else

Else

Else

Else

If Not IsNull(rs_data1.Fields(1))Then MSFlexGrid1.Text = rs_data1.Fields(1)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 2 If Not IsNull(rs_data1.Fields(2))Then MSFlexGrid1.Text = rs_data1.Fields(2)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 3 If Not IsNull(rs_data1.Fields(3))Then MSFlexGrid1.Text = rs_data1.Fields(3)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 4 If Not IsNull(rs_data1.Fields(4))Then MSFlexGrid1.Text = rs_data1.Fields(4)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 5 If Not IsNull(rs_data1.Fields(5))Then MSFlexGrid1.Text = rs_data1.Fields(5)

MSFlexGrid1.Text = ”“ rs_data1.MoveNext Loop End If displayerror: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub Public Sub setgrid()Dim i As Integer On Error GoTo seterror With MSFlexGrid1.ScrollBars = flexScrollBarBoth.FixedCols = 0.Rows = rs_data1.RecordCount + 1.Cols = 6.SelectionMode = flexSelectionByRow For i = 0 To.Rows1.ColWidth(i)= 1300 Next i End With Exit Sub

seterror: MsgBox Err.Description End Sub Public Sub setgridhead()On Error GoTo setheaderror MSFlexGrid1.Row = 0 MSFlexGrid1.Col = 0 MSFlexGrid1.Text = ”编号“ MSFlexGrid1.Col = 1 MSFlexGrid1.Text = ”购买日期“ MSFlexGrid1.Col = 2 MSFlexGrid1.Text = ”书名“ MSFlexGrid1.Col = 3 MSFlexGrid1.Text = ”类型“ MSFlexGrid1.Col = 4 MSFlexGrid1.Text = ”定价“ MSFlexGrid1.Col = 5 MSFlexGrid1.Text = ”备注“ Exit Sub setheaderror: MsgBox Err.Description End Sub Private Sub Form_Unload(Cancel As Integer)findok = False rs_data1.Close rs_custom.Close End Sub Private Sub MSFlexGrid1_Click()On Error GoTo griderror Dim getrow As Long getrow = MSFlexGrid1.Row If MSFlexGrid1.Rows = 1 Then MsgBox ”无相关记录“, vbOKOnly + vbExclamation, ”“ Else select_row = MSFlexGrid1.TextMatrix(getrow, 0)End If griderror: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub Public Sub showdata()With MSFlexGrid2.Rows = rs_data2.RecordCount + 1

.Row = 0

If Not rs_data2.EOF Then

rs_data2.MoveFirst

Do While Not rs_data2.EOF

.Row =.Row + 1

.Col = 0

If Not IsNull(rs_data2.Fields(0))Then.Text = rs_data2.Fields(0)Else.Text = ”“

.Col = 1

If Not IsNull(rs_data2.Fields(1))Then.Text = rs_data2.Fields(1)Else.Text = ”“

.Col = 2

If Not IsNull(rs_data2.Fields(2))Then.Text = rs_data2.Fields(2)Else.Text = ”“

.Col = 3

If Not IsNull(rs_data2.Fields(3))Then.Text = rs_data2.Fields(3)Else.Text = ”“

.Col = 4

If Not IsNull(rs_data2.Fields(4))And CDbl(rs_data2.Fields(4))< 0 Then

.Text =-CDbl(rs_data2.Fields(4))

Else

.Text = rs_data2.Fields(4)

End If

.Col = 5

If Not IsNull(rs_data2.Fields(5))Then.Text = rs_data2.Fields(5)Else.Text = ”“

.Col = 6

If Not IsNull(rs_data2.Fields(6))Then.Text = rs_data2.Fields(6)Else.Text = ”“

.Col = 7

If Not IsNull(rs_data2.Fields(7))And CDbl(rs_data2.Fields(4))< 0 Then

.Text =-CDbl(rs_data2.Fields(7))

Else

.Text = rs_data2.Fields(7)

End If

.Col = 8

If Not IsNull(rs_data2.Fields(8))Then.Text = rs_data2.Fields(8)Else.Text = ”“

rs_data2.MoveNext

Loop

rs_data2.MoveLast

End If

End With

End Sub(5)查询子窗体代码

查询子窗体是用来查询库房中图书资料明细的。其运行效果如图41所示。

图41 查询子窗体运行效果

在列表框中给出编号或年月日后,“查询”按钮的Click事件将给出与数据库查找比较的结果。

Private Sub Command1_Click()

On Error GoTo cmderror

Dim find_date1 As String

Dim find_date2 As String

If Option1.Value = True Then

sqlfind = ”select * from 图书资料 where 编号 between '“ & _

Combo1(0).Text & ”'“ & ” and “ & ”'“ & Combo1(1).Text & ”'“

End If

If Option2.Value = True Then

find_date1 = Format(CDate(Comboy(0).Text & ”-“ & _

Combom(0).Text & ”-“ & Combod(0).Text), ”yyyy-mm-dd“)

find_date2 = Format(CDate(Comboy(1).Text & ”-“ & _

Combom(1).Text & ”-“ & Combod(1).Text), ”yyyy-mm-dd“)

sqlfind = ”select * from 图书资料 where 购买日期 between #“ & _

find_date1 & ”#“ & ” and“ & ” #“ & find_date2 & ”#“

End If

rs_data1.Open sqlfind, conn, adOpenKeyset, adLockPessimistic

frmdatamanage.displaygrid1

Unload Me

cmderror:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

运行查询子窗体时,组合框中就已经从数据库中提取了货单号和年月日两个待查条件。

Dim i As Integer

Dim sql As String

If findok = True Then

rs_data1.Close

End If

sql = ”select * from 图书资料 order by 编号 desc“

rs_find.CursorLocation = adUseClient

rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_find.EOF = False Then ' 添加编号 With rs_find Do While Not.EOF Combo1(0).AddItem.Fields(0)Combo1(1).AddItem.Fields(0).MoveNext Loop End With End If For i = 2001 To 2005 ' 添加年 Comboy(0).AddItem i Comboy(1).AddItem i Next i For i = 1 To 12 ' 添加月 Combom(0).AddItem i Combom(1).AddItem i Next i For i = 1 To 31 ' 添加日 Combod(0).AddItem i Combod(1).AddItem i Next i End Sub 查询完毕后,输出查询结果,如图42所示。

图42 查询结果 显示目录

(6)用户登录子窗体代码

运行的用户登录子窗体如图43所示。

图43 运行的用户登录子窗体

在本项目中,用户登录子窗体是运行的第一个界面,它的作用是检查用户名和密码是否正确。由于用户的资料是存放在数据库中,所以在启动该子窗体时,就已经连接了数据库。其代码如下:

Private Sub Form_Load()

Dim connectionstring As String

connectionstring = ”provider=Microsoft.Jet.oledb.4.0;“ & _

”data source=book.mdb“

conn.Open connectionstring

cnt = 0

End Sub

“确定”按钮的作用是检查输入的数据是否与数据库中的数据一致。

Private Sub Command1_Click()

Dim sql As String

Dim rs_login As New ADODB.Recordset

If Trim(txtuser.Text)= ”“ Then ' 判断输入的用户名是否为空

MsgBox ”没有这个用户“, vbOKOnly + vbExclamation, ”“

txtuser.SetFocus

Else

sql = ”select * from 系统管理 where 用户名='“ & txtuser.Text & ”'“

rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic

If rs_login.EOF = True Then

MsgBox ”没有这个用户“, vbOKOnly + vbExclamation, ”“

txtuser.SetFocus

Else ' 检验密码是否正确

用户名和密码通过后,要关闭本窗体并打开主窗体。

If Trim(rs_login.Fields(1))= Trim(txtpwd.Text)Then

userID = txtuser.Text

userpow = rs_login.Fields(2)

rs_login.Close

Unload Me

MDIForm1.Show

Else

MsgBox ”密码不正确“, vbOKOnly + vbExclamation, ”“

txtpwd.SetFocus

End If

End If

End If

' 只能输入3次

cnt = cnt + 1

If cnt = 3 Then

Unload Me

End If

Exit Sub

End Sub(7)值班管理子窗体代码

值班管理子窗体的作用是把值班人员的时间安排形成列表。运行的值班管理子窗体如图44所示。

图44 运行的值班管理子窗体

先定义连接数据库的变量:

Option Explicit

Dim rs_zhiban As New ADODB.Recordset

然后列出窗体部分的代码。

Private Sub cmdadd_Click()

On Error GoTo adderror

If cmdadd.Caption = ”新增记录“ Then ' 当此按钮的状态为为“增加记录”时

cmdadd.Caption = ”确定“ ' 按钮名称改“确定”

cmddel.Enabled = False

DataGrid1.AllowAddNew = True

DataGrid1.AllowUpdate = True ' 设定DataGrid可以增加记录

Else

If Not IsNull(DataGrid1.Bookmark)Then

If Not IsDate(Trim(DataGrid1.Columns(”值班开始日期“).CellText(DataGrid1.Bookmark)))Then

MsgBox ”请按照格式yyyy-mm-dd输入值班开始日期“, vbOKOnly + vbExclamation, ”“

Exit Sub

End If

If Not IsDate(Trim(DataGrid1.Columns(”值班开始时间“).CellText(DataGrid1.Bookmark)))Then

MsgBox ”请按照格式hh-mm输入值班开始时间“, vbOKOnly + vbExclamation, ”“

Exit Sub

End If

If Not IsDate(Trim(DataGrid1.Columns(”值班截止日期“).CellText(DataGrid1.Bookmark)))Then

MsgBox ”请按照格式yyyy-mm-dd输入值班截止日期“, vbOKOnly + vbExclamation, ”“

Exit Sub

End If

If Not IsDate(Trim(DataGrid1.Columns(”值班截止时间“).CellText(DataGrid1.Bookmark)))Then

MsgBox ”请按照格式hh-mm输入值班截止时间“, vbOKOnly + vbExclamation, ”“

Exit Sub

End If

If Trim(DataGrid1.Columns(”值班人“).CellText(DataGrid1.Bookmark))= ”“ Then

MsgBox ”值班人不能为空!“, vbOKOnly + vbExclamation, ”“

Exit Sub

End If

rs_zhiban.Update MsgBox ”添加信息成功!“, vbOKOnly + vbExclamation, ”“

DataGrid1.AllowAddNew = False

DataGrid1.AllowUpdate = False

Else

MsgBox ”没有添加信息!“, vbOKOnly + vbExclamation, ”“

End If

cmdadd.Caption = ”新增记录“

cmddel.Enabled = True

End If

adderror:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Private Sub cmdcancel_Click()

Unload Me

MDIForm1.Show

End Sub

Private Sub cmddel_Click()

Dim answer As String

On Error GoTo delerror

answer = MsgBox(”确定要删除吗?“, vbYesNo, ”“)

If answer = vbYes Then

DataGrid1.AllowDelete = True

rs_zhiban.Delete

rs_zhiban.Update

DataGrid1.Refresh

MsgBox ”成功删除!“, vbOKOnly + vbExclamation, ”“

DataGrid1.AllowDelete = False

Else

Exit Sub

End If

delerror:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Private Sub Form_Load()

Dim sql As String

On Error GoTo loaderror

sql = ”select * from 值班管理“

rs_zhiban.CursorLocation = adUseClient

rs_zhiban.Open sql, conn, adOpenKeyset, adLockPessimistic ' 打开数据库

' 设定DataGrid控件属性

DataGrid1.AllowAddNew = False ' 不可增加

DataGrid1.AllowDelete = False ' 不可删除

DataGrid1.AllowUpdate = False

Set DataGrid1.DataSource = rs_zhiban

Exit Sub

loaderror:

MsgBox Err.Description

End Sub

Private Sub Form_Unload(Cancel As Integer)

Set DataGrid1.DataSource = Nothing

rs_zhiban.Close

End Sub

(8)投诉管理子窗体代码

投诉管理子窗体是为了对人员进行更好的管理而设置的,可以向其添加投诉的对象、时间和内容等。投诉管理运行后的子窗体如图45所示。

图45 运行的投诉管理子窗体

以下为窗体的代码:

Private Sub Command1_Click()

On Error GoTo adderr

Text1.SetFocus

Adodc1.Recordset.AddNew

Exit Sub

adderr:

MsgBox Err.Description

End Sub

Private Sub Command2_Click()

On Error GoTo deleteerr

With Adodc1.Recordset

If Not.EOF And Not.BOF Then

If MsgBox(”删除当前记录吗?“, vbYesNo + vbQuestion)= vbYes Then

.Delete

.MoveNext

If.EOF Then.MoveLast

End If

End If

End With

Exit Sub

deleteerr:

MsgBox Err.Description

End Sub

Private Sub Command3_Click()

Adodc1.Recordset.MovePrevious

If Adodc1.Recordset.BOF Then

MsgBox ”这是第一条记录“, vbOKCancel + vbQuestion

Adodc1.Recordset.MoveFirst

End If End Sub Private Sub Command4_Click()Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox ”这是最后一条记录“, vbOKCancel + vbQuestion Adodc1.Recordset.MoveLast End If End Sub Private Sub Command5_Click()If Adodc1.Recordset.EOF Then MsgBox ”记录空“, vbOKCancel + vbQuestion End Else Adodc1.Recordset.MoveFirst End If Exit Sub End Sub Private Sub Command6_Click()If Adodc1.Recordset.RecordCount = 0 Then MsgBox ”空记录", vbOKCancel + vbQuestion End Else Adodc1.Recordset.MoveLast End If End Sub Private Sub Command7_Click()MDIForm1.Show frmtousu.Hide End Sub 到这里,各个窗体的界面和代码都介绍完了。发布后可以作为一个实际的项目应用。

第二篇:VB+Access学生公寓管理系统-论文

VB+Access学生公寓管理系统-论文

中文摘要

随着电脑的普及与使用,现在的管理也提升了一个档次,渐渐实现了无纸化办公,即从原来的人工记录管理模式转变为电脑一体化管理。高校是科研的阵地,后勤的公寓管理也应该一改传统的人工管理,更加信息化,时代化,节省人力物力,提高效率。基于这一点,开发此学生公寓管理软件。学生公寓管理软件,是以高校的管理方式为实例而设计的一种实用型管理系统。本系统最大的特点是通用性、简单操作性,适用于同行业以及一些同类型的企业管理。随着学校寄宿人员的增多,公寓管理人员的负担越来越重,为了让所有公寓管理人员能从繁重的工作中解脱出来,实现无纸化办公;使工作更有条理,更方便,更有效率而开发出这套公寓管理软件。软件从对学生的分房开始到最后的公寓管理全部电脑化。它主要包括:公寓、寝室的配置、住宿人员登记、卫生检查、公寓资产、学生违纪、值班老师记录以及对学生住宿情况查询,可以更快地了解到每个学生的住宿情况,使公寓的管理效率更高,做的更好!

关键字:配置、登记、检查 Abstract

With the popularization and use of the computer, present management has been promoted much, more and more jobs have been done by computer.It namely changes the original artificial record management mode into computer''s integrating and managing.The university is the position of scientific research, the apartment management should change traditional managing artificially too, for the efficiency.So , develop the management software of student''s apartment.Student Apartment Management System is a utility management system based on the managing mode of many universities and colleges.Universal and easy-operating are the greatest features of the system ,which is also applicable for enterprises of the same type.Apartment keepers bear a increasingly heavy burden because of the gradually added number of roomers.In order to free apartment keepers from the heave work,and make the work more convienent and efficient.The apartment management system is developed.The system computerized all the processes concerning the apartment management which include apartment,dormitory distribution,roomer registration,santitation examination,and the query for apartment property,students'' violation of discipline,teachers'' records and rooming situation.It makes the apartment management more efficient and much better.Key word: dispose、register、check 目录

引言...4 第一章系统分析...5 1.1开发工具简介及系统运行环境...5 1.2开发的必要性...6 1.3系统开发的可行性...7 1.4数据来源...8 1.5新系统数据流程图...9 第二章 数据库设计...12 第三章功能模块设计...16 3.1新系统功能结构图及运行图如下:...16 3.2系统设置:.17 3.3公寓管理...18 3.4 卫生检查...19 3.5 公寓资产...20 3.6 记录查看与记录删除...20 3.7值班记录...20 3.8帮助制作...21 第四章 程序设计...22 主程序流程图...22 4.1 登录界面...23 4.2 程序主界面...26 4.3系统设置...32 4.4公寓管理...57 4.5卫生检查...60 4.6 公寓资产...64 4.7记录查看...66 4.8记录删除...74 4.9值班记录...81 4.10 Help制作...88 第五章 系统测试...90 总结...91 参考文献...92 引言

随着电脑的普及与应用,现在的管理也需要提升一个档次。即从原来的手工记录管理模式转变为电脑一体化管理。这样会给公寓的管理人员带来很多好处,让他们管理的效率更高、效果更好,管理起来更方便。由此而产生了本管理软件――学生公寓管理软件。学生公寓管理软件是用Microsoft Visual Basic 编写完成。由于Visual Basic率先采用了可视化(VISUAL)的程序设计方法。所以利用系统提供的大量可视化控件,可以方便的以可视化方式直接绘制用户图形界面,并可直观,动态的调整界面的风格和样式,直到满意为止,从而克服了以前必须用大量代码去描述界面元素的外观和位置的传统编程模式。做起来方便,使用起来更为快捷。

作为一个学生公寓的管理软件,要十分全面的贴近以及适合大学公寓的管理方法。本软件的参考资料主要有两种来源:一是参考本学校公寓的管理结构,管理方法。如各个公寓的分布特色,以及公寓的各种管理制度。这些资料是本软件的主要依据,也可以说这些资料来源于普通的生活,比较真实一些。二是来源于网络上的各种同类软件,通过这些软件可以看出一个公寓最低需要哪些管理与设置,在这些软件中,有些软件功能比较齐全,但是在管理上显的非常的不方便,使用起来十分麻烦、繁琐,有些虽然简单,但是功能上又不是十分完善,对这些软件首先要进行取其精华,弃其糟粕,从而进行编写。

本软件主要包括以下方面:系统设置、公寓管理、卫生检查、公寓资产、记录查看、记录删除、值班记录、帮助制作。

学生公寓管理软件目前版本为1.0.1,为一个测试版本。它目前在功能上,以及操作的简便上有很大的改进。但是还是存在一些不足,在有些功能的实现上还不是十分的理想,这也是本人在时间和精力上留下的遗憾。但是相信这些会在以后的版本中得到完善,使这个软件成为一个功能上最全,使用上最简捷方便的管理软件。431

[10]...>> 第一章系统分析

系统采用MICROSOFT公司的 VISUAL BASIC语言编写的学生公寓管理系统,本系统在研制开发过程中,严格遵循软件工程方法,完全采用结构化程序设计方法。

本系统的主要功能可以方便的对学生公寓进行管理,系统采用ACCESS数据库使数据具有较强的完整性、较好的数据安全性等特点以及提供了标准的帮助,使用户方便的获得所需的帮助。界面友好、操作简单、功能齐全、具有较好的人机接口界面是本系统的最大优点。1.1开发工具简介及系统运行环境 1.1.1

VB6简介

本软件的开发工具为VISUAL BASIC,作为一种开发语言,VISUAL BASIC率先采用了可视化(VISUAL)的程序设计方法。利用系统提供的大量可视化控件,可以方便的以可视化方式直接绘制用户图形界面,并可直观、动态的调整界面的风格和样式,直到满意为止,从而克服了以前必须用大量代码去描述界面元素的外观和位置的传统编程模式。

它还拥有面向对象的编程方法。面向对象的程序设计是伴随WIDNOWS图形界面的诞生而产生的一种新的程序设计思想,与传统程序设计有着较大的区别,VISUAL BASIC采用了面向对象的程序设计思想。所谓“对象”就是现实生活中的每个一人,每一个可见的实体。同样,在VISUAL BASIC中,用来构成用户图形界面的可视化控件,也可视为是一个对象。不同的对象,在程序中所赋给它的功能是不同的,比如,在图形界面上有两个命令按钮,一个用来实现数据的统计计算,另一个用来实现数据的打印,这两个按钮就可视为是两个不同的对象,为了实现这两个对象各自不同的功能,接下来就应该分别针对这两个对象编写程序代码,这种编程的思想和方法即为所谓的“面向对象的程序设计”。它还支持第三方软件商为其开发的可视化控制对象,如本例中就用到了一个。这些可视化控件对应的文件扩展名这OCX。只要拥有控件的OCX文件,就可将其加入到VB系统中,从而大大增强VB的编程实力。使软件做起来会更加得心应手。1.1.2 HELP 制作

制作help文档需要一个专业制作软件,本人使用的是破解版的QuickCHM,此软件无论在功能上还在是操作上用起来都是很方便。它属于一个傻瓜型的制作软件,利用它可以快速的制作出各种你所需要的帮助文档。但是如果想制作出帮助文档,就需要使用制作网页的软件把内容先做成html形式,本人使用Dreamweaver制作的网页,然后在用此软件进行加载,最后生成chm文档。1.2开发的必要性

信息资源已成为各个部门的重要财富和资源,建立一个满足各级部门信息处理需要的信息系统,也一个企业或组织生存越来越重要的信息资源。长期以来,使用传统人工的方法管理高校公寓,这种管理方式存在着许多缺点,如:效率低。而且时间一长,将产生大量的文件和数据,这对于查找、更新、维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥越来越重要的作用。学生公寓管理软件,是以高校的管理方式为实例而设计的一种实用型管理软件。

本系统最大的特点是通用性、简单操作性。随着学校寄宿人员的增多,公寓管理人员的负担越来越重,为了让所有公寓管理人员能从繁重的工作中解脱出来,实现无纸化办公,使工作更有条理、更方便、更有效率,而开发出这套公寓管理软件。1.3系统开发的可行性 1.3.1 技术上的可行性 我们正走进一个信息时代,信息技术将从根本上改变人类社会的生产方式和生活方式,各行各业的业务管理现在都已经相继使用计算机来处理,可以说用计算机进行信息管理是一个总趋势。学生公寓管理软件主要是对公寓、寝室的配置、住宿人员登记、卫生检查、公寓资产、学生违纪、值班老师记录以及对学生住宿情况查询,修改,更新等。可以更快地了解到每个学生的住宿情况。开发一个学生公寓管理系统可以达到事半功倍的效果。随着数据库管理系统的普及以及可视化编程软件的出现,使数据库管理信息系统的开发变得更为简单,因此开发一个学生公寓管理系统是完全可行的。1.3.2 经济上的可行性

本单位有自己的微机室可以使用,不必重新购置计算机,不需要花费大量资金,是一个节约人力物力的好办法。

1.3.3 组织管理上的可行性

本单位的领导干部具有较高的素质,它们对管理现代化有较高的认识水平,并且有各级领导的大力支持和重视。

综上所述,建立一个学生公寓管理软件与人工操作相比具有速度更快,操作更准确,更节约开支等有利之处,因此建立一个学生公寓管理软件是必要可行。

1.4数据来源

作为一个学生公寓的管理软件,要十分全面的贴近以及适合大学公寓的管理方法。本软件的参考资料主要有两种来源:一是参考本学校公寓的管理结构,管理方法,这些资料是本软件的主要依据,也可以说这些资料来源于普通的生活,比较真实一些。二是来源于网络上的各种同类软件,通过这些软件可以看出一个公寓最低需要哪些管理与设置,在这些软件中,有些软件功能比较齐全,但是在管理上显的非常的不方便,使用起来十分麻烦、繁琐,有些虽然简单,但是功能上又不是十分完善,对这些软件首先要进行取其精华,弃其糟粕,从而进行编写。

[10]...>> 1.5新系统数据流程图

图1.1数据流程图

数据字典

图1.2 数据元素 注:其它数据元素略

图1.3 数据流 注:其它数据流略

图1.4 加工 注:其它加工略

注:其它数据存储略

第二章 数据库设计

1、E-R图

图2.1 E-R图

2、信息的数量越来越大,数据库的作用越发突出,所以数据库的建立是系统施实的主要部分之一,它关系到整个系统的运行情况,是整个系统的重要组成部分。本系统数据库为db.mdb,在数据库中包括十个表。分别是:用户表、公寓表、班级表、寝室表、卫生等级表、学生基本情况表、学生请假情况表、学生违规情况表、寝室卫生情况表、资产表。下面介绍几个主要的表:

⑴ 学生基本情况表主要是存放学生的基本情况,字段包括:姓名、性别、学号、班级、公寓、寝室、入学时间、年制、寝室电话、个人电话、备注。数据结构如下表:

字段名 数据类型 数据长度 姓名 文本 8 性别 文本 2 学号 文本 10 班级 文本 10 公寓 文本 20 寝室 文本 10 入学时间 文本 14 年制 文本 8 个人电话 文本 15 备注 备注

⑵ 学生请假情况表主要存放学生请假情况,字段包括:日期、姓名、班级、公寓、寝室、天数、原因、老师、备注。数据结构如下表: 字段名 数据类型 数据长度 日期 文本 14 姓名 文本 8 班级 文本 10 公寓 文本 20 寝室 文本 10 天数 文本 10 原因 备注

老师 文本 8 备注 备注

⑶ 学生违规情况表主要存放学生违规情况,字段包括:日期、姓名、班级、公寓、寝室、原因、程度、处罚、备注。数据结构如下表:

字段名 数据类型 数据长度 日期 文本 14 姓名 文本 8 班级 文本 10 公寓 文本 20 寝室 文本 10 原因 备注

程度 备注

处罚 备注

备注 备注

⑷ 卫生情况表主要存放寝室卫生情况,字段包括:日期、公寓、寝室、检查1到

5、得分、减分、等级、备注。其中检查1到5是为了在没有使用者想输入的记录的情况下自己输入而设计的,保证了系统的可修改性、可扩展性。数据结构如下表: 字段名 数据类型 数据长度 日期 文本 14 公寓 文本 20 寝室 文本 10 检查1 文本 40 检查2 文本 40 检查3 文本 40 检查4 文本 40 检查5 文本 40 得分 文本 4 减分 文本 4 等级 文本 6 备注 备注

⑸ 资产表主要存放寝室新增资产情况,字段包括:日期、公寓、名称、数量、单价、总价、用途、备注。数据结构如下表: 字段名 数据类型 数据长度 日期 文本 14 公寓 文本 20 名称 文本 20 数量 文本 4 单价 文本 10 总价 文本 10 用途 备注

备注 备注

第三章功能模块设计

3.1新系统功能结构图及运行图如下:

1、系统功能结构图:

[10]...>> 图3.1系统功能结构图

2、系统功能结构图运行图:

图3.2系统功能结构运行图

经过系统分析,确定了本软件主要包括以下方面:系统设置、公寓管理、卫生检查、公寓资产、记录查看、记录删除、值班记录、帮助制作。3.2系统设置: 主要完成:用户管理、公寓设置、数据备份、数据转换、退出的功能。运行图如下:

图3.3系统设置运行图 3.2.1 用户管理

可以进行管理人员的添加和修改以及删除操作。添加人员可以分为两类:普通用户、管理员。可以视不同人员而添加。管理员拥有所有权力,对整个系统的操作。普通用户只有浏览、及一些简单的添加操作权力。无用户设置、公寓设置及记录删除等权力。3.2.2公寓设置

分为三个主要的操作:公寓设置、寝室设置、班级设置。在这里可以添加学校所有的公寓、所有班级、每个公寓的所有寝室,也可以用此软件管理一幢公寓。这样操作起来会更简单、操作一目了然。3.2.3数据备份

这是一个数据管理软件所必不可少的一部分,利用它可以及时的备份当前的数据库以及在出现故障后利用已保存的数据进行恢复。3.2.4数据转换

利用数据转换将当前数据库中的表转换成Excel表格的形式,显示更为直观,可以进行打印等操作。3.3公寓管理

主要完成:学生请假、学生违规、床位设置的功能。运行图如下:

图3.4公寓管理运行图 3.3.1学生请假

主要是对学生请假记录做一个添加。利用它可以把学生的基本的请假资料保存起来。3.3.2学生违规

主要是对学生违规记录做一个添加。利用它可以把学生的基本的违规资料保存起来。3.3.3床位设置

通过床位设置可以简单查看每个公寓每个寝室的床位使用情况以及床位剩余情况。还可以通过详细查看,查看到某个公寓某个寝室住宿人员的人数,以及具体的住宿人员的名字。3.4 卫生检查

主要完成:添加检查记录的功能。卫生检查可以对卫生检查的结果进行记录。这里的卫生标准一共有五项可以填写,在每一项里已经基本设置了所不合标准的记录,你可以在下拉列表框中进行选择即可,但是如果没有你想输入的记录的话,也可以自己输入。运行图如下:

图3.5卫生检查运行图 3.5 公寓资产

主要完成:添加新增物品的功能。可以对公寓资产的收入或其它物品的入库进行记录。运行图如下:

图3.6公寓资产运行图 3.6 记录查看与记录删除

主要是对学生请假、学生违规、卫生记录,公寓资产等记录所进行的操作,利用这两个功能可以对任一记录进行查看与删除。运行图如下:

图3.7记录查看

图3.8记录删除运行图 3.7值班记录

它的功能主要是针对值班人员开发出来的,在这里可以让值班人员对当天值班情况进行一个小记,以便日后查看。运行图如下:

图3.9值班记录运行图 3.8帮助制作

对于一个稍显正规的软件来说帮助的制作都是必不可少的内容,本程序也不例外,制作了此帮助文档。在程序中可以按F1或点击帮助菜单来显示此help.Chm文档。以便对本软件进行快速操作。运行图如下:

图3.10帮助运行图

第四章 程序设计 主程序流程图

4.1 登录界面

此界面是由Photoshop制作而成。在做这个登录面的时候想了很多,最后选择了这种,感觉它看起来干净,整齐。又不失其庄雅。加上本单位最有特色的建筑,会让人一目了然。

4.1.1 登录图片显示

图4.1登录界面

4.1.2 界面制作与实现

在这个界面中,主要处理的是判断当前用户输入的信息是否正确。如果正确,那么它属于哪种类型用户。因为此管理软件在登录后不同类型的用户显示的窗体与实现的功能都不是一样的,它们会有所差别!(1)浮动按钮的实现

确定和取消两个按钮在鼠标没有放上去之前看上去只是一个普通的平面字效果,但是当你把鼠标放在这几个字上面后,它会显示凸出的效果,按下后呈现凹陷的效果。总体实现立体的感觉。原理主要是在鼠标mousemove事件与线的颜色变化组合来实现。主要代码如下:

在窗体中的鼠标移动过程中,以及在窗体初始化的时候,要把添加的线的.Visible 属性设置为 False,只有在鼠标按下的时候在改变其颜色即

[10]...>> 可。

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)Line1.Visible = False Line2.Visible = False Line3.Visible = False Line4.Visible = False Line5.Visible = False Line6.Visible = False Line7.Visible = False Line8.Visible = False End Sub

鼠标按下的时候设置线条的颜色如下:

Private Sub Label3_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)Line1.BorderColor = &H808080 Line2.BorderColor = &H808080 Line3.BorderColor = &HE0E0E0 Line4.BorderColor = &HE0E0E0 End Sub

鼠标移动到标签的时候设置线条的颜色如下: Private Sub Label3_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)Line1.BorderColor = &HE0E0E0 Line2.BorderColor = &HE0E0E0 Line3.BorderColor = &H808080 Line4.BorderColor = &H808080 Line1.Visible = True Line2.Visible = True Line3.Visible = True Line4.Visible = True End Sub(2)用户类型判断

在数据库中建了一人yonghu表。在添加管理人员时有两种默认级别。管理员、普通用户。管理员拥有对数据库操作的一切权限。普通用户只有普通的查看,数据转换等。没有删除等操作功能。前用户成功登录后,会在主窗体的状态栏中显示出当前用户及其用户类型。主要代码如下:

设置当前控件连接的数据库 Dim provider As String Dim datasource As String provider = “provider=Microsoft.jet.oledb.4.0” datasource = “data source=” & App.Path & “DB.mdb” With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & “;” & datasource.CommandType = adCmdTable.RecordSource = “yonghu”.Refresh.Recordset.MoveFirst End With 对用户进行判断

If Text1.Text = “" Then MsgBox ”请输入用户名!“, 48, ”提示“ Exit Sub End If Adodc1.Recordset.Find ”用户=''“ & Text1.Text & ”''“ If Adodc1.Recordset.EOF = False And Text2.Text = Trim(Adodc1.Recordset.Fields(”pass“))Then main.Text1.Text = Adodc1.Recordset.Fields(”级别“)main.Text2.Text = Adodc1.Recordset.Fields(”用户“)main.Show Unload Me Else Text1.Text = ”“ Text2.Text = ”“ MsgBox ”登录不成功,请重新登录!“, 48, ”提示“ End If 4.2 程序主界面

程序主界面为本软件的显示的核心部分。一切主要操作及显示都通过这里完成。整个界面主要由五部分组成。菜单部分、工具栏、左侧操作栏、右侧显示栏以及状态栏。①界面效果图如下:

图4.2程序主界面

菜单栏的详见附录内容,这里就不提了。左侧操作栏和右侧显示栏会在下面的内容中做介绍,现在只简单介绍一下工具栏和状态栏,以及主窗体的各个事件。

工具栏主要是由coolbar制作而成。由它制做的工具栏的显示效果会更有立体感一些。这里只列出了几个常用的按钮。其中的添加按钮是用来对公寓住宿人员进行添加,修改也是对所住宿人员进行修改,想要进行修改时必须显示所有记录时才可以进行。在这里值得一提的是删除DataGrid的操作,由于不知道它的当前数据源是哪个,所以在删除前要确定它的数据源,也就是它所链接的adodc1的数据源,或者是其它ado控件对它的数据源进行重新绑定后的数据库表,也有可能是经过一个查询后得到的记录。②它的实现方法如下所示: Dim o As Adodc Set o = DataGrid1.datasource

o.Recordset.Delete

o.Recordset.Update 这里主要是用到了ado对像的方法。用这个方法得到数据源。

下面是整个工具栏运行时代码: Select Case Button.Index Case 1 sel.Show 1 Case 3 add.Show 1 Case 5 On Error GoTo next2 Dim s As Adodc Set s = DataGrid1.datasource If s.RecordSource = ”users“ Then edit.Show 1 End If next2: Case 7 On Error Resume Next Dim o As Adodc Set o = DataGrid1.datasource

o.Recordset.Delete

o.Recordset.Update Case 9 back.Show 1 Case 11 With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”users“ ''.Refresh End With Set DataGrid1.datasource = Adodc1 DataGrid1.Refresh Call dx Case 13 Unload Me End Select 状态栏分四个部分。第一个为固定显示当前所用软件名称及作者。其中第二个和第三部分为动态显示的,它会显示出每次用户登录名称及其管理模式。由上图可以看出,lf为本软件管理员。第四部分为日期与时间的显示。其中第三部分的代码实现如下: main.Text1.Text = Adodc1.Recordset.Fields(”级别“)main.Text2.Text = Adodc1.Recordset.Fields(”用户“)StatusBar1.Panels(2).Text = ”当前用户:“ & Text2.Text StatusBar1.Panels(3).Text = ”用户模式:“ & Text1.Text StatusBar1.Panels(4).Text = Date & ”

“ & Time ''设置普通用户模式

If Text1.Text = ”普通用户“ Then yhgl.Visible = False g1.Visible = False jlsc.Visible = False gysz.Visible = False Toolbar1.Buttons(5).Visible = False Toolbar1.Buttons(6).Visible = False Toolbar1.Buttons(7).Visible = False Toolbar1.Buttons(8).Visible = False End If 主窗体在程序运行中会遇到不断改变其大小,最小化,最大化,以及用鼠标来改变,这里需要在窗体的Resize事件中添加代码,让程序中用到的各个控件随时可以适应窗体改变后的大小,在这里改变的控件主要有DataGrid、TreeView系列及Frame控件、StatusBar。下面就是设置它们大小的程序代码:

DataGrid1.Width = main.WidthStatusBar1.Height750 SSTab1.Height = main.HeightCoolBar1.HeightStatusBar1.Height1200 Frame2.Height = main.HeightCoolBar1.HeightStatusBar1.Height1200 TreeView1.Height=main.HeightCoolBar1.HeightStatusBar1.Height1500 TreeView3.Height=main.HeightCoolBar1.Heightz)/ 4 StatusBar1.Panels(1).Width = u + x StatusBar1.Panels(2).Width = v + x StatusBar1.Panels(3).Width = w + x StatusBar1.Panels(4).Width = m + x 这个软件的主要部分都在这里运行、查看,所以在主窗体的load事件里要把所用的到的东西都要加载进来,例如所在程序运行时所用到的表,左侧treeview部分树形显示的初始化。在这里几乎用到了所有的表,如下所示: provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”users“ ''.Refresh End With

With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”gongyu“.Refresh End With

With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”class“.Refresh End With

With Adodc4.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”weisheng“.Refresh End With

With Adodc5.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource End With

With Adodc6.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”dengji“.Refresh End With

With Adodc7.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”qinshi“.Refresh End With

With Adodc9.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”zichan“.Refresh End With treeview部分树形显示的初始化在这里已经做了几个过程,调用即可。4.3系统设置 4.3.1用户管理 ①界面效果图

[10]...>>

② 界面制作与实现方法

这个界面总体来说各个控件比较简单,但是作为一个添加删除管理员的操作,它已经连接到了数据库,与数据库的yonghu表相联。各个控件也与数据库中表的字段绑定。在窗体初始化的时候要判断当前数据库表中是否有记录,如果没有记录那么有些按钮将会被设置成为失效状态,否则会出现错误。设置代码如下: Dim provider As String Dim datasource As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”yonghu“.Refresh End With Option1.Enabled = False Option2.Enabled = False If Adodc1.Recordset.RecordCount = 0 Then Command2.Enabled = False Command3.Enabled = False Command5.Enabled = False Command6.Enabled = False End If Text2.Text = Text3.Text 上一条与下一条的功能一目了然,它们可以对当前表进行上一条记录或下一条记录依次查看。当找到记录后,可以对其进行相对的删除、修改等操作。上一条记录与下一条的记录在查看时有一个判断。当表中记录移到最前面(BOF)或最后面(EOF)时,会把上一条或下一条其中的一个按钮的enable属性设置为true。即不可以前查看或向后查看。上一条与下一条主要代码如下:

Adodc1.Recordset.MovePrevious ''移动记录 Command6.Enabled = True If Adodc1.Recordset.BOF Then

Adodc1.Recordset.MoveFirst

Command5.Enabled = False End If Adodc1.Recordset.MoveNext ''移动记录 Command5.Enabled = True If Adodc1.Recordset.EOF Then

Adodc1.Recordset.MoveLast

Command6.Enabled = False End If 添加用户可以添加使用该管理软件的用户。添加的时候可以选择所添加人物的级别。软件默认为两个级别:管理员、普通用户。管理员拥有对此软件管理操作等一切的权力。普通用户,只有普通的查看、查询、备份、添加等权力。没有对记录删除等权力。在添加用户时你可以选择一个且必须选择一个。然后输入此用户的用户名和密码即可!添加用户主要代码:

If Command1.Caption = ”添加“ Then Command2.Enabled = False Command5.Enabled = False Command6.Enabled = False Command1.Caption = ”确定“ Command3.Caption = ”取消“ Adodc1.Recordset.AddNew Option1.Enabled = True Option2.Enabled = True Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text2.Text = ”“ ElseIf Text1.Text = ”“ Then MsgBox ”用户名不能为空!“, 48, ”提示“ ElseIf Text2.Text = ”“ Then MsgBox ”密码不能为空!“, 48, ”提示“ ElseIf Text2.Text <> Text3.Text Then MsgBox ”密码两次需一致!“, 48, ”提示“ ElseIf Text4.Text = ”“ Then MsgBox ”请选择所建用户类型!“, 48, ”提示“ Else Command2.Enabled = True Command3.Enabled = True Command5.Enabled = True Command6.Enabled = True Command3.Caption = ”编辑“ Command1.Caption = ”添加“ Adodc1.Recordset.Update Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Option1.Value = False Option2.Value = False Option1.Enabled = False Option2.Enabled = False End If 删除操作可以把当前记录删除掉。一经删除即不可以在恢复。所以在操作前要想好。删除操作部分代码:

If Adodc1.Recordset.RecordCount = 1 Then Command2.Enabled = False End If If(MsgBox(”你真的想删除当前记录吗?“, vbOKCancel, ”系统提示“))= vbOK Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveFirst Adodc1.Refresh End If 编辑操作可以对当前所选择的用户进行编辑,可以修改其用户名与密码。当当前用户感觉自己用户名称或密码有泄露时,可以进行修改。修改记录即更新表中的某一条记录。编辑操作主要代码如下: Command2.Enabled = False Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text4.Enabled = True Option1.Enabled = True Option2.Enabled = True Command1.Caption = ”确定“ ElseIf Command3.Caption = ”取消“ Then Command3.Caption = ”编辑“ Command1.Caption = ”添加“ Command2.Enabled = True Command5.Enabled = True Command6.Enabled = True Text2.Text = Text3.Text Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Option1.Value = False Option2.Value = False Option1.Enabled = False Option2.Enabled = False End If 4.3.2 公寓设置

公寓设置可以说是本程序中一关键部分。因为所有的设置都在此进行。包括公寓添加、修改、删除。寝室的添加、修改、删除以及班级的添加、修改和删除操作。只有正确的对这些设置进行添加修改,才能输入正确的记录。这里主要涉及到的问题是datagrid的显示,以及treeview及时形成新的结构。还有一些就是对表记录的复杂操作。在点击sstab各版的时候,要在这时重新生成寝室设置中的树型结构,Select Case PreviousTab

Case 0

Call startree1

Case 1

Combo1.Clear

Dim I As Integer

I = 1

If Adodc1.Recordset.RecordCount <> 0 Then

Adodc1.Recordset.MoveFirst

Do While I < Adodc1.Recordset.RecordCount

Combo1.AddItem(Adodc1.Recordset.Fields(”公寓名称“))

Adodc1.Recordset.MoveNext

I = I + 1

Loop

End If

Call startree1

Case 2

Call startree1 End Select End Sub(1)公寓设置

① 公寓设置效果图

图4.4公寓设置

② 界面制作与实现方法

在这个界面中主要用到了一个Sstab控件与一个显示表中内容的Datagrid控件。以及起到美观作用的Frame控件。

在右下角的文本框中可以输入想要添加的公寓名称。然后点击添加即可完成添加操作。Datagrid中会立即刷新显示更新内容。要修改某条记录时,要先对所要修改的记录进行选择,确认选择后,点击下面的修改按钮,会在下面的文本中显示出所要修改公寓的名称,此时即可输入要修改的名字。然后点击更新就会完成此操作。Datagrid也会即时更新其内容。删除操作更为简单,选择想要删除的公寓名称,点击删除,确认后完成此操作。但是删除后不会影响其它表中的数据。其它表的有关此公寓的信息还会存在。在进行所有操作前,先要确定数据库已连接。

在添加前要判断所写公寓名称是否正确,即是否输入名称,该记录不能为空,不为空则对数据库表进行查找,判断当前输入记录是否已在表中存在,如果已存在,则会给出提示,不存在,添加成功。

Adodc1.Recordset.Find ”公寓名称=''“ & Text2.Text & ”''“ If Adodc1.Recordset.EOF = False Then MsgBox ”此公寓已存在“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If Text3.Text = ”“ If Text2.Text = ”“ Then MsgBox ”输入所要添加公寓的名称“, , ”提示“ Exit Sub End If 添加:

Adodc1.Recordset.AddNew Adodc1.Recordset.Fields(”公寓名称“)= Text2.Text Adodc1.Recordset.Update Adodc1.RecordSource = ”gongyu“ Text2.Text = ”“ Set DataGrid2.datasource = Adodc1 DataGrid2.Refresh

修改公寓名称:

If Text3.Text = ”“ Then MsgBox ”选择要修改的公寓“, , ”提示“ Exit Sub End If If Command12.Caption = ”修改“ Then Text2.Text = Text3.Text Label6.Caption = ”输入想要修改的公寓名称“ Command12.Caption = ”更新“ Command3.Enabled = False Command7.Enabled = False ElseIf Command12.Caption = ”更新“ Then Command3.Enabled = True Command7.Enabled = True Label6.Caption = ”输入想要添加的公寓名称“ Adodc1.Recordset.Fields(”公寓名称“)= Text2.Text Adodc1.Recordset.Update Adodc2.Recordset.ActiveConnection.Execute ”update qinshi set 公寓名称=''“ & Text2.Text & ”'' where 公寓名称=''“ & Trim(Text3.Text)& ”''“ Adodc2.Recordset.Update Command12.Caption = ”修改“ End If Set DataGrid2.datasource = Adodc1 DataGrid2.Refresh Adodc5.Recordset.Update Set main.DataGrid1.datasource = Adodc5 main.DataGrid1.Refresh

删除公寓名称

If Text3.Text = ”“ Then MsgBox ”选择所要删除公寓的名称“, , ”提示“ Exit Sub End If If(MsgBox(”你真的想删除公寓名称为

“ & Text3.Text & ” 的记录吗?“, vbOKCancel, ”系统提示“))= vbOK Then

Adodc1.Recordset.Delete

Adodc1.Recordset.Update End If Text3.Text = ”“ Set DataGrid2.datasource = Adodc1 DataGrid2.Refresh(2)寝室设置

①寝室设置效果图

图4.5寝室设置

②界面制作与实现方法 此界面实现相对比公寓设置来说相对复杂一些。用到的控件主要是Sstab与Treeview。但是在程序方面比较复杂。

在添加一个寝室前先要选择所要添加寝室所在的公寓。这个公寓可以点击下面的树中的节点,也可以在列表框中选择。树中的节点在点击后会把父节点显示在选择公寓后面的列表框中,而选中的节点会出现在寝室名称里。你也可以自己进行添写,确认公寓后即可添加完成了。添加后会把Treeview重新刷新一下。以显示更新后的记录。添加源码: Adodc1.Refresh Adodc1.Recordset.Find ”公寓名称=''“ & Combo1.Text & ”''“ If Adodc1.Recordset.EOF = True Then MsgBox ”此公寓不存在“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If If Combo1.Text = ”“ Or Text1.Text = ”“ Then MsgBox ”请输入所要添加的寝室及其所属公寓“, , ”提示“ Exit Sub End If With Adodc2.Recordset.AddNew.Recordset.Fields(0).Value = Combo1.Text.Recordset.Fields(1).Value = Text1.Text.Recordset.Update End With Combo1.Text = ”“ Text1.Text = ”“ Call startree1 修改操作可以把当前选中的寝室进行名称修改与其所属公寓进行修改。当要对名称进行修改时,先要选择所要修改的寝室名,选择后会在寝室名称里显示出来,把当前寝室名称改成要修改的寝室名称,然后点击修改即完成名称修改操作。当要对当前寝室的所属公寓进行修改时,需要先选择所要修改的寝室,然后在上面的公寓名称后填写所要修改的寝室名称。点击修改后完成此操作。但是这种操作不是常见。修改源码: Adodc1.Refresh Adodc1.Recordset.Find ”公寓名称=''“ & Combo1.Text & ”''“ If Adodc1.Recordset.EOF = True Then MsgBox ”此公寓不存在“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If

Dim sql As String On Error Resume Next If Combo1.Text = ”“ Or Text1.Text = ”“ Then MsgBox ”请在下面选择所要修改的寝室“, , ”提示“ Exit Sub End If ''sql = ”select * form qinshi where 公寓名称=''“ & Trim(Combo1.Text)& ”'' and 寝室=''“ & Trim(Text1.Text)& ”''“

Adodc2.Recordset.ActiveConnection.Execute ”update qinshi set 寝室=''“ & Text1.Text & ”'',公寓名称=''“ & Trim(Combo1.Text)& ”''where 寝室=''“ & Trim(Text6.Text)& ”''and 公寓名称=''“ & Trim(Text7.Text)& ”''“ Adodc2.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Call startree1 删除操作可以删除掉当前树型显示中的任何一个子节点,也就是这个树型节点中的寝室名称,注意的是,删除后这个记录只在qinshi表中删除,其相关记录不会被删除掉的,如果想删除,还需要人工操作。实现的方法主要是对qinshi表操作,先对其进行查询,查询当前想要被删除的表是否存在,如果不存在,则给出提示,如果存在这条记录,则在表中把它删除掉,删除后调用生成树过程,把当前寝室设置中的树型结构重新生成,更新记录。实现的部分代码如下所示:

If Combo1.Text = ”“ Or Text1.Text = ”“ Or Combo1.Text = ”公寓管理系统“ Then MsgBox ”选择所要删除的寝室“, , ”提示“ Exit Sub End If If(MsgBox(”你真的想删除

“ & Combo1.Text & ” “ & ”寝室为“ & Text1.Text & ” 的记录吗?“, vbOKCancel, ”系统提示“))= vbOK Then Adodc2.Refresh

[10]...>>

Adodc2.Recordset.ActiveConnection.Execute ”delete from qinshi where 公寓名称=''“ & Trim(Combo1.Text)& ”'' and 寝室=''“ & Trim(Text1.Text)& ”''“ Adodc2.Recordset.Update End If Combo1.Text = ”“ Text1.Text = ”“ Call startree1 在treeview点击的时候,上面的文本框中会显示相应的记录,这主要是对treeview进行了设置,代码如下:

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)On Error Resume Next Text1.Text = TreeView1.SelectedItem.Text Combo1.Text = TreeView1.SelectedItem.Parent Text6.Text = TreeView1.SelectedItem.Text Text7.Text = TreeView1.SelectedItem.Parent End Sub(3)班级设置

①班级设置效果图

图4.6班级设置

②界面制作与实现方法

此界面制作与公寓设置基本一致。在这个界面中主要用到了一个Sstab控件与一个显示表中内容的Datagrid控件。以及起到美观作用的Frame控件。

在右下角的文本框中可以输入想要添加的班级名称。然后点击添加即可完成添加操作。Datagrid中会立即刷新显示更新内容。要修改某条记录时,要先对所要修改的记录进行选择,确认选择后,点击下面的修改按钮,会在下面的文本中显示出所要修改班级的名称,此时即可输入要修改的名字。然后点击更新就会完成此操作。Datagrid也会即时更新其内容。删除操作更为简单,选择想要删除的班级名称,点击删除,确认后完成此操作。添加班级源码:

Adodc3.Recordset.Find ”class=''“ & Text4.Text & ”''“ If Adodc3.Recordset.EOF = False Then MsgBox ”此班级已存在“, , ”提示“ Adodc3.Recordset.MoveFirst Exit Sub End If Text5.Text = ”“ If Text4.Text = ”“ Then MsgBox ”输入所要添加班级的名称“, , ”提示“ Exit Sub End If Adodc3.Recordset.AddNew Adodc3.Recordset.Fields(”class“)= Text4.Text Adodc3.Recordset.Update Adodc3.RecordSource = ”class“ Text4.Text = ”“ Set DataGrid3.datasource = Adodc3 DataGrid3.Refresh 修改班级源码:

If Command10.Caption = ”修改“ Then Text4.Text = Text5.Text Label6.Caption = ”输入想要修改的班级名称“ Command10.Caption = ”更新“ Command6.Enabled = False Command9.Enabled = False ElseIf Command10.Caption = ”更新“ Then Command9.Enabled = True Command6.Enabled = True Label6.Caption = ”输入想要添加的班级名称“ Adodc3.Recordset.Fields(”class“)= Text4.Text Adodc3.Recordset.Update Command10.Caption = ”修改“ End If 删除班级源码:

If Text5.Text = ”“ Then MsgBox ”选择所要删除班级的名称“, , ”提示“ Exit Sub End If If(MsgBox(”你真的想删除班级名称 为

“ & Text5.Text & ” 的记录吗?“, vbOKCancel, ”系统提示“))= vbOK Then

Adodc3.Recordset.Delete

Adodc3.Recordset.Update End If Text5.Text = ”“ Set DataGrid3.datasource = Adodc3

DataGrid3.Refresh End Sub 4.3.3数据备份:

数据备份是一个数据库软件必不可少的一部分,利用它可以把当前数据库表进行全面的备份,以备以后使用。因为在操作中可能会导致数据遭到破坏,或者是系统的原因使数据库损坏,或者是一些其它的人为原因,这样你可以用此功能把数据恢复到最后一次备份的状态,使损失做到最少,经常备份,操作起来更有安全感。①数据备份效果图

图4.7数据备份效果图 ② 功能实现

界面制作相对程序来说比较简单,用到的是coolbar控件,点击按钮可以选择备份路径。然后点击数据备份即可。窗体初始化部分代码如下: Dim cnn1 As ADODB.Connection Dim rstschema As ADODB.Recordset Dim strcnn As String Set cnn1 = New ADODB.Connection strcnn = ”provider=Microsoft.jet.oledb.4.0;“ & ”data source=“ & App.Path & ”db.mdb“ cnn1.Open strcnn Set rstschema = cnn1.OpenSchema(adSchemaTables)Do Until rstschema.EOF temp = rstschema!Table_Name If Left(temp, 1)<> ”M“ Then End If rstschema.MoveNext Loop cnn1.Close On Error GoTo err PathName = App.Path & ”db.MDB“ dbasize = FileLen(PathName)err: Exit Sub 数据备份部分在本程序中用到了一个模块,在模块中有一个方法,dobackup。点击备份按钮后开始备份,代码如下: If txtDestination <> ”“ Then DoBackup PathName, txtDestination MsgBox ”备份成功!“, , ”提示“ ElseIf txtDestination = ”“ Then MsgBox ”You must specify a distination for the backup“, vbCritical 其中DoBackup为模块中已定义的方法,在这里进行调用。Dobackup实现方法代码如下所示: Dim lFileOp As Long Dim lresult As Long Dim lFlags

As Long Dim SHFileOp As SHFILEOPSTRUCT Dim strSourceDir As String Dim strDestinationDir As String Screen.MousePointer = vbHourglass BackupFolderName = strDestinationPath MkDir BackupFolderName & ”Backup“ & Format(Date, ”yyyy.mm.dd“)& vbNullChar

.fFlags = lFlags End With lresult = SHFileOperation(SHFileOp)Screen.MousePointer = vbDefault frmBackupDba.lblStatus = ”Backup Complete“ 在备份分前先要选择一个备份路径,点击…那个按钮开始进行选择,实现方法如下: Dim strTemp As String strTemp = fBrowseForFolder(Me.hwnd, ”Select backup path“)If strTemp <> ”“ Then

txtDestination = strTemp End If 数据恢复界面同上,它的功能主要是在当前数据库遭到破坏后,可以利用它来进行数据恢复,在数据恢复前要选择所要恢复的数据库路径,如下: Dim strTemp As String strTemp = fBrowseForFolder(Me.hwnd, ”Restore From“)If strTemp <> ”“ Then

txtSource = strTemp

dbasize2 = FileLen(txtSource & ”db.MDB“)

lblSelectedDba = ”Selected Backup Database is : “ & Format((dbasize2 / 1024)/ 1024, ”standard“)& ”MB.“

cmdRestore.Enabled = True End If Erro:

Select Case err.Number

Case 53 ''File Not Found

lblSelectedDba = ”No Backup at this location“

Toolbar2.Enabled = False

End Select 它主要是查看数据库是否存在,如果所恢复的数据不存在,则会提示错误。数据恢复也用到了一个方法,在模块中也已经定义了该方法DoRestore。数据恢复代码如下: If MsgBox(”Restoring database from location “ & txtSource & ” will replace existing database files.Do you want to Contunue“, vbYesNo)= vbYes Then DoRestore txtSource.Text, App.Path If NoDba = True Then MsgBox ”Database Restored Click Ok to Exit Program“ frmRestoreDba.Hide Unload frmRestoreDba End If Else lblStatus.Caption = ”Database Restore Canceled“ End If 其中DoRestore实现的功能源码如下所示:

DEFSOURCE = ”PROVIDER=Microsoft.jet.oledb.4.0;Persist Security Info=False;Data Source=“ DBName = ”db.MDB;Jet OLEDB:Database Password=matrix-se;“ Set Db = New ADODB.Connection

Db.Open DEFSOURCE & App.Path & DBName Dim lFileOp As Long Dim lresult As Long Dim lFlags

As Long Dim SHFileOp As SHFILEOPSTRUCT Dim strSourceDir As String Dim strDestinationDir As String Db.Close Screen.MousePointer = vbHourglass BackupFolderName = strDestinationPath lFileOp = FO_COPY lFlags = lFlags And Not FOF_SILENT lFlags = lFlags Or FOF_NOCONFIRMATION lFlags = lFlags Or FOF_NOCONFIRMMKDIR lFlags = lFlags Or FOF_FILESONLY With SHFileOp

.wFunc = lFileOp

.pFrom = strSourcePath & ”db.MDB“ & vbNullChar

.pTo = strDestinationPath & vbNullChar

.fFlags = lFlags End With lresult = SHFileOperation(SHFileOp)Set Db = New ADODB.Connection Db.Open DEFSOURCE & App.Path & DBName Screen.MousePointer = vbDefault frmRestoreDba.lblStatus = ”Restore Complete“ 说明:本程序中此部分内容参考了网上的同类型代码,对其进行修改后得到此成型作品,从功能上来讲,它已经实现了它所要完成的工作,经过测试已经没有问题,但是实现的源代码,也只有部分掌握。这实属本人精力与能力有限所置。4.3.4 数据转换

这个功能可以把当前列表框中的任何一个表转换成excel形式,转换后你可以看到表中的内容,也可以对表进行操作,保存,修改,打印等。①界面效果图

图4.8数据转换效果图 ②实现方法

在这里用到了一个显示gif图片的控件。选择左面list中的一个表后,点击导出后即可完成,进度条中显示当前转换进度程度。

首先要在list中加载各表名。以便进行选择转换。添加表名部分在load进行加载,其中的导出与取消按钮是由coolbar制作而成。Form的load事件处理内容如下:

TMaxAni1.FileName = App.Path & ”iconfind.gif“ TMaxAni1.ShowGif Dim cnn1 As ADODB.Connection Dim rstschema As ADODB.Recordset Dim strcnn As String Set cnn1 = New ADODB.Connection strcnn = ”provider=Microsoft.jet.oledb.4.0;“ & ”data source=“ & App.Path & ”db.mdb“ cnn1.Open strcnn Set rstschema = cnn1.OpenSchema(adSchemaTables)Do Until rstschema.EOF temp = rstschema!Table_Name If Left(temp, 1)<> ”M“ Then List2.AddItem temp End If rstschema.MoveNext Loop cnn1.Close List2.ListIndex = 0 On Error GoTo err PathName = App.Path & ”db.MDB“ dbasize = FileLen(PathName)数据转换成excel用到了一个部件,在引用中用到了Microsoft Excel9.0 Object library。转换代码如下:

Select Case Button.Index Case 1 Dim provider As String Dim datasource As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = List2.Text.Refresh End With ProgressBar1.Max = Adodc1.Recordset.RecordCount ProgressBar1.Min = 0 ''开始转换

Dim Irow, Icol As Integer

Dim Irowcount, Icolcount As Integer

Dim Fieldlen()

Dim xlApp As Excel.Application

Dim xlBook As Excel.Workbook

Dim xlSheet As Excel.Worksheet

Set xlApp = CreateObject(”Excel.Application“)

Set xlBook = xlApp.Workbooks.add

Set xlSheet = xlBook.Worksheets(1)With Adodc1.Recordset

.MoveLast

If.RecordCount < 1 Then

MsgBox(”Error!“)

Exit Sub

End If

Irowcount =.RecordCount

Icolcount =.Fields.Count

ReDim Fieldlen(Icolcount)

.MoveFirst

For Irow = 1 To Irowcount + 1

For Icol = 1 To Icolcount

Select Case Irow

Case 1

xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1))= True Then

Fieldlen(Icol)= LenB(.Fields(Icol1))

End If

xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)

xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1))

If Fieldlen(Icol)< Fieldlen1 Then

xlSheet.Columns(Icol).ColumnWidth = Fieldlen1

Fieldlen(Icol)= Fieldlen1

Else

xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)

End If

xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1)).Font.Name = ”黑体“

.Range(.Cells(1, 1),.Cells(1, Icol1)).Borders.LineStyle = xlContinuous

End With

xlApp.Visible = True

'' xlBook.Save

''xlBook.Close

Set xlApp = Nothing

Adodc1.Recordset.ActiveConnection = Nothing End With Toolbar4.Buttons(1).Enabled = False Case 2 Unload Me End Select

[10]...>>

4.4公寓管理 4.4.1学生请假

学生请假与违规在一个公寓管理中是最常见的问题了,所以在此软件中加上了这两项功能。用它们可以随时记录请假记录。①学生请假记录图片显示

图4.9学生请假效果图 ② 界面制作与实现

此界面主要是对学生请假记录做一个添加。利用它可以把学生的基本的请假资料保存起来。其中的日期是系统当前的日期,它是不可以进行更改的,然后在其它文本框中输入其它详细资料即可以。这里的添加操作用的是Adodc控件,所有的文本框在初始的时候没有同Adodc绑定,而是在代码中与数据库中表的字段进行的绑定,然后进行添加操作。这样做在使用的时候有很大的方便之处。第一是窗体在初始化时不会显示任何记录,不用设置文本框为空等一系列的操作。第二是当进行记录输入时,发现问题不用输入时,不按添加按钮记录就不会进行添加。注意的是,在添加前要确定所有的文本框都要进行详细填写,否则会提示输入详细信息。添加主要代码如下:

If Text1.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Or Text4.Text = ”“ Or Text5.Text = ”“ Or Text6.Text = ”“ Or Text7.Text = ”“ Or Text8.Text = ”“ Or Text9.Text = ”“ Then MsgBox ”请输入详细信息!“, , ”系统提示“ Else With Adodc1.Recordset.AddNew.Recordset.Fields(0).Value = Text1.Text.Recordset.Fields(1).Value = Text2.Text.Recordset.Fields(2).Value = Text3.Text.Recordset.Fields(3).Value = Text4.Text.Recordset.Fields(4).Value = Text5.Text.Recordset.Fields(5).Value = Text6.Text.Recordset.Fields(6).Value = Text7.Text.Recordset.Fields(7).Value = Text8.Text.Recordset.Fields(8).Value = Text9.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh End If 4.4.2学生违规

①学生违规记录图片显示

图4.10学生违规效果图

此界面与上面的请假记录差不多。它主要是对学生的违规记录做一个添加。其中的日期也是系统当前的日期,它是不可以进行更改的,然后在其它文本框中输入其它详细资料即可以这里的违规操作用的也是Adodc控件,所有的文本框在初始的时候也没有同Adodc绑定,它也是在代码中与数据库中表的字段进行的绑定,然后进行添加操作。其它操作同上面基本是一致的,对于违规在主界面的左侧并没有快速显示操作,只可以用记录查看里面的违规查看进行选择查看。在这里所添写的记录也要全面一些,主要是为了以后查找更为方便,如果不全,系统会提示的!②违规部分代码如下:

在load事件里对数据库链接的处理,以及日期文本框的设置,代码如下: provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”qingjia“.Refresh End With Text1.Text = Date Text1.Enabled = False 确定无误后,进行添加,代码如下:

If Text1.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Or Text4.Text = ”“ Or Text5.Text = ”“ Or Text6.Text = ”“ Or Text7.Text = ”“ Or Text8.Text = ”“ Or Text9.Text = ”“ Then MsgBox ”请输入详细信息!“, , ”系统提示“ Else With Adodc1.Recordset.AddNew.Recordset.Fields(0).Value = Text1.Text.Recordset.Fields(1).Value = Text2.Text.Recordset.Fields(2).Value = Text3.Text.Recordset.Fields(3).Value = Text4.Text.Recordset.Fields(4).Value = Text5.Text.Recordset.Fields(5).Value = Text6.Text.Recordset.Fields(6).Value = Text7.Text.Recordset.Fields(7).Value = Text8.Text.Recordset.Fields(8).Value = Text9.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh 4.5卫生检查

公寓卫生可以说是一个公寓管理中最常见到的问题了。公寓卫生每天要清扫,寝室卫生每天要检查,但是如果这些都用纸来进行填写,一定会十分麻烦,且保存也不是十分方便,在一些评比中也会忙的很遭。所以在这个软件中编写了此功能。4.5.1 公寓卫生添加效果图

图4.11公寓卫生添加效果图 ①在这个界面中主要用到了文本框以及起到美观作用的frame控件。日期已经设置成只读属性,检查记录的日期是不能随便改写的。公寓名称可以在下拉列表框中进行选择,如果在下拉列表框中没有发现,可以人工输入,但是要确定公寓名称的正确性。寝室名称需要自己输入。这里的卫生标准一共有五项可以填写,在每一项里已经基本设置了所不全标准的记录,你可以在下拉列表框中进行选择即可,但是如果没有你想输入的记录的话,你也可以自己输入。输入完成后,在减分后面的文本框中输入一共要对此寝室减掉的分数,单击得分后面的文本框会自动算出应该得到的分数。然后跟据得分的分数,你要选择该寝室的卫生等级,卫生等级为必选值且为固定值,正确的选择此项可以在主界面的左侧中快速对卫生等级进行查看。②公寓选择栏中代码的实现: Combo3.Clear Dim I As Integer I = 1 If Adodc1.Recordset.RecordCount <> 0 Then Do While I < Adodc1.Recordset.RecordCount

Combo3.AddItem(Adodc1.Recordset.Fields(”公寓名称“))

Adodc1.Recordset.MoveNext

I = I + 1 Loop End If 卫生选择栏中的代码实现基本同上,它也是一个表中的字段值!Dim J As Integer J = 1 If Adodc4.Recordset.RecordCount <> 0 Then Do While J < Adodc4.Recordset.RecordCount

Combo2.AddItem(Adodc4.Recordset.Fields(”等级“))

Adodc4.Recordset.MoveNext

J = J + 1 Loop End If Combo2.Text = ”优秀“ 不合标准的卫生记录填写情况如下: Combo4.AddItem(”门窗不干净“)Combo4.AddItem(”地面不干净“)Combo4.AddItem(”阳台不干净“)Combo4.AddItem(”床铺不整齐“)Combo4.AddItem(”不叠被“)Combo4.AddItem(”桌面不整齐“)Combo4.AddItem(”书柜摆放不整齐“)由于此窗体中涉及到公寓与寝室,在填写时要确定其名称的正确,所以在添加记录前要对它们进行检查,如发现不存在的记录,则显示提示。检查记录时用的是adodc中的find命令。类似于用户登录时的判断,同样记录的输入也要详细。代码如下: Adodc1.Refresh Adodc1.Recordset.Find ”公寓名称=''“ & Combo3.Text & ”''“ If Adodc1.Recordset.EOF = True Then MsgBox ”查无此公寓“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If Adodc3.Refresh Adodc3.Recordset.Find ”寝室=''“ & Text5.Text & ”''“ If Adodc3.Recordset.EOF = True Then MsgBox ”查无此寝室“, , ”提示“ Adodc3.Recordset.MoveFirst Exit Sub End If If Combo3.Text = ”“ Or Combo2.Text = ”“ Or Text5.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Then MsgBox ”请输入详细信息!“, , ”系统提示“ Else 确认一切无误后,开始对所填写记录进行添加并显示: With Adodc2.Recordset.AddNew.Recordset.Fields(0).Value = Combo3.Text.Recordset.Fields(1).Value = Text5.Text.Recordset.Fields(2).Value = Combo4.Text.Recordset.Fields(3).Value = Combo5.Text.Recordset.Fields(4).Value = Combo6.Text.Recordset.Fields(5).Value = Combo7.Text.Recordset.Fields(6).Value = Combo8.Text.Recordset.Fields(7).Value = Text2.Text.Recordset.Fields(8).Value = Text3.Text.Recordset.Fields(9).Value = Combo2.Text.Recordset.Fields(10).Value = Text4.Text.Recordset.Fields(11).Value = Text1.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc2 main.DataGrid1.Refresh 4.6 公寓资产

公寓资产可以及时对公寓里进出财务进行统计,以免遗忘,造成不必要的损失或不必要的麻烦,它的实现方法基本同上面的卫生记录的添加,相对比来说比上面的简单一些。不足的是目前只做出了入库管理,对于出库记录还没有实现。4.6.1公寓资产添加设置效果图

[10]...>>

图4.12公寓资产添加效果图 4.6.2 界面制作与实现方法 日期的设置同上面一样,只读属性。公寓名称与寝室名称要人工输入,没有选择,这是因为考虑到它不会像卫生记录那样每天要添加一次,每次要添加很多,所以为了减少系统进程,它没有使用combo,没有在窗体中进行加载。窗体中的数量与单价在填写之后会自动把总价格计算出来,类似于上图中的得分一样。部分代码如下: If Text5.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Then MsgBox ”请输入详细信息!“, , ”提示“ Else With Adodc1.Recordset.AddNew.Recordset.Fields(0).Value = Text1.Text.Recordset.Fields(1).Value = Text8.Text.Recordset.Fields(2).Value = Text2.Text.Recordset.Fields(3).Value = Text3.Text.Recordset.Fields(4).Value = Text4.Text.Recordset.Fields(5).Value = Text5.Text.Recordset.Fields(6).Value = Text6.Text.Recordset.Fields(7).Value = Text7.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh Text2.Text = ”“ Text3.Text = ”“ Text4.Text = ”“ Text5.Text = ”“ Text6.Text = ”“ Text7.Text = ”“ End If 4.7记录查看

记录查看可以让你对已录入的记录进行各种符合条件的查找,显示符合条件的记录。这里主要包括四个方面的查看:卫生查看、请假查看、违规查看、资产查看。下面分别介绍。4.7.1 卫生查看 ①界面效果图

图4.13卫生查看效果图 ②界面制作与实现方法

这是一个比较简单的窗体操作。看起来精简、小巧。它主要的功能是对已经录入的卫生记录进行符合条件的查询。在查询类别中选择可以选择全部查看以及按日期查看。查看全部即显示所有记录,选择按日期查看后在下面的列表框中选择所要查看的日期,点击确定后即可以看到该日期的记录。

在进行查询前,要对所操作的表进行绑定,代码如下: Dim s As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”weigui“.Refresh End With 日期后面的下拉列表框中可以显示出所有已经录入记录的日期,它是通过对当前表进行分类查询后得到的结果,然后将其添加在combo中,实现代码如下: s = ”select distinct 日期 from weisheng“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With

For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next 查看全部,即把当前表中的记录全部赋给当前用来显示的表格,按日期查看,则是在表中先进行查询,然后对结果进行重绑定,在赋值。它们的判断主要是通过单选框的选取来完成的,实现方法如下: s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from weisheng where 日期=''“ & Trim(s)& ”''“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc3 main.DataGrid1.Refresh End If Unload Me 4.7.2其它记录查看 在记录查看中还有其它三项查看方式,分别是请假、违规、资产三项记录查看。它们的实现方法与窗体与上面的卫生查看基本相同。①请假查看

图4.14请假查看效果图

用它可以对当前所有记录以及有效日期内的记录进行查看。代码如下:

Dim sql As String Dim s As String s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from qingjia where 日期=''“ & Trim(s)& ”''“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc3 main.DataGrid1.Refresh End If Unload Me 在窗体的load中要设置已经添加的日期,需要对表进行条件查询,代码如下: s = ”select distinct 日期 from qingjia“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next ②违规查看

图4.15违规查看效果图

目前此类功能还不是十分理想,有些查看方式会在以后的程序中进行升级。在Load事件设置了窗体运行时所有需要的东西。代码如下:

Option1.Value = True Dim s As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”weigui“.Refresh End With s = ”select distinct 日期 from weigui“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next 查看部分的源代码如下: Dim sql As String Dim s As String s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from weigui where 日期=''“ & Trim(s)& ”''“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc3 main.DataGrid1.Refresh End If Unload Me ③资产查看

图4.16资产查看效果图

在Load事件设置了窗体运行时所有需要的东西。代码如下:

On Error Resume Next Option1.Value = True Dim s As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”zichan“.Refresh End With s = ”select distinct 日期 from zichan“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc3.Recordset.RecordCount Combo1.AddItem(Adodc3.Recordset.Fields(”日期“))Adodc3.Recordset.MoveNext Next 查看部分代码如下所示: On Error Resume Next Dim sql As String Dim s As String s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from zichan where 日期=''“ & Trim(s)& ”''“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc2 main.DataGrid1.Refresh End If Call dx1 Unload Me 4.8记录删除

删除是一个数据库软件中最基本的操作之一。在本软件的工具栏中也有一个删除按钮,其功能也是将所找到的记录删除,但是它每次只能删除一条记录,且此删除记录的前提是在右侧的显示中容易找出,即记录不多的情况下使用。如果一旦数据记录很多,一条条查找比较不方便时,即可以使用此窗体进行删除。这里的删除也有四个窗体,分别为卫生删除、请假删除、违规删除、资产删除。下面分别介绍。4.8.1 卫生删除 ①效果图

图4.17卫生删除效果图

②界面制作与实现方法

这个界面总体来说各个控件比较简单,但是作为一个删除操作,它已经连接到了数据库,与数据库的表相联。且有三种删除记录方式可以选择。默认为单条删除,选择此项后需要在日期中选择所删除记录的添加日期,以及所在的公寓与寝室,当这三条全部符合要求后,在表中进行查找,找到后确认删除。选择批量删除后,在下面只有一个日期可以选择,这样将会把所选日期内的所有记录都将删除掉,所以称其为批量删除。全部即是把当前表清空,全部删除掉,建议使用此操作前对当前数据库进行备份处理,否则数据将不会恢复。首先要进行数据库连接,如上面例子所示,这里就不在介绍,接下来要对本窗体中的日期进行加载,如下所示: s = ”select distinct 日期 from weisheng“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Combo2.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next Option1.Value = True Frame3.Visible = True Frame5.Visible = False Frame6.Visible = False 在单条删除前要确定所有条件符合要求,单条删除操作的代码主要部分如下:

If(MsgBox(”你真的想删除日期为

“ & Combo1.Text & ”

公寓为

“ & Text1.Text & ”

寝室为

“ & Text2.Text & ” 的记录吗?“, vbOKCancel, ”系统提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weisheng where 日期=''“ &

Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 寝室=''“ & Trim(Text2.Text)& ”''“

'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”删除成功“, , ”系统提示“ End If Unload Me 当选择某一日期后进行批量删除代码如下:

If(MsgBox(”你真的想删除日期为

“ & Combo2.Text & ” 的记录吗?“, vbOKCancel, ”系统提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weisheng where 日期=''“ & Trim(Combo2.Text)& ”''“ Combo2.Text = ”“ MsgBox ”删除成功“, , ”系统提示“ End If Unload Me 清空数据表代码为:

If(MsgBox(”你真的想删除所有的记录吗?一旦删除即不可恢复“, vbOKCancel, ”系统提示“))= vbOK Then For I = 1 To Adodc1.Recordset.RecordCount Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext Next I End If MsgBox ”删除成功“, , ”系统提示“ Unload Me 4.8.2请假记录 ①效果图

[10]...>>

图4.18请假记录删除效果图 ②界面制作与实现方法

这个窗体与上面不同的是多了一个姓名条件,其它的都基本一致。由于在一个公寓中会有很多人要得名,但是在某一公寓某一寝室中只会有一个人,这也是一个公寓分配住宿人员时的基本标准,因为这样也便于公寓本身的管理。此删除窗体只有单条删除与上面不同,单条删除部分代码如下:

If(MsgBox(”你真的想删除日期为

“ & Combo1.Text & ”

公寓为

“ & Text1.Text & ”

寝室为

“ & Text2.Text & ”

姓名为

“ & Text3.Text & ” 的请假记录吗?“, vbOKCancel, ”系统提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from qingjia where 日期=''“ & Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 寝室=''“ & Trim(Text2.Text)& ”''and 姓名=''“ & Trim(Text3.Text)& ”''“

'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”删除成功“, , ”系统提示“ End If 4.8.3 违规删除 ①效果图

图4.19违规记录删除效果图 ②界面制作与实现方法

违规删除操作与请假删除操作基本一致,不同之处只是在于后台对不同的表进行处理,前台界面大体相同。其实现方法与上现的也差不太多,这里就不在叙述。单条删除记录: Dim sql As String Dim s As String Dim panduan As Boolean If Combo1.Text = ”“ And Text1.Text = ”“ And Text2.Text = ”“ Then MsgBox ”请输入删除条件!“, , ”提示“ Exit Sub End If s = Combo1.Text If(MsgBox(”你真的想删除日期为

“ & Combo1.Text & ”

公寓为

“ & Text1.Text & ”

寝室为

“ & Text2.Text & ”

姓名为

“ & Text3.Text & ” 的违规记录吗?“, vbOKCancel, ”系统提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weigui where 日期=''“ & Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 寝室=''“ & Trim(Text2.Text)& ”'' and 姓名=''“ & Trim(Text3.Text)& ”''“

'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”删除成功“, , ”系统提示“ End If Unload Me 成批删除记录:

If(MsgBox(”你真的想删除日期为

“ & Combo2.Text & ” 的记录吗?“, vbOKCancel, ”系统提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weigui where 日期=''“ & Trim(Combo2.Text)& ”''“ Combo2.Text = ”“ MsgBox ”删除成功“, , ”系统提示“ End If Unload Me 删除所有记录:

If(MsgBox(”你真的想删除所有的记录吗?一旦删除即不可恢复“, vbOKCancel, ”系统提示“))= vbOK Then For I = 1 To Adodc1.Recordset.RecordCount Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext Next I End If MsgBox ”删除成功“, , ”系统提示“ Unload Me 4.8.4 资产删除 ①效果图

图4.20资产删除效果图 ② 界面制作与实现方法

与卫生记录删除不同的是寝室改为了名称。值得注意的是,此处公寓与名称都要人工输入,所以在输入的时候要注意不要有多余字符,否则会出错删除不掉的情况。单条删除部分源码如下:

If(MsgBox(”你真的想删除日期为

“ & Combo1.Text & ”

公寓为

“ & Text1.Text & ”

名称为

“ & Text2.Text & ” 的资产记录吗?“, vbOKCancel, ”系统提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from zichan where 日期=''“ & Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 名称=''“ & Trim(Text2.Text)& ”''“

'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”删除成功“, , ”系统提示“ End If 4.9值班记录

值班记录这项可以说是此软件的一个新增功能。它的界面小巧,并且它可以让值班人员记录前天发生的一些事情,字数在1000字左右。可以说是一个小型的日记本。4.9.1 值班记录 ①值班记录效果图

图4.21值班记录效果图 ② 实现思想与功能

此窗体的功能以及其源代码是经过修改之后而形成的,源文件是一个电子记事本,发现后经过修改后做出一个日记本。

在上面的日期后面的文本框中,你可以输入如窗口标题后面所示的日期格式后,点击查看,即可以查看到所选日期的详细记录。这是一种查询方法,当然你也可以用右面简单的上一条与下一条进行快速查看,但是它只能查看当日日期起开始的记录,如果与你所想要查看的日期相差很远,那么你就需要使用第一种方法了。这个日记本还支持修改与删除功能。当你想编辑或删除某一日期的时候时,你需要用查看方法找到该记录,然后对当前记录使用编辑或删除即可完成操作。删除后,记录即不可恢复,且此日记目前还没有备份功能,慎重操作。

如果你今天值班,还没有写值班记录,那么你可以点击增加按钮,开始写当日的值班记录,说明的是,每天只可以写一次记录。当你写完今天记录后,在点击增加时会提示你今日已写完。但是你可以对今日记录进行编辑修改。

本程序源码较为复杂,主要都是对文件进行操作,并没有把记录添加到数据库中,所以不支持备份操作,且本窗体中的操作程序还用到了一个模块。部分代码如下: 查看上一条记录:

If giCurrentRecord > 1 Then

giCurrentRecord = giCurrentRecord1

Form_Load

End If 4.9.2 增加记录 ①增加记录效果图

图4.22增加记录效果图 ② 实现思想与程序源码

日期后显示当前日期,但是可以修改。每篇记录的字数要求在1000字以内。支持对当前字符输入的统计,确定完成本日记录后,点击保存即可。部分代码如下:

Dim bSaved As Boolean, bCF If txtDate = ”“ Or txtMemo = ”“ Then Exit Sub '' 如果记录未填,则退出 If riji.Tag = ”addnew“ Then

If giRecordCount >= 1 Then

''新增时,检查记录是否重复

gsSql = frminput.txtDate

bCF = FindData(gsSql)

If bCF Then

MsgBox ”今天你已经写过日记了!“, vbExclamation + vbOKOnly, ”每日一记“

txtMemo.SetFocus

Exit Sub

End If

End If

giRecordCount = giRecordCount + 1

bSaved = WriteData()ElseIf riji.Tag = ”modify“ Then ''

bSaved = ModifyData()End If If bSaved = True Then

AddNext = MsgBox(”保存完毕!“, vbExclamation + vbOKOnly, ”每日一记“)End If Unload Me 由于此段代码中用到了一个模块,在模块中定义了很多过程,各过程实现功能及代码如下所示:

读取数据:

Public Sub ReadData(curRecord As Integer)''读取数据 On Error Resume Next Dim strcaption$

riji.txtDate = goDiarys(curRecord).fldDate

riji.txtMemo = goDiarys(curRecord).fldMemo

strcaption = ”每日一记

[“ & Date & ”] “ & Time & ” WeekdayName(Weekday(Date))& “ 记录:” & giCurrentRecord & “/” & giRecordCount

riji.Caption = strcaption End Sub 查询数据:

Public Function FindData(sql As String)As Boolean ''查询数据 On Error Resume Next

Dim I%

For I = 1 To giRecordCount

If goDiarys(I).fldDate = sql Then

giCurrentRecord = I

FindData = True

Exit For

End If

Next

ReadData giCurrentRecord End Function 新增数据:

Public Function WriteData()As Boolean ''新增数据 On Error Resume Next

Dim iFreefile%, I%

iFreefile = FreeFile()

Open gsPath & “DATA.DAT” For Random As #iFreefile Len = en(goDiary)

ReDim Preserve goDiarys(giRecordCount)

goDiarys(giRecordCount).fldDate = frminput.txtDate

goDiarys(giRecordCount).fldMemo = frminput.txtMemo

goDiary = goDiarys(giRecordCount)

Put #iFreefile, giRecordCount, goDiary

giCurrentRecord = giRecordCount

ReadData(giCurrentRecord)

Close #iFreefile

WriteData = True

“ & End Function 修改数据:

Public Function ModifyData()As Boolean ''修改数据 On Error Resume Next

Dim iFreefile%, I%

iFreefile = FreeFile()

Open gsPath & ”DATA.DAT“ For Random As #iFreefile Len =len(goDiary)

goDiarys(giCurrentRecord).fldDate = frminput.txtDate

goDiarys(giCurrentRecord).fldMemo = frminput.txtMemo

goDiary = goDiarys(giCurrentRecord)

Put #iFreefile, giCurrentRecord, goDiary

ReadData(giCurrentRecord)

Close #iFreefile

ModifyData = True End Function 删除数据:

Public Sub DeleteData()''删除数据 On Error Resume Next

Dim iFreefile%, I%, J%

I = 1: J = 1

iFreefile = FreeFile()

Open gsPath & ”temp.dat“ For Random As #iFreefile Len = Len(goDiary)

goDiarys(giCurrentRecord).fldMemo = ”IWantToKillIt*“ & goDiarys(giCurrentRecord).fldMemo ''加删除标记

For I = 1 To giRecordCount

''无删除标记的记录保存到临时文件,TEMP.DAT

If Left(goDiarys(I).fldMemo, 14)<> ”IWantToKillIt*“ Then

goDiary = goDiarys(I)

Put #iFreefile, J, goDiary

''在此必须有I,J两个变量,因为使用二进制保存文件,J = J + 1

''从1开始到后面,中间如有间隔就会出现乱码

End If

Next

Close #iFreefile

Kill gsPath & ”data.dat“

Name gsPath & ”temp.dat“ As gsPath & ”data.dat“

riji.txtDate = ”“

riji.txtMemo = ”“ End Sub 说明:由于本人能力有限,对文件部分还不算是很了解,这个功能的实现主要是借用了网上的一个电子记事本。本人只是对其做了一些修改,做成了这个每日一记,但个人认为此功能还算是可以。4.10 Help制作 Help文档的制作也标志着本软件基本完成。制作help文档需要一个专业制作软件,本人使用的是破解版的QuickCHM,此软件无论在功能上还在是操作上用起来都是很方便。QuickCHM软件的界面及其使用如下:

[10]...>>

图4.23 QuickCHM软件的界面 它属于一个傻瓜型的制作软件,利用它可以快速的制作出各种你所需要的帮助文档。但是如果想制作出如下图所示的文档,那么需要使用制作网页的软件把内容先做成html形式,然后在用此软件进行加载,最后生成chm文档。在制作前要制作出相差的网页形式,本人使用Dreamweaver。用它先做出要用到的相差页面,大约一共为十个。然后在用QuickCHM把所有的网页添加进去,然后对QuickCHM进行各项设置,最后点击编译即可生成help文档,后缀为.Chm。在本管理软件中可以按F1或点击帮助菜单下的帮助主题即可显示该帮助文档,调用的过程也很简单,两条语句即可以实现。代码如下:

在主窗体的load事件中添加下面语句: App.HelpFile = App.Path & ”help.chm“ 在帮助主题的click事件中添加下面语句: SendKeys ”{F1}" 上面这两条语句即可以实现调用帮助文档的功能。

第五章 系统测试

编写出的各功能模块需要进行测试,对于模块化应用程序,软件开发的最后一部分便是不断的测试程序最终编译成可执行的.exe文件,该阶段主要对系统的正确性及完整性等方面进行测试。主要进行:功能确认测试、运行测试、健壮性测试、安全性测试以及查错方面的测试等,系统测试的测试人员由测试组成员(或质量保证人员)或测试组成员与用户共同测试,在整个系统开发完成,即将交付用户使用前进行。在这一阶段,对整个系统进行测试,系统测试结束后我们应该打软件打包,使其脱离VB的环境下也能正常运行。打包应将所有程序需要的文件加载进去,如数据库(DB.MDB),每日一记和帮助的文件都要进行加载。在调试程序过程中,由于某些内在的错误影响程序的运行,在采用上述调试方法对程序进行调试后,程序运行情况良好,达到了预期的设计目标,基本上满足了用户的需要。

总结

到目前为止,学生公寓管理软件基本开发完毕,软件界面美观,运行时间短,执行功能强,其功能基本符合用户需求。能够完成对学生公寓中学生基本资料的存储和查询,并提供数据转换、数据备份等系统维护功能,可以使用查找、修改、添加和删除对学生公寓管理软件的操作等。

由于本人知识有限,又是刚初学软件,时间比较仓促,又缺乏经验,必定有不足和不周之处,希望各位老师给予指导,本人将继续完善修改,使此系统能更好地发挥性能。

参考文献

Visual Basic 程序设计

王栋

清华大学出版社 Visual Basic 高级编程宋伟

吴建国

清华大学出版社 Visual Basic 6.0 入门与提高 戴红 陈哲 清华大学出版社 Visual Basic 6.0应用指南

何斌 王运坚

冯峰 刘醒

人民邮电出版社

Visual Basic 高级编程技术 陈 明

杨劲松

北京希望电子出版社

Visual Basic实用教程

陈弘原

中国水利水电出版社

数据库系统概论

萨师煊、王珊 高等教育出版社

软件系统开发技术

潘锦平施小姚 西安电子科技大学出版

<<

[11]

第三篇:基于VB+ACCESS的车辆信息管理系统

华北水利水电大学毕业设计

目录

摘要.....................................................................................................................................I Abstract..............................................................................................................................II 第一章 绪论......................................................................................................................1 1.1研究背景..............................................................................................................1 1.2研究现状..............................................................................................................1 1.3研究内容..............................................................................................................2 第二章 系统的分析和设计..............................................................................................3 2.1系统的设计..........................................................................................................3 2.1.1系统设计的思想.......................................................................................3 2.1.2设计原则...................................................................................................3 2.1.3模块划分...................................................................................................3 2.2可行性分析..........................................................................................................5 第三章 系统功能的实现..................................................................................................7 3.1 工程与数据库的创建.........................................................................................7 3.1.1创建工程...................................................................................................7 3.1.2创建数据库...............................................................................................7 3.2登录窗体和注册窗体的设计..............................................................................8 3.2.1系统登录表...............................................................................................8 3.2.2设置登录窗体...........................................................................................9 3.2.3注册窗体.................................................................................................12 3.2.4用户信息管理窗体.................................................................................14 3.3用户主窗体和管理员窗体................................................................................16 3.3.1普通用户窗体.........................................................................................16 3.3.2管理员窗体.............................................................................................18 3.4车主信息管理窗体............................................................................................19 3.4.1车主信息表.............................................................................................19

I

华北水利水电大学毕业设计

3.4.2车主信息窗体设计.................................................................................20 3.5年检信息管理窗体............................................................................................22 3.5.1年检信息表.............................................................................................22 3.5.2年检记录窗体设计.................................................................................23 3.6事故信息管理窗体............................................................................................24 3.6.1事故信息表.............................................................................................24 3.6.2事故信息窗体设计.................................................................................25 3.7违章信息管理窗体............................................................................................26 3.7.1违章信息表.............................................................................................26 3.7.2违章信息窗体设计.................................................................................27 3.8保险信息管理窗体............................................................................................28 3.8.1保险信息表.............................................................................................28 3.8.2保险信息查询窗体设计.........................................................................29 第四章 系统的具体实现与结论....................................................................................31 4.1软件调试............................................................................................................31 4.2系统演示............................................................................................................32 4.2.1系统注册与登录.....................................................................................32 4.2.2普通用户窗体.........................................................................................33 4.2.3管理员窗体.............................................................................................37 第五章 结论....................................................................................................................42 参考文献..........................................................................................................................44 致

谢..............................................................................................................................46 附 录1:外文原文.........................................................................................................48 附 录2:外文译文.........................................................................................................54 附 录3:毕业设计任务书.............................................................................................58 附 录4:开题报告.........................................................................................................60 附 录5:程序.................................................................................................................66

II

华北水利水电大学毕业设计

车辆信息管理系统

摘要

进入21世纪,随着人民生活质量水平的提高,私家车的数量越来越多,车辆信息的有效管理成为了厄待解决的任务。在车辆信息管理方面很多信息需要处理。比如车辆的车主信息,事故信息,违章信息,年检信息,保险信息等等。人工处理这些信息会非常的繁琐,而且容易出错。所以需要个车辆信息管理系统来解决问题。

本次设计利用VB作为开发工具,Access作为后台数据库,并针对系统要求和车辆信息的分类划分了功能模块。首先是登录设计,注册账号密码之后可以登录进入主窗体,通过主窗体普通用户进入各查询窗体包括车辆的车主信息,事故记录,违章记录,保险记录,年检记录等各方面信息。管理员进入各查询窗体包括车辆的车主信息,事故记录,违章记录,保险记录,年检记录等各方面信息进行信息处理,并且可以对用户的信息进行管理,还可以设置管理权限。系统采用分模块,程序化的设计方法,既方便于系统功能的实现和调整,又便于管理人员的对数据信息的管理和维护。

车辆信息管理系统具备数据库信息处理功能,可以根据用户需要对车辆相关的信息进行查询、添加、修改、删除等操作。整个车辆信息管理系统体现了软件工程的宗旨,并且使车辆信息管理变得规范化。系统还可以自动完成信息的处理,从而达到提高车辆信息管理的目的。

关键字:VB ;车辆信息;数据库;管理系统

I

华北水利水电大学毕业设计

Vehicle information management system

Abstract With the improvement of people's living standard in 21st century, the effective management of vehicle information has become an urgent task because of more and more vehicles.A lot of aspects in the vehicle information management need to handle, such as, the owner of the vehicle information, accident, illegal information, yearly check information, insurance information and so on.Artificial processing this information is very cumbersome and error-prone.So we need a vehicle information management system to solve this problem.This design takes VB as the development tool, ACCESS database as the background and in view of the system requirements and vehicle information classification divides the function module.After the first login is designed, the registered account password can log into the main form, through the main form of ordinary users to enter the query form include the information of vehicle owners, accident record, endorsed, insurance records, annual inspection records and so on various aspects information.Administrators to enter the query form include the information of vehicle owners, accident record, endorsed, insurance records, annual inspection records information processing and so on various aspects information, and to manage the user's information, you can also set permissions management.System adopts modularized program design method, convenient for the combination of system function change, facilitate again complement and maintain that does not participate in the personnel.System has the function of database maintenance, timely data according to user needs to add, modify, delete, backup, etc.The development of the whole vehicle management system embodies the thought of software engineering and makes the vehicle information management systematization, standardization and automation, so as to achieve the goal of improving vehicle information management.Key words: VB;Vehicle information;Database;Management system.II

华北水利水电大学毕业设计

第一章绪论

1.1研究背景

进入21世纪人们的生活质量水平的提高,车辆的数量持续的增长。车辆的增多必然会给车辆管理带来不便,而车辆的使用又是社会发展必备工具.车辆增加可以让人们享受高质量的生活,但是如果没有一个完善的车辆信息管理系统会随之而来许多的社会问题,因此开发出一套功能完善的车辆信息管理系统成为一项十分重要的任务,特别是汽车的数量还在不断的增长.所以开发车辆信息管理系统是管理车辆信息的主要措施.车辆信息管理系统的运用,使人们不仅可以享受车辆带来的便捷,还不用因为车辆引起的诸多信息而感到烦躁.所以在这个背景下我们开发出车辆信息管理系统.方便人们对自己的爱车信息可以全面了解.数据库是计算机设计信息管理系统的地一个重要组成部分,是人们进行数据储存,分享,管理的工具.其实信息管理系统应用程序就是从数据库获取数据并进行处理。它是目前最流行计算机程序之一,应用范围十分广泛.。从简单的数据录入到表中到复杂的信息管理系统后台数据库的建立都是信息管理的应用。

Visual Basic 简称VB,VB是软件开发领域开发效率较高程序设计语言,在设计小型的信息管理系统中有很大的优势。利用VB开发数据库应用系统,可以将所学习的知识融会贯通,培养自主学习能力,创新能力。数据库开发应用管理系统包含测控,电子,计算机等多个学科的内容,具有深厚的研究价值。

1.2研究现状

本人在查阅了众多的参考资料之后,充分了解了国内现有的各种车辆相关的信息研究系统,我国利用计算机管理车辆信息的技术应用相对国外比较滞后,主要原因是国内计算机技术的普及不到位和社会发展水平不高。针对我所理解的车辆信息管理系统,国内现有研究状况进行总结:首先,很多车辆信息管理系统设计不合理,系统内的各个模块之间的数据信息有重复出现的情况,需要多次的属入。不仅设计繁琐,效率不高还容易产生错误。其次,大部分的设计软件在人机交互功能方面设计力度不够,没有错误警报信息和关键操作验证功能。对于车辆信息的整理也不够全面,很多车辆信息管理系统只关心车辆的少部分信息,对车辆整体信息涵盖不完整。

华北水利水电大学毕业设计

相比而言国外的信息管理系统就比较成熟,很早以前国外就产生了简单的单位车辆管理系统,通过计算机对车辆的相关信息进行记录,大大减少了人工进行录入和管理的繁杂,提高了对车辆使用情况的了解,现在国外的管理系统已经十分的完善。

1.3研究内容

本次设计运用VB和ACCESS的基本理论知识,在此基础上进行了系统数据库的设计,访问连接及数据源的配制方法.根据系统功能及设计要求,进行系统的模块划分,软件流程的设计及系统的运行界面设计.通过VB的语言编写出个功能模块的代码,实现数据库访问及系统界面的友好性设计,满足应用系统的实际要求

首先是登录设计,登录进入主窗体,通过主窗体进入各查询窗体包括车辆的车主信息,事故记录,违章记录,保险记录,年检记录等各方面信息。对车辆的各种信息实现查询、修改、删除、添加等功能。系统采用分模块,程序化的设计方法,既方便于系统功能的实现和调整,又便于管理人员的对数据信息的管理和维护。

华北水利水电大学毕业设计

第二章系统的分析和设计

经过对大量的资料进行研究,基本可以确定设计的方向。本章重点:对系统进行分析,制定设计的方案。

2.1系统的设计

系统设计是车辆信息管理系统开发的重要阶段,在这一阶段。首先要了解用户对车辆信息有哪些方面的需求,然后对系统进行划分,最后整理出各模块之间的系统流程。这样既提高了系统设计的准确性,又让设计流规范化。

2.1.1系统设计的思想

⑴实用性:在各项基本功能使用上进一步完善系统。⑵先进性:简化代码去除多余,引用简单的编程方式。⑶易用性:授权实体在所需时间可以简单快捷的使用应用程序。⑷保密性:确保信息不会暴漏给未授权查看的人使用。⑸系统性:将各个功能模块有机融合在一个系统的整体中。

2.1.2设计原则

⑴目标明确。在信息系统中的每一个子系统都是为了达到某种效果而设计。系统的边界是否适合,系统内部的目标是否统一。这些将直接影响整个系统的功能。车辆信息管理系统就是实现一个节省人力,能使管理流程科学化的系统。

⑵结构清晰。系统与系统之间的层次分清楚,比较要分明吧,这样便于实现总目标,使得信息交流方便。

2.1.3模块划分

数据库的设计需求具体实现对各种信息的保存修改和查询等方面。因此一个满足系统数据库必须充分的照顾到各种新的输入输出以免遗漏导致开发返工。通过对系统功能的分析,数据库应该包括登录表、车主信息表、年检记录表、保险信息表、违章记录表、事故记录表六个表。分别储存我们必须的信息。

VB开发根据系统的功能要求将系统分解为三层六大模块,三个层次分为:登录界面,主窗体,子查询窗体。

华北水利水电大学毕业设计

1、登录界面:当我们打开应用程序的时候首先进入登录界面,分为注册和登录两个窗体分别实现注册新用户和通过用户密码认定进入车辆信息管理系统功能

2、主窗体:登录成功之后普通用户进入主窗体我们可以选择我们要查询的项目,管理员用户可以进入管理员窗体对数据进行添加、修改、删除、查询功能。

3、子查询窗体:普通用户选择查询项目进入子项目,输入相应的车牌号即可查询相关的信息。管理员用户进入管理窗体,对车辆信息进行添加、修改、删除、查询处理。

六大模块分为:车主信息,年检信息,事故信息,违章信息,保险信息,用户信息。

1、车主信息:包含了车主的姓名,出生日期,发证日期,车辆类型,车主年龄,证件有效期,性别,证件号,籍贯几个方面。

2、年间信息:本模块包含了车辆年间的信息记录,从购车到现在所有的年间信息在本模块显示

3、事故信息:事故的时间,地点,原因。对方姓名,对方的车号,处理方式,责任认定等等信息。

4、违章信息:包括违章的原因,处罚,时间,扣分情况,处理情况等信息。

5、保险信息:这里主要包括了保险日期,类型,备注生效情况。

6、账户信息:主要包括帐号,密码,用户类型信息。车辆信息管理系统流程图如图2-1所示。

华北水利水电大学毕业设计

图2-1车辆信息管理系统流程图

2.2可行性分析

1、经济可行性分析

通过计算机对车辆信息进行全面的自动化管理,大大提高了信息的管理效率。通过对车辆信息进行全面的管理和分析,可以及时的发现各种问题。提高对车辆信息的掌握度,使车辆信息管理更加科学化系统化。

2、技术可行性分析

利用VB+Access实现简单、实用、安全性高的技术特点、完全可以开发出一套适合个人的车辆信息管理,而且计算机自动化的办公管理会使得车辆信息管理更加清晰,实现通过计算机对信息进行查询,输入,输出等一系列功能。

3、社会可行性分析

对于车辆信息管理来说,主要考虑车辆信息获取的获取条件。在计算机软硬件技术和网络技术飞速发展与普及,要求车辆信息必须适应自动化管理的模式,而且软件的易用性提高,可以使人们更方便快捷的使用车辆信息管理系统。

华北水利水电大学毕业设计

华北水利水电大学毕业设计

第三章系统功能的实现

经过上一章的分析,和整体设计的方案确定。接下来我们将进行具体的设计,去实现我们想要实现的功能。本章重点:创建数据库,创建工程,数据表的设计,工程窗体的设计。

3.1工程与数据库的创建

3.1.1创建工程

1、运行VB程序选择标准EXE点击打开创建工程界面如图3-3所示。

图3-1创建工程界面

2、保存工程:

保存工程界面如图3-4所示文件名输入车辆信息管理,下拉可以选择文件的保存类型,点击保存即可保存工程,工程创建完成。

图3-2保存工程界面

3.1.2创建数据库

首先我们打开VB程序,选择我们创建好的工程初始界面如图3-3所示在菜单栏蓝

华北水利水电大学毕业设计

色标识处点击外接程序之后选择可视化数据程序管理器。

图3-3初始界面

可视化数据管理器如图3-2所示点击文件,下拉新建选择Access,保存7.0MDB文件生成数据库,即可生成我们需要的数据库。

图3-4可视化数据管理器

3.2登录窗体和注册窗体的设计

3.2.1系统登录表

系统登录:包括登录帐号、密码、用户类型。登录信息E-R图如图3-5所示。

图3-5登录信息E-R图

登录表设计如图3-6所示右键单击表一部分可以进入设计视图,这个时候会弹出对话框提示我们保存表。

图3-6登录表设计

华北水利水电大学毕业设计

保存对话框如图3-7所示以账户登录为表名称保存之后进入设计视图,可以继续进行设计。

图3-7保存对话框

账户信息表设计视图如图3-8所示,设置账号为主键,密码和用户类型。帐号和密码数据类型为数字,用户类型的数据类型为文本。

图3-8账户信息表设计视图

完成了数据的属性设置之后我们要对数据进行数据的录入,录入数据后的数据表视图如图3-9所示。

图3-9数据表视图

3.2.2设置登录窗体

首先我们进行登录表窗体的设计,控件的布局设置,登录窗体设计视图如图3-10所示。

图3-10登录窗体设计视图

华北水利水电大学毕业设计

登录窗体包含用户名,密码两个输入框。登录,退出两个按钮。三个标签框,一个图片框,一个ADO控件。

选择Form窗体在属性中把Caption改为车辆信息管理。

标签控件Label1属性中把Caption 改为车辆信息管理系统,Font字体设置为宋体粗体倾斜48号字体,Alignment设置为2-Center,Autosize设置为True,BackStyle选择设为0-Transparent。

标签控件Label2属性设置中在Caption 后输入帐号,标签控件Label3属性设置中在Caption 后输入密码。公用属性Font字体选择为宋体粗体倾斜二号号字体,Alignment选择为2-Center,Autosize选择为True.BackStyle选择设为0-Transparent.文本控件Text1对应帐号标签,文本控件Text2对应密码标签。公用属性设置中把Text对应的名字删除,字体选择宋体三号字体。在Text2中另外设PaxxWordChar后边输入“*”,设置密文密码。

按钮控件Command1属性设置中Caption 后边输入登录,按钮控件Command2属性设置中Caption后输入注册, 公用属性Font字体设置为宋体三号字体。

图片控件Image1属性中选择Picture后边可以选择你喜欢背景的图片,Stretch选择设为True.使图片适应控件大小。右键单击图片控件会出现一个选择菜单,选择置后可以使其他控件显示在图片之前显示,图片控件设置以后不在赘述。

ADO控件的属性设置Visible设置为False,以后ADO控件均执行此设置以后出现不再赘述。

在工具栏右键单击选择部件,勾选添加控件图如图3-11所示,可以添加ADO控件到工具栏。

图3-11添加控件图

华北水利水电大学毕业设计

之后点击确定即可在工具栏显示ADO控件,添加进窗体即可。

ADO控件链接数据库,右键点击ADODC控件选择属性出现属性页如图3-12所示。

图3-12属性页

点击生成选择界面选择数据链接界面如图3-13蓝线选项,点击下一步进行链接。

图3-13选择数据链接界面

选择已创建好的数据库,测试链接成功测试连接界面如图3-14所示点击确定。提示测试链接成功就代表我们成功链接数据,之后我们可以对数据的信息进行操作。

图3-14测试链接界面

华北水利水电大学毕业设计

返回属性页选择记录源命令类型,选择2-adCndTable下边可以选择调用的表如果没有出现需要调用表的名字,记录源如图3-15所示只需输入表的名字即可,就可以选择我们需要的数据打开的是哪个表。点击确定即可确定我们需要链接的表。

图3-15记录源

登录窗体关键程序如下:

Adodc1.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + App.Path + “车辆信息.mdb;” Adodc1.CommandType = adCmdText Adodc1.RecordSource = “select * from 登录

where 帐号 ='”& Trim(Text1.Text)&“'” Adodc1.Refresh '(这是给ADODC设置数据库及数据源并刷新数据源)If Adodc1.Recordset.Fields(“用户类型”)= “管理员” Then

身份权限判断 If Adodc1.Recordset.RecordCount >“ 0” Then

'查找存在该用户 If Adodc1.Recordset.Fields(“密码”)<> Text2.Text Then

'核对用户密码 MsgBox “密码错误,请重新输入!”

’消息盒子 Text2.SetFocus’获取焦点

3.2.3注册窗体

添加窗体在工程栏中右键单击出现添加选项,再选择窗体,点击确定即完成创建窗体,右键单击新建好的窗体选择保存窗体即可保存新窗体。打开新的窗体跟登陆窗体操作类似。

对于注册窗体的控件布局设置,注册窗体的设计视图如图3-16所示。

华北水利水电大学毕业设计

图3-16注册窗体的设计视图

选择Form窗体在属性中把Caption改为注册界面。

标签控件Label1属性中Caption 改为欢迎注册本系统,Font字体设置为宋体粗体倾斜48号字体,Alignment设置为2-Center,Autosize设置为True.BackStyle选择设为0-Transparent.标签控件Label2属性中Caption 后输入“帐号”,Font把字体设置为宋体粗体倾斜二号字体,Alignment选择为2-Center,Autosize选择为True, BackStyle选择设为0-Transparent.标签控件Label3属性中Caption 后输入密码,Font字体选择为宋体粗体倾斜二号号字体,Alignment选择为2-Center,Autosize选择为True.BackStyle选择设为0-Transparent.文本控件Text1对应帐号标签在属性设置中把Text对应的名字删除,字体选择宋体常规三号字体。

文本控件Text2对应密码标签在属性设置中把Text对应的名字删除,字体选择宋体三号字体。

按钮控件Command1属性设置界面中Caption 后边改为注册, ,Font字体设置为宋体三号字体。

按钮控件Command2属性设置界面中Caption 后边改为返回,Font字体设置为宋体三号字体。

ADO的链接方法与登录窗体的相同此处不再赘述。注册程序代码如下:

华北水利水电大学毕业设计

Adodc1.RecordSource = “ select * from 登录” Adodc1.Refresh’获取数据表信息 Adodc1.Recordset.AddNew Adodc1.Recordset.Fields(“帐号”)= Trim(Text1.Text)Adodc1.Recordset.Fields(“密码”)= Trim(Text2.Text)Adodc1.Recordset.Update

’添加信息到登录表

3.2.4用户信息管理窗体

用户信息窗体控件布局设置,用户信息窗体设计图如图3-17所示。

图3-17用户信息窗体设计图

选择Form窗体在属性中把Caption改为用户信息管理。添加一个Frame1控件选择置后可以在里边添加控件。

标签控件Label1属性中Caption 后边改为用户信息管理界面,Font字体设置为宋体倾斜小初字体,Alignment设置为2-Center,Autosize设置为True.BackStyle选择设为0-Transparent.标签控件Label2属性中Caption后边改为帐号,标签控件Label3属性中Caption 后边改为密码,标签控件Label4属性中Caption 后边改为用户类型,公用属性Font字体设置为宋体2号字体,Alignment设置为2-Center,Autosize设置为True.BackStyle选择设为0-Transparent.文本控件Text1对应帐号标签,文本控件Text2对应密码标签,文本控件Text3对应用户类型标签在属性设置中把Text对应的名字删除,字体选择宋体常规三号字体。

按钮控件Command1属性中Caption 后边改为查询用户, 按钮控件Command2属性

华北水利水电大学毕业设计

中Caption 后边改为添加管理 ,按钮控件Command3属性界面中Caption 后边改为删除用户 ,按钮控件Command4属性界面中Caption 后边改为返回 ,他们的Font字体选择为宋体三号字体。Style设置为1-Graphical,BackColor可以设置想要的颜色。

DataGrid控件在登录界面引用ADO控件时已经引用过了,在工具栏里边直接放进窗体即可,属性中的DataSource选为Adoac1。本设置此控件设置属性均相同其他窗体不再赘述。

ADO控件的设置与登录窗体,不赘述。注册窗体是添加按钮,而添加管理,查询用户,删除用户分别是修改和查询,查出功能的实现主要代码如下:

Adodc1.RecordSource = “SELECT * FROM 登录 WHERE 帐号='” + Trim(Text1.Text)+ “'” Adodc1.Refresh

’获取查询条件

With Text2

’设置控件绑定信息 Set Text2.DataSource = Adodc1 Text2.DataField = “密码” End With With Text3 Set Text3.DataSource = Adodc1 Text3.DataField = “用户类型” End With End Sub Private Sub Command2_Click()

’修改程序

Adodc1.RecordSource = “select * from 违章 where 车牌号码=”& Text1.Text &“"

’ 通过主键修改

Adodc1.Recordset.Fields(”帐号“)= Text1.Text Adodc1.Recordset.Fields(”密码“)= Text2.Text Adodc1.Recordset.Fields(”用户类型“)= Text3.Text Adodc1.Recordset.Update MsgBox ”修改成功!“ End Sub

华北水利水电大学毕业设计

Private Sub Command3_Click()If Me.Adodc1.Recordset.RecordCount

=

0

Or

Me.Adodc1.Recordset.EOF Then

’判断记录是否为空

Exit Sub End If

Me.Adodc1.Recordset.Delete

’删除记录

Me.Adodc1.Recordset.MoveNext

’移到吓一条记录 If Me.Adodc1.Recordset.RecordCount = 0 Then Exit Sub End If If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast MsgBox ”删除成功!" End Sub 3.3用户主窗体和管理员窗体

3.3.1普通用户窗体

普通用户窗体控件布局设置,普通用户窗体的设计视图如图3-19所示。

图3-18普通用户窗体的设计视图

普通用户窗体所示包含系统菜单栏,两个标签控件,六个按钮控件,一个Timer1

华北水利水电大学毕业设计

控件。

Unload Me 关闭当前窗体。Form1.Show 打开相应的窗体。

右键单击窗体空白部分选择菜单栏编辑器,设置内容菜单栏编辑器视图如图3-19所示。

图3-19栏编辑器视图

输入标题和名字,按向下的箭头即可添加,添加结束后点击确定按钮即可完成创建,注意如果要创建子菜单可以选择左右的箭头来设置子菜单。菜单的效果可以设置与按钮的效果相同可以打开其他的窗体,子窗体具有相同的效果。

选择Form窗体在属性中把Caption改为车辆信息管理系统。

时间显示设置要添加Timer1控件,写入代码在窗体内加入Timer1.Interval = 1000,在控件内加入Label1.Caption = Now()即可显示现在时间。把Timer1右键单击选择置后即可在运行界面不显示。

标签控件Label1属性界面中Caption 后边的值删除,Font字体选择为宋体三号字体。标签控件Label2属性中Caption 后边改为现在时间,Font字体设置为宋体二号字体,公共属性Alignment设置为2-Center,Autosize设置为True.BackStyle后选择0-Transparent。

按钮控件Command1属性中Caption 后边改为车主信息,按钮控件Command2属性界面中Caption 后边改为年检信息,按钮控件Command3属性中Caption 后边改为保险信息,按钮控件Command4属性中Caption 后边改为事故信息,按钮控件Command5属性中Caption 后边改为违章信息, 按钮控件Command6属性中Caption 后边改为退出, ,公用属性Font字体选择为宋体三号字体。

窗体的完整程序见附录,以后不做特殊说明本论文所有程序均在附录显示。

华北水利水电大学毕业设计

3.3.2管理员窗体

管理员窗体的控件设置内容位置,管理员窗体的设计视图如图3-20所示。

图3-20管理员窗体的设计视图

管理员窗体有一个菜单栏,两个标签控件,六个按钮控件,一个Timer1控件。首先是菜单栏的设置内容,菜单栏设计视图如图3-21所示。

图3-21菜单栏设计视图

选择Form窗体在属性中把Caption改为车辆信息管理系统。时间显示设置要添加Timer1控件,属性设置与普通用户界面相同。标签控件属性与普通用户界面相同此处不赘述。

按钮控件Command1属性中Caption 后边改为车主信息管理,按钮控件Command2

华北水利水电大学毕业设计

属性中Caption 后边改为年检信息管理 ,按钮控件Command3属性中Caption 后边改为保险信息管理 ,按钮控件Command4属性中Caption 后边改为事故信息管理 ,按钮控件Command5属性中Caption 后边改为违章信息管理,按钮控件Command6属性中Caption 后边改为切换普通界面。公用属性Font字体设置为宋体三号字体。

按Ctrl加鼠标左键可以选定多个按钮控件,选择菜单栏里边的格式可以编辑控件的大小统一和位置的统一。可以顶端,底端,靠左右对齐可以使界面更加美观优化。

主要用到程序语言Form3.CD.Visible = True可以使指定的窗体控件改变显示属性。

3.4车主信息管理窗体

3.4.1车主信息表

车主信息:包含了车主的姓名,车辆类型,车主年龄,性别,证件号,籍贯,驾驶信息等等。车主信息E-R图如图3-22所示。

图3-22车主信息E-R图

在工具菜单栏选择创建,创建车主信息表对表内容的属性设置,车牌号码,车主的姓名,籍贯,车辆类型,性别,证件号,车主年龄,发证日期,证件有效期,出生日期。数据的属性车主信息表设计视图如图3-23所示。

图3-23车主信息表设计视图

华北水利水电大学毕业设计

这里出生日期文本里边日期可以输入掩码显示格式,点击输入掩码后边弹出窗体,选择长日期下一步即可设定提起掩码。输入掩码图如图3-24所示。

图3-24输入掩码图

经过数据属性的设计,对数据进行录入之后车主信息表的数据表,数据表视图如图3-25所示。

图3-25数据表视图

3.4.2车主信息窗体设计

车主信息窗体主的控件布局视图,车主信息窗体设计视图如图3-26所示。

图3-26车主信息窗体设计视图

车主信息窗体包括十个标签控件,十个文本控件,六个按钮控件,一个ADO控件,一个DataGrid控件。

选择Form窗体在属性中把Caption改为车辆信息管理系统。

标签控件Label1属性中Caption 后边改为车牌号,标签控件Label2属性中Caption 后边改为车牌类型,标签控件Label3属性中Caption 后边改为性别, 标签控件Label属性

华北水利水电大学毕业设计

中Caption 后边改为籍贯,标签控件Label5属性中Caption 后边改为车主姓名,标签控件Label6属性中Caption 后边改为证件有效期,标签控件Label7属性中Caption 后边改为驾驶年龄,标签控件Label8属性中Caption 后边改为证件号,标签控件Label9属性中Caption 后边改为出生日期,标签控件Label10属性中Caption 后边改为发证日期,公共属性Font字体设置为宋体2号字体,Alignment设置为2-Center,Autosize设置为True.BackStyle选择为0-Transparent.文本控件Text1对应车牌号标签,文本控件Text2对应车辆类型标签,文本控件Text3对应车主姓名标签,文本控件Text4对应性别标签,文本控件Text5对应出生日期标签,文本控件Text6对应证件有效期标签,文本控件Text7对应籍贯标签,文本控件Text8对应驾驶年龄标签,文本控件Text9对应发证日期标签,文本控件Text10对应证件号标签。公用属性设置中把Text对应的名字删除,字体选择宋体常规三号字体。

按钮控件Command1属性中Caption 后边改为查询, 按钮控件Command2属性中Caption 后边改为返回 ,公用属性Font字体设置为宋体三号字体。

按钮控件Command3属性中Caption 后边改为添加 按钮控件Command4属性中Caption 后边改为修改 ,按钮控件Command5属性中Caption 后边改为删除,按钮控件Command6属性中Caption 后边改为返回 ,公用属性Font字体设置为宋体三号字体。Visible设置为False。Style设置1-Graphical,BackColor可以设置想要的颜色。

车主,年检,保险,违章,事故。六个按钮控件属性设置是相同的其他窗体出现不再赘述。标签控件和文本控件的公用属性相同在其他窗体不再赘述。

ADO控件的操作与上边的数据连接操作相同只有表记录选择改变,ADO控件记录选择车主属性页如图3-27所示。

华北水利水电大学毕业设计

图3-27车主属性页

3.5年检信息管理窗体

3.5.1年检信息表

年检信息:包括从购车到现在所有的年间信息,年检信息E-R图如图3-28所示。

图3-28年检信息E-R图

年检记录表的设计为文本属性,年检记录表设计视图如图3-29所示。

图3-29年检记录表设计视图

年检记录的数据输入之后,年检记录数据表视图如图3-30所示。

图3-30年检记录数据表视图

华北水利水电大学毕业设计

3.5.2年检记录窗体设计

年检记录窗体的控件布局,年检记录窗体设计视图如图3-31所示。

图3-31年检记录窗体设计视图

年检信息窗体包括七个标签控件,七个文本控件,六个按钮控件,一个ADO控件,一个DataGrid控件。

选择Form窗体在属性中把Caption改为年检记录。

标签控件Label1属性中Caption 后边改为车牌号,标签控件Label2属性中Caption 后边改为检查日期,标签控件Label3属性中Caption 后边改为检查日期,标签控件Label4属性中Caption 后边改为检查日期,标签控件Label5属性中Caption 后边改为备注,标签控件Label6属性中Caption 后边改为备注,标签控件Label7属性中Caption后边 改为备注。

文本控件Text1对应车牌号标签,文本控件Text2对应检查日期标签,文本控件Text3对应检查日期标签,文本控件Text4对应检查日期标签,文本控件Text5对应备注标签,文本控件Text6对应备注标签,文本控件Text7对应备注标签。

ADO控件的操作与上边的数据连接操作相同只有表记录选择改变,ADO控件记录选择年检属性页如图3-32所示。

华北水利水电大学毕业设计

图3-32年检属性页

3.6事故信息管理窗体

3.6.1事故信息表

事故信息:包括事故的时间,地点,原因。对方姓名,对方的车号,处理方式,责任认定等信息。事故信息E-R图如图3-33所示。

图3-33事故信息E-R图

事故信息的数据属性设置,事故信息设计视图如图3-34所示。

图3-34事故信息设计视图

华北水利水电大学毕业设计

事故信息输入数据,事故信息数据表视图如图3-35所示。

图3-35事故信息数据表视图

3.6.2事故信息窗体设计

事故窗体的控件布局,事故窗体设计视图如图3-36所示。

图3-36事故窗体设计视图

事故信息窗体包括九个标签控件,九个文本控件,六个按钮控件,一个ADO控件,一个DataGrid控件。

选择Form窗体在属性中把Caption改为事故记录。

标签控件Label1属性中Caption 后边改为车牌号,标签控件Label2属性中Caption 后边改为事故时间,标签控件Label3属性中Caption 后边改为事故地点,标签控件Label4属性中Caption后边改为事故原因,标签控件Label5属性中Caption 后边改为对方车号,标签控件Label6属性中Caption 后边改为对方姓名,标签控件Label7属性中Caption 后边改为处理方式,标签控件Label8属性中Caption后边 改为责任认定,标签控件Label9属性中Caption后边改为赔付内容, 文本控件Text1对应车牌号标签,文本控件Text2对应事故时间标签,文本控件Text3对应事故地点标签,文本控件Text4对应事故原因标签,文本控件Text5对应对方车号标签,文本控件Text6对应对方姓名标签,文本控件Text7对应处理方式标签,文本控件Text8对应责任认定标签,文本控件Text9对应赔付内容标签。

华北水利水电大学毕业设计

ADO控件的操作与上边的数据连接操作相同只有表记录选择改变,ADO控件记录选择事故属性页如图3-37所示。

图3-37事故属性页

3.7违章信息管理窗体

3.7.1违章信息表

违章信息:包括违章的原因,处罚,时间,扣分情况,处理情况等等均在本模块显示。违章信息E-R图如图3-38所示:

图3-38违章信息E-R图

违章信息的数据属性设置,违章信息表设计视图如图3-39所示。

图3-39违章信息表设计视图

违章信息输入数据后数据表视图,违章信息数据表视图如图3-40所示。

华北水利水电大学毕业设计

图3-40违章信息数据表视图

3.7.2违章信息窗体设计

违章信息窗体的控件布局设置,违章信息窗体设计视图如图3-41所示。

图3-41违章信息窗体设计视图

违章信息窗体包括六个标签控件,六个文本控件,六个按钮控件,一个ADO控件,一个DataGrid控件。

选择Form窗体在属性中把Caption改为违章记录。

标签控件Label1属性中Caption 后边改为车牌号,标签控件Label2属性中Caption 后边改为违章原因,标签控件Label3属性中Caption 后边改为违章时间,标签控件Label4属性中Caption 后边改为处罚,标签控件Label5属性中Caption 后边改为扣分,标签控件Label6属性中Caption 后边改为备注, 文本控件Text1对应车牌号标签,文本控件Text2对应违章原因标签,文本控件Text3对应违章时间标签,文本控件Text4对应处罚标签,文本控件Text5对应扣分标签,文本控件Text6对应备注标签。

华北水利水电大学毕业设计

ADO控件的操作与上边的数据连接操作相同只有表记录选择改变,ADO控件记录选择,违章属性页如图3-42所示。

图3-42违章属性页

3.8保险信息管理窗体

3.8.1保险信息表

保险信息:这里主要包括了保险日期,类型,备注生效情况。保险信息E-R图如图3-43所示。

图3-43保险信息E-R图

保险信息表数据属性的设置,保险信息表设计视图如图3-44所示。

华北水利水电大学毕业设计

图3-44保险信息设计视图

数据属如之后的数据表视图,数据表视图如图3-45所示。

图3-45数据表视图

3.8.2保险信息查询窗体设计

保险信息窗体的控件布局设置视图,保险信息设计视图如图3-46所示。

图3-46保险信息设计视图

保险信息窗体包括四个标签控件,四个文本控件,六个按钮控件,一个ADO控件,一个DataGrid控件。

选择Form窗体在属性中把Caption改为保险记录。

标签控件Label1属性中Caption 后边改为车牌号,标签控件Label2属性中Caption 后边改为保险日期,标签控件Label3属性中Caption 后边改为保险类型,标签控件Label4属性中Caption 后边改为备注, 文本控件Text1对应车牌号标签,文本控件Text2对应保险日期标签,文本控件Text3对应保险类型标签,文本控件Text4对应备注标签。

华北水利水电大学毕业设计

ADO控件的操作与上边的数据连接操作相同只有表记录选择改变,ADO控件记录选择保险属性页如图3-47所示。

图3-47保险属性页

华北水利水电大学毕业设计

第四章系统的具体实现与结论

通过第三章的设计和制作,车辆信息管理系统以设计完成。现在进行系统功能的演示。本章重点:对软件调试,生成应用程序,程序功能的演示与注释。

4.1软件调试

打开工程之后,点击任务栏上的运行,启动进行程序调试图如图4-1所示。

图4-1调试图

当所有程序运行正常时。点击任务栏的运行结束运行,点击文件下拉列表里边有生成应用程序。保存文件名称为车辆信息管理系统,保存到桌面成工程界面如图4-2生所示。

华北水利水电大学毕业设计

图4-2生成工程界面

生成桌面应用程序桌面图如图4-3所示,到此设计全部完成。

图4-3桌面图

4.2系统演示

4.2.1系统注册与登录

1,系统注册演示:打开车辆信息管理应用程序,点击注册按钮即可进入系统注册窗体如图4-4所示。通过注册窗体用户可以注册新用户使用本系统,点击注册会有注册成功的提示并且跳转到登录窗体,返回可以返回到登录窗体。

华北水利水电大学毕业设计

图4-4系统注册窗体

2,系统登录演示:打开车辆信息管理程序首先是系统登陆窗体,登录窗体实现对帐号密码的判定,如果输入为空则提示重新输入,登录成功若是普通用户即进入普通用户窗体,若是管理员用户则进入管理员窗体。注册按钮可以进入注册窗体。系统登陆窗体如图4-5所示。

图4-5系统登陆窗体

4.2.2普通用户窗体

普通用户登陆进入普通用户窗体,该窗体有菜单栏按钮,包括车主信息,年检记录,保险记录,事故记录,违章记录,退出系统选项。可以进入对应的窗体,退出系统可退出系统。界面上的车主信息按钮可以进入车主信息查询窗体,年检记录按钮可以进入年

华北水利水电大学毕业设计

检记录查询窗体,保险记录可以进入保险记录查询窗体,事故记录按钮可以进入事故记录查询按钮,违章记录按钮可以进图违章记录查询窗体,退出按钮就是退出程序,普通用户窗体运行图如图4-6所示。

图4-6普通用户窗体

车主信息查询窗体可以对车辆的类型,车主姓名,性别,籍贯,出生日期,证件号,发证日期,证件有效期,驾驶年龄等信息进行查询。车主信息查询窗体运行程序如图4-7所示。

华北水利水电大学毕业设计

图4-7车主信息查询窗体

年检记录查询窗体可以对车辆近几年的年检记录日期和备注信息进行查询,年检记录查询窗体运行程序如图4-8所示。

图4-8年检记录查询窗体

保险记录查询窗体可以对车辆的保险日期,保险类型,保险备注信息进行查询。保险记录查询窗体运行程序如图4-9所示。

华北水利水电大学毕业设计

图4-9保险记录查询窗体

事故记录查询窗体可以对车辆的事故时间,地点,原因,对方车号,对方姓名,处理方式,责任认定,赔付内容进行查询。事故记录查询窗体运行程序如图4-10所示。

图4-10事故记录查询窗体

违章记录查询窗体可以对车辆的违章原因,时间,处罚,扣分,备注信息查询。违章记录查询窗体程序运行如图4-11所示。

华北水利水电大学毕业设计

图4-11违章记录查询窗体

4.2.3管理员窗体

管理员登录管理员窗体。管理员窗体有菜单栏按钮,包括车主信息管理,年检记录管理,保险记录管理,事故记录管理,违章记录管理,用户信息管理,界面切换管理,退出系统选项。可以进入对应的窗体,退出系统可退出系统。界面上的车主信息管理按钮可以进入车主信息管理窗体,年检记录管理按钮可以进入年检记录管理窗体,保险记录管理可以进入保险记录管理窗体,事故记录管理按钮可以进入事故记录管理按钮,违章记录管理按钮可以进图违章记录管理窗体,切换普通界面就是切换至普通用户窗体,管理员窗体视图窗体程序运行如图4-12所示。

图4-12管理员窗体

华北水利水电大学毕业设计

车主信息管理窗体可以对车辆的类型,车主姓名,性别,籍贯,出生日期,证件号,发证日期,证件有效期,驾驶年龄等信息进行查询,修改,添加和删除操作。车主信息管理窗体程序运行如图如图4-13所示。

图4-13车主信息管理窗体

年检记录管理窗体可以对对车辆近几年的年检记录日期和备注信息进行查询,添加修改和删除操作,年检记录管理窗体运行程序如图4-14所示。

图4-14年检记录管理窗体

保险记录管理窗体可以对车辆的保险日期,保险类型,保险备注信息进行查询,添加,修改,删除操作。保险记录管理窗体运行程序如图4-15所示。

华北水利水电大学毕业设计

图4-15保险记录管理窗体

事故记录管理窗体可以对车辆的事故时间,地点,原因,对方车号,对方姓名,处理方式,责任认定,赔付内容进行查询,添加,修改,删除操作。事故记录管理窗体程序运行如图4-16所示。

图4-16事故记录管理窗体

违章记录管理窗体可以对车辆的违章原因,时间,处罚,扣分,备注信息查询,添加,修改和删除操作。违章记录管理窗体程序运行如图4-17所示。

华北水利水电大学毕业设计

图4-17违章记录管理窗体

用户信息管理窗体可以对用户的信息进行查询,设置管理员,删除用户操作。用户信息管理窗体程序运行如图4-18所示。

图4-18用户信息管理窗体

华北水利水电大学毕业设计

华北水利水电大学毕业设计

第五章结论

本次设计是车辆信息管理系统的设计,车辆信息管理系统是对车辆信息信息进行有效的管理的最高效的处理工具。信息管理学系统发展到今天,其技术已经成熟。但是对于我们还没踏出校门的大学生来说。其中的设计思想还是值得我们去学习和研究的。

对于本设计的车辆信息管理系统来说,其特点是管理信息覆盖所有车辆相关的信息,系统的整体设计条理清晰,分层次分模块设计。三个层次登录,主窗体,子查询窗体和子管理窗体。登录部分包括登录和注册,主窗体部分包括普通用户窗体和管理员窗体。子查询窗体包括普通用户可以对车辆的相关信息进行查询,子管理窗体可以对信息进行处理操作。五个模块分别是车主信息,年检信息,违章信息,事故信息,保险信息。另外我还在各个窗体上添加了时间的显示控件,可以让我们使用程序可以很方便的看到时间,除了在文本控件中显示信息之外,我还在窗体控件中添加了表格。在我们进行查询和修改时可以更加的直观去了解车辆相关信息。

紧张忙碌的毕业设计已经接近尾声,我所设计的车辆信息管理系统也已经完成。经过这次毕业设计我发现信息管理系统是通用的,不仅仅是车辆信息管理对于以后我们进入公司也可以制作相应员工信息管理系统,进出场物料信息管理系统等等。都可以稍加更改即可开发成功。另外本系统还可以与车牌号识别系统进行结合做成小型社区门禁系统。在小型社区车辆信息管理方面能得到广泛的应用。但是由于毕业设计的时间较短,用户界面还不够完美,系统的反应速度不是很快。开始设计资料查找出错浪费了好多时间,这些在以后的工作中都要避免。

经过本次为期半年的毕业设计,使自主学习的能力有了很大的提升,并且与同学之间的团结协作能力也有了很大的提高。我相信在以后的工作当中,我一定可以吧所学的知识融入到工作当中去,理论联系实践。把所学的理论知识充分的发挥,学以致用。为社会主义的建设贡献自己的一份力量。

华北水利水电大学毕业设计

华北水利水电大学毕业设计

参考文献

[1]:王世迪.Visual Basic程序设计教程[M].重庆:重庆大学出版社,2002.26-106 [2]:蔡翠平.Visual Basic程序设计[M].北京:清华大学出版社,2002.1-24 [3]:任芳芳,姚建军,陈江等.图解精通ACCESS2007中文版[M].北京:中国水利水电出版社,2008.26-28 [4]:明日科技.Visual Basic管理信息系统完整项目实例剖析[M].北京:人民邮电出版社,2006.36-48 [5]:白鹏.Visual Basic编程实例与技巧[M].北京:科学出版社,2003.48-58 [6]:李言照.Visual Basic 程序设计教程[M].北京:中国农业出版社,2007.70-104 [7]:李雁翎.Visual Basic程序设计 [M].北京:清华大学出版社,2005.60-90 [8]:罗朝盛.Visual Basic 6.0程序设计教程[M].北京:人民邮电出版社,2005.50-70 [9]:唐大仕.Visual Basic 程序设计[M].北京:清华大学出版社,2004.20-50 [10]:王樵民.ACCESS2003数据库开发典型范例[M].北京:人民邮电出版社,2006.40-80

华北水利水电大学毕业设计

华北水利水电大学毕业设计

致谢

为期一个学期的毕业设计即将就要结束了。在本次毕业设计中,我从指导老师张涛老师身上学到了很多东西。他循循善诱的指导给予我很大的启迪,他在学习工作中严谨细致,一丝不苟的工作作风将一直是我学习的榜样。张涛老师认真负责的工作态度,严谨的治学精神更和深厚的理论水平都使我受益颇深。无论在理论还是实践上都给予我很大的帮助,让我得到了很大的提高。这对我以后的工作和学习都是巨大的帮主,感谢他耐心的指导,及华北水水电大学为我们提供的设计环境。并感谢我们一组的其他同学从他们身上我学到了很多东西并且培养团队合作的精神。最后我还要感谢我的父母是他们一直在背后默默地支持我。毕业设计做为大学的最后一个教学环节。是对我们动手实践能力,理论结合实践的能力一个很好的检验方法。在这次的毕业设计过程中,我通过自己的努力学习,在老师的细心指导下,加上本小组同学的探讨。让我不仅在知识水平和解决实际问题的能力上有了很大的提高,认识到综合掌握知识和合理运用知识解决实际问题的重要性。

第四篇:学生信息管理系统全套(VB+ACCESS)

学生信息管理系统全套(VB+ACCESS)

[ 作者:Admin 来源:博景源 点击数:

学生信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建

2464 更新时间:2008-1-11 ]

立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。

经过分析,我们使用MICROSOFT公司的VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

关键字:控件、窗体、域、数据库。

–––––––––––––––––前 言–––––––––––––––––

随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。

本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。本系统主要包括学生信息查询、教务信息维护和学生选课三部分。其功能主要有: ⒈有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。⒉学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。⒊学生信息的修改。

⒋班级管理信息的输入,包括输入班级设置、年级信息等。⒌班级管理信息的查询。⒍班级管理信息的修改。

⒎学生课程的设置和修改。

目 录

前言

第一章 Visual Basic 概述

1.1 Visual Basic 语言的特点

1.2 Visual Basic 系统几个程序应用中的常用名词 第二章 Windows 下的Visual Basic 编程环境简介 2.1 面对对象的编程 2.2 实现菜单选项 2.3 实现工具栏

第三章 怎样开发一个学生信息管理系统的查询模块3.1 学生信息系统的设计分析 3.2 编程环境的选择 3.3 关系型数据库的实现 3.4 二者的结合(DBA)第四章 使用Access2000 创建数据库 4.1 数据库的概念 4.2 新建一个数据库 4.3 修改已建的数据库 第五章 可行性分析 第六章 系统总体规划 6.1 系统功能 6.2 系统流程图 第七章 系统具体实现 7.1 各功能的实现 7.1.1 课程管理

7.1.2 打印统计 结束语 后记 主要参考文献

第一章 Visual Basic 概述 1.1 Visual Basic 语言的特点

Visual Basic 语言用其设计应用程序时具有两个基本特点:可视化设计和事件驱动编程。(1)可视化设计:表现在VB在设计应用于程序界面时有“所见即所得”的处理功能。

(2)事件驱动编程:在设计应用程序时,把对象添加到窗体中,在用户与程序进行交互时,用户基本上是通过鼠标、键盘与应用程序进行交互的,那些对象就必须对鼠标和键盘操作所引发的事件做出响应,来执行一段应用程序。

1.2 Visual Basic 系统几个在程序应用中的常用名词

Visual Basic 系统除了一般高级语言所具有的一些名词术语外,还有几个系统常用的名词。其基本含义如下:

(1)视窗(Form)

视窗是进行人机交互的界面或接口,也叫窗体。VB系统的人机交互界面或接口,无论是在设计时或是在运行时,都是Windows 系统的标准视窗。(2)对象(Object)

对象是VB系统内部提供给设计者可以直接使用的处理输出的控制工具。本程序所应用到的对象类型有标签框(Label Box),文本框(Text Box),命令按扭(Command Button),网格(Data Grid),ADO控件(Adodc1)等。当把这些工具放置到用户界面对应的窗体上时,被称为对象或控件。用户可以通过设置对象的“属性”和“方法”,便于对象适应自己所设计应用程序的输入输出内容,对象的生成过程及结构都被封装起来。正确使用对象可以减少程序和开发时间,提高程序设计者的工作效率。(3)属性(Properties)

属性是VB系统提供的有关对象的参数或数据接口。用户通过适当地设置或改变对象的属性来确定对象的外观及性能特征,从而有效地使用系统提供的对象。比如,对象的名称、在屏幕上显示的位置、大小、颜色、接收或容纳的数据内容及数据的表现格式等。(4)事件(Events)

事件是指用户或操作者对计算机进行的某一操作(如击键、单击或移动鼠标等)的行为或系统状态发生的变化。VB系统常用事件来引导计算机执行一段程序。程序所用的键盘事件有KeyPress(按键)事件,KeyDown事件和KeyUp事件;鼠标事件有Click(单击鼠标)事件,DbDlicd(双击鼠标)。(5)方法(Method)

方法主要是指对一个对象使用某种作用的过程。它是在程序执行的过程中要计算机执行的某种操作。其程序的方法有Show(显示)方法,Hide(隐藏)方法,Refresh(刷新)方法。(6)过程(Procedure)

过程是指经过定义或说明的,或基于某一对象对应的事件所引发的程序段。(7)模块(Module)

模块是指一些运算量或过程进行声明或定义的一个集合。系统程序大体可分成四个模块:数据输入、根据查询、数据打印和通讯。

第二章 Windows下的Visual Basic 编程环境简介 2.1 面对对象的编程

面向对象的设计方法(OOP, Objected Programming)从应用领域内的问题着手,以直观自然的方式描述客观世界的实体。Visual Basic 作为一种面向对象的编程方法,把程序和数据封装起来作为一个对象,并为每个对象赋予相应的属性。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,由 Visual Basic 自动生成对象的程序代码并封装起来。Visual Basic 应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可说扩展性和强有力的功能。

Visual Basic 应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。2.2 实现菜单选项

菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Visual Basic 也提供了强大的创建菜单功能是程序更加标准。

本系统使用 Visual Basic 的菜单编辑器建立菜单或者修改已经存在的菜单,您也可以使用Visual Basic 的Application Wizard 来操作。2.3 实现工具栏

CoolBar控件与Office2000 中看到的CoolBar是类似的。CoolBar就是一个可以在窗体上浮动的工具,同时也是其他ActiveX的容器。通过在CoolBar中迁入其他空间你也可以向用户提供更好的灵活性和义用性。选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。在“控件”选项卡列表中选择“Microsoft Windows Common Controls 6.0”后工具相中增加改控件。

本系统就用了Cool工具中的Statubar控件,在系统这一界面中,添加了状态栏,在第一个栏中,在样式这一栏中选择了文本,在第二个栏中,选择了系统日期,第三个栏中选择了系统时间,这样,任何时候操作本系统,都可以看到当前的时间和日期。

第三章 怎样开发一个学生信息管理系统的查询模块? 3.1查询模块的设计分析

根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件模型。使用户可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。3.2编程环境的选择

微软公司的Visual Basic 6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应

用程序的运行效率和可*性。故而,实现本系统VB是一个相对较好的选择。3.3关系型数据库的实现

Access2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包同时拥有桌面数据库的便利和关系数据库的强大功能。3.4二者的结合(DBA)微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic来访问数据库并对 5 其进行各种操作。Visual Basic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。

ADODC控件在数据库中的信息与将信息显示给用户看的Visual Basic 程序之间架起了一座桥梁。我们可以设置ADODC控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,ADODC控件根据数据库中的一个或多个数据库表建立一个dynaset-type(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。将ADODC控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。

第四章 使用Access2000创建数据库 4.1数据库的概念

数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。4.2新建一个数据库

创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。1. 标识需要的数据;

2. 收集被子标识的字段到表中; 3. 标识主关键字字段; 4. 规范数据;

5. 标识指定字段的信息;

4.3修改已建的数据库

数据库的修改分为;添加、编辑和删除记录。这三种操作均可由Visual Basic创建的程序来完成,下面的章节将详细描述实现的具体方法 第五章 可行性分析

学生信息,作为一个学校,就有一定的工作量存在,而学生信息,它的工作量可能是其它信息工作量的几倍,班级的增加、班级的查找、班级的修改;学生档案;课程管理;成绩管理;缴费管理;统计等等,每个信息的数据都在不断地变化着,如果采用人工的方式进行操作,那么,一天的工作量,足以让人觉 6 得比较繁琐,吃不消。针对这样的情况,采用让数据的查询变得简单化,数据变的更让每个人都在任何时刻都可以了解到。

学生信息管理系统是为本校开发的,本系统所采用的语言是Visual Basic,用Microsoft Access 2000数据库完成。该系统总体有四部分组成,包括学生信息查询、教务信息维护、学生选课及用户管理。通过本系统,把本校内部查询学生信息、教务信息、学生选课各个环节进行有效地计划、组织和控制。通过本校内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。

本系统主要信息流程为:教务信息维护接受学生的信息,学生信息查询根据教务信息维护的学生信息做出对所接收的信息合理性进行判断,并交于信息维护进行相应的修改,再把信息存入数据库中。学生选课是对学生进行相应选择自己相关的课程。最后进行打印。

采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效益。由于采用统一的数据信息,使相关资料能够快速地查询所需的数据、资料及其它信息的,使信息快速高效运行。

本系统中使用到的数据表主要有班级表、成绩表、缴费表、课程表、学生档案、用户资料,由这六个表,组成了名为信息的数据库(如图一)。其中学生档案是本系统主要的(图一)

一张表,所有信息都是根据这张学生档案进行有关的操作,主要的字段有:学号、姓名、年级、专业、性别、出生年月、民族、籍贯、政治面貌、家庭地址、邮政编码、联系电话、入学时间、备注。其中日期的数据类型为日期/时间天型,其它的数据类型为文本型;成绩表中字段为:学号、姓名、年级、专业、学期、考试时间、考试科目、考试地点、课程性质、科目分数、违纪类型、备注;课程表中字段为:专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质、考试性质;用户资料中的字段包括:用户名、密码、身份。

数据库与VB的连接:本系统的数据链接采用的是ADO方法,打开控制面板,打开ODBC数据源图标,选择“系统DSN”标签,点击“添加”按钮,在弹出的“创建新数据源”对话框中选择名称为“Microsoft Access Drive(*.mdb)”,点击“完成”按钮,在ODBC Microsoft Access 安装对话框中在数据源名中输入信息,在数据库这个框中,单击“选择”按钮,在弹出的选择数据库这一对话框架中,在驱动器下拉列表框中选择本系统数据库所在驱动器,在目录中选择库所在的文件夹,在文件类型中选择选“Access数据库(*.mdb)”,在数据库名中选择本系统的数据库,点击“确定”按钮即完成数据链接。

在VB中,用ADODC链接数据库,用DataGrid或DATA将库中的数据在界面中显示出来,本系统采用 7 DataGrid。在界面上右击Adodc控制,在弹出的快捷菜单中选择属性,在属性对话框中,在“属性”这一标签中,选中单选框“Use ODBC Data Source Name”,并在下拉文本框中选择已经配置好的数据源名信息,再在“RecordSoure”标签中,在Commard Text(SQL)文本框中输入查询语句,如:select * from 学生档案。同时,将桌面的DataGrid控件选中,在属性框中,将它的Datasoure设为Adodc。

我们可以设置DataGrid控件的外观:选中该控件,右击,在弹出的快捷菜单中选择“检索字段”,在弹出的对话框中单击“确定”,这时,表格中出现了表的字段。然后再右击,同样,在弹出的快捷菜单中选择“编辑”,我们就可以所在的表格的宽度进行调整。第六章 系统(查询模块)总体规划 6.1系统功能(查询模块)1. 查询信息的情况; 2. 判断信息是否符合要求; 3. 将符合条件的信息进行打印; 6.2流程图

[1] [2] [3] [4] [5] 下一页

学生注册 基本信息输入 学籍信息管理 班级管理 班级课程设置 课程基本信息 班级课程管理 成绩信息输入 成绩信息管理 班级设置

第七章 系统具体实现

7.1各功能的实现

7.1.1课程管理:课程设置(如:界面如图二)(图二)

运行程序后,进入课程管理模块,课程管理模块的第一块是课程设置,在这模块中可以把专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质和考试性质等信息输入,以便使用。下面为其代码:

Private Sub Command1_Click()Dim myCon As New ADODB.Connection Dim myRs As New ADODB.Recordset Dim ZhuanYe, NianJi, XueQi, KeCheng, JiaoCai, RenKLS, KeShi, ShangKeDD, KeChengXZ, KaoShiXZ As String ZhuanYe = Text1.Text NianJi = Text2.Text XueQi = DTPicker1.Value KeCheng = Text4.Text JiaoCai = Text5.Text RenKLS = Text6.Text KeShi = Text7.Text ShangKeDD = Text8.Text KeChengXZ = Combo1.Text KaoShiXZ = Combo2.Text If Trim(ZhuanYe)= “" Or Trim(NianJi)= ”“ Or Trim(XueQi)= ”“ Or Trim(KeCheng)= ”“ Or Trim(JiaoCai)= ”“ Or Trim(RenKLS)= ”“ Or Trim(KeShi)= ”“ Or Trim(ShangKeDD)= ”“ Or Trim(KeChengXZ)= ”“ Or Trim(KaoShiXZ)= ”“ Then MsgBox ”请填写要修改课程资料的内容!“ Combo1.Text = ”“ Combo2.Text = ”“ Exit Sub End If myCon.Open ”dsn=信息“ myRs.Open ”select * from 课程表 where 专业='“ & Text1.Text & ”'“, myCon, 3, 2 myRs!年级 = Text2.Text myRs!学期 = DTPicker1.Value myRs!课程名称 = Text4.Text myRs!教材 = Text5.Text myRs!任课老师 = Text6.Text myRs!课时 = Text7.Text myRs!上课地点 = Text8.Text myRs!课程性质 = Combo1.Text myRs!考试性质 = Combo2.Text myRs.Update myRs.Close myCon.Close MsgBox ”您确定要修改吗?“, vbYesNo, ”提示“ Frm_UpdateGrean.Adodc1.Refresh Frm_UpdateGrean.DataGrid1.Refresh

Text1.Text = ”“ Text2.Text = ”“ 'Text3.Text = ”“ Text4.Text = ”“ Text5.Text = ”“ Text6.Text = ”“ Text7.Text = ”“ Text8.Text = ”“ Combo1.Text = ”“ Combo2.Text = ”“ End Sub Private Sub Command2_Click()Unload Me End Sub

Private Sub Command3_Click()Unload Me Frm_FindGrean.Show 1 End Sub

Private Sub DataGrid1_Click()'Frm_UpdateGrean.Adodc1.RecordSource = ”select * from 课程表 where 专业 = '“ & Trim(DataGrid1.Row)& ”'“ 'Text1.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(”专业“)'Text2.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(”年级“)'Text3.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(”学期“)'Text4.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(”课程名称“)'Text5.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(”教材“)'Text6.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(”任课老师“)'Text7.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(”课时“)'Text8.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(”上课地点“)'Combo1.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(”课程性质“)'Combo2.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields(”考试性质“)End Sub

Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)End Sub

Private Sub Form_Activate()Frm_FindGrean.Adodc1.RecordSource = strTiaoJian Frm_FindGrean.Adodc1.Refresh Set DataGrid1.DataSource = Frm_FindGrean.Adodc1 End Sub

Private Sub Form_Load()Combo1.AddItem(”必修“)Combo1.AddItem(”选修“)Combo1.AddItem(”自开“)Combo2.AddItem(”考试“)Combo2.AddItem(”查考“)Text1.Text = ”“ Text2.Text = ”“ 'Text3.Text = ”“ Text4.Text = ”“ Text5.Text = ”“ Text6.Text = ”“ Text7.Text = ”“ Text8.Text = ”“ Combo1.Text = ”“ Combo2.Text = ”“ End Sub

Private Sub Text1_Change()End Sub

Private Sub Text2_Change()End Sub

Private Sub Text8_Change()End Sub 课程管理:课程查询(如:界面如图三)(图三)

当输入查询类别、运算符和条件后可以查找到所需要的课程设置,或按查询时间来查询,输入所要查找的时间段,就可查到所要的课程设置。代码如下: Dim sqlstr As String

Private Sub Combo1_Change()End Sub

Private Sub Combo2_Change()End Sub

Private Sub Combo4_Change()End Sub

Private Sub Combo5_Change()End Sub

Private Sub Combo7_Change()End Sub

Private Sub Command1_Click()Dim a As String Dim KCCX1 As String Dim KCCX2 As String Dim str1 As String Dim str2 As String

If Option3.Value = True Then a = Trim(Combo2)Select Case a Case ”=“ KCCX1 = ”“ & Combo1.Text & ” “ & Combo2.Text & ” '“ & Trim(Text1)& ”'“ Case ”like“ KCCX1 = ”Instr(1,“ & Combo1.Text & ”,'“ & Trim(Text1.Text)& ”')<>0 “ End Select

a = Trim(Combo4)Select Case a Case ”=“ KCCX2 = ”“ & Combo3.Text & ” “ & Combo4.Text & ” '“ & Trim(Text2)& ”'“ Case ”like“ KCCX2 = ”Instr(1,“ & Combo3.Text & ”,'“ & Trim(Text2.Text)& ”')<>0 “ End Select

If Option1.Value = True Then If KCCX1 = ”“ Then strTiaoJian = ”select * from 课程表 where “ & KCCX2 ElseIf KCCX2 = ”“ Then & 上一页 [1] [2] [3] [4] [5] 下一页

bsp;strTiaoJian = ”select * from 课程表 where “ & KCCX1

Else strTiaoJian = ”select * from 课程表 where “ & KCCX1 & ”and “ & KCCX2 End If ElseIf Option2.Value = True Then If KCCX1 = ”“ Then strTiaoJian = ”select * from 课程表 where “ & KCCX2 ElseIf KCCX2 = ”“ Then strTiaoJian = ”select * from 课程表 where “ & KCCX1 Else strTiaoJian = ”select * from 课程表 where “ & KCCX1 & ”or “ & KCCX2 End If Else If KCCX1 = ”“ Then strTiaoJian = ”select * from 课程表 where “ & KCCX2 ElseIf KCCX2 = ”“ Then strTiaoJian = ”select * from 课程表 where “ & KCCX1 Else MsgBox ”请选择连接方式!“, vbOKOnly, ”警告“ Exit Sub End If End If

If(KCCX1 & KCCX2)= ”“ Then MsgBox ”请输入查询类别!“, vbOKOnly, ”警告“ Exit Sub Else 15 Unload Me Frm_UpdateGrean.Show 1 End If End If

If Option4.Value = True Then If Val(Combo6)> Val(Combo9)Then MsgBox ”请正确选择年份!“, vbOKOnly + vbExclamation, ”信息提示“ Combo6.SetFocus Exit Sub Else If Val(Combo6)= Val(Combo9)Then If Val(Combo7)> Val(Combo10)Then MsgBox ”请正确选择月份!“, vbOKOnly + vbExclamation, ”信息提示“ Combo7.SetFocus Exit Sub Else If Val(Combo7)= Val(Combo10)Then If Val(Combo8)> Val(Combo11)Then MsgBox ”请正确选择日期!“, vbOKOnly + vbExclamation, ”信息提示“ Combo8.SetFocus Exit Sub End If End If End If End If End If

If Combo6.Text = ”“ Or Combo7.Text = ”“ Or Combo8.Text = ”“ Or Combo9.Text = ”“ Or Combo10.Text = ”“ Or Combo11.Text = ”“ Then MsgBox ”请输入完整的日期“, vbOKOnly, ”警告“ Exit Sub End If

str1 = Trim(Combo6)& ”-“ & Trim(Combo7)& ”-“ & Trim(Combo8)str2 = Trim(Combo9)& ”-“ & Trim(Combo10)& ”-“ & Trim(Combo11)str1 = Format(str1, ”yyyy-mm-dd“)str2 = Format(str2, ”yyyy-mm-dd“)

If sqlstr = ”“ Then sqlstr = ”“ & Trim(Combo5.Text)& ”>=#“ & Format(str1, ”yyyy-mm-dd“)& ”# and “ & Trim(Combo5.Text)& ”<= #“ & Format(str2, ”yyyy-mm-dd“)& ”#“ Else sqlstr = sqlstr & ” and “ & Trim(Combo5.Text)& ”>=#“ & Format(str1, ”yyyy-mm-dd“)& ”# and “ & Trim(Combo5.Text)& ”<= #“ & Format(str2, ”yyyy-mm-dd“)& ”#“ End If

If sqlstr = ”“ Then MsgBox ”请先输入查找时间!“ Exit Sub End If

strTiaoJian = ”select 专业,年级,学期,课程名称,教材,任课老师,课时,上课地点,课程性质,考试性质 from 课程表 where “ & sqlstr Unload Me Frm_UpdateGrean.Show 1 End If

If Option3.Value <> True And Option4.Value <> True Then MsgBox ”请选择查询方式!“, vbOKOnly, ”警告“ Exit Sub End If End Sub

Private Sub Command3_Click()Unload Me End Sub

Private Sub Form_Load()Dim i, j As Integer For i = 1999 To 2010 Combo6.AddItem i Combo9.AddItem i Next i Combo6.ListIndex = 0 Combo9.ListIndex = 0

For i = 1 To 12 Combo7.AddItem i Combo10.AddItem i Next i Combo7.ListIndex = 0 Combo10.ListIndex = 0 For i = 1 To 31 Combo8.AddItem i Combo11.AddItem i Next i Combo8.ListIndex = 0 Combo11.ListIndex = 0 Combo1.AddItem(”专业“)Combo1.AddItem(”年级“)Combo1.AddItem(”课程名称“)Combo1.AddItem(”教材“)Combo1.AddItem(”任课老师“)'Combo1.AddItem(”课时“)Combo1.AddItem(”课程性质“)Combo1.AddItem(”考试性质“)Combo2.AddItem(”=“)Combo3.AddItem(”专业“)Combo3.AddItem(”年级“)Combo3.AddItem(”课程名称“)Combo3.AddItem(”教材“)Combo3.AddItem(”任课老师“)'Combo3.AddItem(”课时“)Combo3.AddItem(”课程性质“)Combo3.AddItem(”考试性质“)Combo4.AddItem(”=“)Combo5.AddItem(”学期“)Combo1.Text = ”“ Combo2.Text = ”“ Text1.Text = ”“ Combo3.Text = ”“ Combo4.Text = ”“ Text2.Text = ”“ Combo5.Text = ”“ Combo6.Text = ”“ Combo7.Text = ”“ Combo8.Text = ”“ Combo9.Text = ”“ Combo10.Text = ”“ Combo11.Text = ”“ End Sub

7.1.2 打印统计

运行打印统计后可以按条件把符合条件的各种信息以报表形式罗列出来,各种信息还可以以打印出来或以报表形式保存。打印统计包括班级统计分析、档案统计分析、课程统计分析、成绩统计分析和交费统计分析五类。

班级统计分析(如:界面如图四)(图四)代码如下:

Private Sub Command1_Click()Dim SQLoriginal As String Dim SQLadd As String Dim SQLorder As String Dim strSql As String SQLoriginal = ”SELECT 年级,专业,人数,辅导员,备注 FROM 班级表 “ SQLadd = ”WHERE 年级=年级 AND 专业=专业 “ SQLorder = ”“

If Check1.Value = 1 And IsNumeric(Text1)Then SQLadd = SQLadd + ”and 年级='“ + Text1 + ”'“ End If If Check2.Value = 1 And Not IsNull(Text2)Then SQLadd = SQLadd + ”and 专业='“ + Text2 + ”'“ End If

If Check3.Value = 1 And IsNumeric(Text3)Then SQLadd = SQLadd + ”and 人数='“ + Text3 + ”'“ End If

If Check4.Value = 1 And Not IsNull(Text4)Then SQLadd = SQLadd + ”and 辅导员='“ + Text4 + ”'“ End If

strSql = SQLoriginal + SQLadd + SQLorde If Dat_Main.rsDat_Class.State = 1 Then Dat_Main.rsDat_Class.Close End If Dat_Main.rsDat_Class.Open strSql Dat_Class.Show vbModal Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ Text4.Text = ”“ End Sub

Private Sub Command2_Click()&n

上一页 [1] [2] [3] [4] [5] 下一页

sp;Unload Me

End Sub

Private Sub Form_Load()Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ Text4.Text = ”“ End Sub

Private Sub Text1_Change()End Sub

Private Sub Text3_Change()End Sub 档案分析统计(如:界面如图五)(图五)代码如下:

Private Sub Command1_Click()Dim SQLoriginal As String Dim SQLadd As String Dim SQLorder As String Dim strSql As String On Error Resume Next SQLoriginal = ”SELECT * FROM 学生档案 “ SQLadd = ”WHERE 学号=学号 AND 姓名=姓名 “ SQLorder = ”“

If Check1.Value = 1 And IsNumeric(Text1)Then SQLadd = SQLadd + ”and 学号='“ + Text1 + ”'“ End If If Check2.Value = 1 And Not IsNull(Text2)Then SQLadd = SQLadd + ”and 姓名='“ + Text2 + ”'“ End If

If Check3.Value = 1 And Not IsNull(Text3)Then SQLadd = SQLadd + ”and 专业='“ + Text3 + ”'“ End If

If Check4.Value = 1 And IsDate(DTPicker1)Then SQLadd = SQLadd + ” and 出生年月= # “ & DTPicker1.Value & ”#“ End If

strSql = SQLoriginal + SQLadd + SQLorde If Dat_Main.rsDat_Strudent.State = 1 Then Dat_Main.rsDat_Strudent.Close End If Dat_Main.rsDat_Strudent.Open strSql Dat_Strudent.Show vbModal Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ End Sub

Private Sub Command2_Click()Unload Me End Sub

Private Sub Form_Load()'Combo1.AddItem(”男“)'Combo1.AddItem(”女“)Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ End Sub

Private Sub Text1_Change()End Sub 课程统计分析(如:界面如图六)(图六)

代码如下:

Private Sub Command1_Click()Dim SQLoriginal As String Dim SQLadd As String Dim SQLorder As String Dim strSql As String SQLoriginal = ”SELECT * FROM 课程表 “ SQLadd = ”WHERE 专业=专业 AND 课程名称=课程名称 “ SQLorder = ”“

If Check1.Value = 1 And Not IsNull(Text1)Then SQLadd = SQLadd + ”and 专业='“ + Text1 + ”'“ End If If Check2.Value = 1 And Not IsNull(Combo1)Then SQLadd = SQLadd + ”and 课程性质='“ + Combo1 + ”'“ End If

'If Check3.Value = 1 And Not IsNumeric(Text2)Then 'SQLadd = SQLadd + ”and 课时='“ + Text2 + ”'“ 'End If If Check4.Value = 1 And Not IsNull(Text3)Then SQLadd = SQLadd + ”and 课程名称='“ + Text3 + ”'“ End If

strSql = SQLoriginal + SQLadd + SQLorde If Dat_Main.rsDat_Grean.State = 1 Then Dat_Main.rsDat_Grean.Close End If Dat_Main.rsDat_Grean.Open strSql Dat_Grean.Show vbModal Text1.Text = ”“ Combo1.Text = ”“ 'Text2.Text = ”“ Text3.Text = ”“ End Sub

Private Sub Command2_Click()Unload Me End Sub

Private Sub Form_Load()Text1.Text = ”“ 'Text2.Text = ”“ Text3.Text = ”“ Combo1.Text = ”“ Combo1.AddItem(”必修“)Combo1.AddItem(”选修“)Combo1.AddItem(”自开“)End Sub Private Sub Text3_Change()End Sub 成绩统计分析(如:界面如图七)(图七)代码如下:

Private Sub Command1_Click()Dim SQLoriginal As String Dim SQLadd As String Dim SQLorder As String Dim strSql As String On Error Resume Next SQLoriginal = ”SELECT * FROM 成绩表 “ SQLadd = ”WHERE 学号=学号 AND 姓名=姓名 “ SQLorder = ”“

If Check1.Value = 1 And IsNumeric(Text1)Then SQLadd = SQLadd + ”and 学号='“ + Text1 + ”'“ End If If Check2.Value = 1 And Not IsNull(Text2)Then SQLadd = SQLadd + ”and 姓名='“ + Text2 + ”'“ End If

If Check3.Value = 1 And Not IsNull(Text3)Then SQLadd = SQLadd + ”and 考试科目='“ + Text3 + ”'“ End If

If Check4.Value = 1 Then SQLadd = SQLadd + ”and 科目分数<60“ End If

strSql = SQLoriginal + SQLadd + SQLorde If Dat_Main.rsDat_ChengJ.State = 1 Then Dat_Main.rsDat_ChengJ.Close End If Dat_Main.rsDat_ChengJ.Open strSql Dat_ChengJ.Show vbModal Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ End Sub

Private Sub Command2_Click()Unload Me End Sub

Private Sub Form_Load()Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ 'Text4.Text = ”“ End Sub

Private Sub Text1_Change()End Sub 交费统计分析(如:界面如图八)(图八)代码如下:

Private Sub Command1_Click()Dim SQLoriginal As String Dim SQLadd As String Dim SQLorder As String Dim strSql As String SQLoriginal = ”SELECT 学号,姓名,学期,本学期应交费用,实际交费,本次欠费 FROM 交费表 “ SQLadd = ”WHERE 学号=学号 AND 姓名=姓名 “ SQLorder = ”“

If Check1.Value = 1 And IsNumeric(Text1)Then SQLadd = SQLadd + ”and 学号='“ + Text1 + ”'“ End If If Check2.Value = 1 And Not IsNull(Text2)Then SQLadd = SQLadd + ”and 姓名='“ + Text2 + ”'“ End If

If Check3.Value = 1 And IsNumeric(Text3)Then SQLadd = SQLadd + ”and 实际交费='“ + Text3 + ”'“ End If

If Check4.Value = 1 And IsNumeric(Text4)Then SQLadd = SQLadd + ”and 本次欠费='“ + Text4 + ”'“ End If

strSql = SQLoriginal + SQLadd + SQLorde If Dat_Main.rsDat_JiaoF.State = 1 Then Dat_Main.rsDat_JiaoF.Close End If Dat_Main.rsDat_JiaoF.Open strSql Dat_JiaoF.Show vbModal Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ Text4.Text = ”“ End Sub

Private Sub Command2_Click()Unload Me End Sub

Private Sub Form_Load()Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ Text4.Text = ”" End Sub

Private Sub Text1_Change()End Sub

结束语

学生信息管理系统(课程设置和打印统计)的完成,它在审核这一功能中能够对不同情况的资料进行设置和打印,针对需要的信息进行设置和打印。

后记

本系统能够顺利完成,非常感谢指导老师陈志卫老师,同时,也感谢和我一起合作完成本系统的另两位同学。对于本人来说,通过这次毕业设计,也是对自己在这三年学习的一个检验和平时学习的一种结累,可以在学习中提高自己,也充分体现学有所用,学以致用的学习倡导。在此,我对三年来辅导过我的各位任课老师深表感谢

主要参考文献

本系统的过程中,主要的参考文献有:

《Visual Basic6.0》 林陈雷 人民邮电出版社 《面向对象程序设计系列教材》

上一页 [1] [2] [3] [4] [5] 下一页

龚沛曾 高等教育出版社

《Visual Basic6.0编程实例精解》 何文俊

《学用Visual Basic 编程》 潭 浩 西安电子科技大学出版社《Visual Basic6.0 数据库开发与专业应用》 敬 铮 国防工业出版社 《Visual Basic6.0 数据库程序设计高手》 温贤发 科学出版社

第五篇:VB+ACCESS人事工资管理系统

05春计算机专业毕业论文

第一章绪 论

1.1 信息化的发展

1.2 系统开发背景

1.3 课题研究的目的1.4 系统设计的指导思想

第二章人事管理系统的问题

2.1人事管理系统的简介

2.2人事管理系统的用户需求

第三章人事管理系统的分析和设计

3.1人事管理系统的分析与概要设计

3.2人事管理系统的数据库设计

第四章人事管理系统的具体实现

4.1模块的开发环境的简介_Visual Basic

4.1.1事件驱动的应用程序

4.1.2面向对象的编程

第1页

4.2系统模块的具体实现

4.2.1档案信息模块的实现

4.2.2工资管理模块的实现

4.2.34.2.44.2.5

工资统计模块的实现 部门查询模块的实现 特殊查询模块的实现

报表查询模块的实现 4.2.6

4.3系统开发的其它方面

第五章人事管理系统的运行环境

第六章:人事管理系统的程学开发

第七章结束语

参考文献

前言

人事管理系统是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事劳资管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对人事劳资信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套人事管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。

第一章绪论

想要全部 请加QQ:76536415

专业设计 毕业论文

下载VB+Access设计图书管理系统5篇word格式文档
下载VB+Access设计图书管理系统5篇.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    书1管理系统

    第五章公共环境设施系统设计运用一、管理设施系统管理系统作为环境构成要素的环境设施,在城市建筑规划中起着越来越积极重要的作用。在城市环境中,控制设施、电线柱、配电柱、......

    供配电系统设计图和实际比较(共五则范文)

    供配电系统设计图和实际比较※ 一、1TM1低压配电系统 安800kvA变压器一台 供电用户:B-1、B-2、B-3、C-1 、1-27F。C-1、C-3、B-3地下室应急用电及第四层用电: 防火区A、B照明......

    酒店管理系统方案书

    ***酒店管理系统 方案书 [方案提供方]: [联 系 人]: [电话号码] : [邮 箱] : [公司网址] : [公司地址] : 目录 一. 有关本方案的说明„„„„„„„„„„„„„„„„„2 二......

    管理系统程序修改技术规范书

    xxxxxx管理信息系统 程序开发及修改技术规范书 批准:审核:编制:信息中心 2017/4/19 第一部分 总体说明 第一章 应答须知 应答人必须认真阅读以下内容, 以免造成应答失败。 1.1......

    图书馆管理系统需求分析书

    [图书管理系统] 需求说明书 [V1.0(版本号)] 拟 制 人______________________ 审 核 人______________________ 批 准 人______________________ [二零零九年十二月一日] [......

    会议室预约管理系统方案书

    会议预约管理系统 系 统 方 案目 录 一、系统概述 ......................................................................................... 3 1.1 什么是会议预约管......

    图书管理系统项目规划书

    武科大Adou工作室发展报告书网站规则书图书管理系统2009年1月一、 网站概况1) 开发目的 通过尝试开发一个整体的网站,掌握网站设计的流程,深化对JSP技术的了解,熟悉JSP技术的实......

    文明单位创建管理系统项目需求书

    文明单位创建管理系统 需求意向书 2012年12月 前 言 本着提升文明单位创建水平、推进文明单位建设不断提高目的,不断创造文明单位创建活动新载体,为文明创建工作带来了新亮点......