——学生餐卡管理系统
班级:06计科三班
学号: 0610101068
姓名:宋艳
指导教师:刘倩
设计日期:2008.12.14~2008.12.23
系统概述
学生餐卡管理系统是每个学校和大型单位所不可缺少的后勤管理系统。
随着计算机的普及,计算机正在应用于我们生活的方方面面,有了计算机我们管理各种信息也变的容易很多。数据库技术的出现为我们管理各种大型数据打下了基础,利用计算机数据库技术也提高了数据库管理的易用性与安全性。结合这次数据库实习我们小组五人一起作了这个功能相对简单的学生餐卡管理系统。
这个学生餐卡管理系统也是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
经过分析如此情况,我们使用微软公司的VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,进行图形化的管理系统的开发。数据库方面我们用微软公司的SQL SERVER 2000作为数据库工具。
1 需求分析
应用背景
餐厅是各个大型单位的重要组成部分,特别是一些学校,由于学校有人员多的特点所以,学生餐卡管理数据库工作就显得繁重和复杂。所以计算机在这方面的管理中起到了不可替代的作用。
目前,学校学生较多,餐卡的各种信息也在不断增长。本系统就是要达到对学生日常使用餐卡情况的管理,从而实现管理员对添加新学生、管理员对学生的修改、管理员对毕业学生的删除、管理员对学生信息的查询、管理员对学生充值记录的查询、管理员对学生消费记录的查询、管理员对学生消费的记录、管理院对学生充值的记录、管理员对登入系统的用户的添加、管理员对用户密码的修改、学生对其消费记录的查询、学生对其充值记录的查询等十多个具体功能的实现。
系统需求
数据库需求分析
各个用户的需求具体体现在各种信息的添加、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。
针对此餐卡管理系统的需求,通过对学生学习过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:
(1)管理员登录:
账户、密码、账户类型
(2)学生登录:
账户、密码、账户类型
(3)学生基本信息:
学号、姓名、性别、学院、系别、余额
(4)学生充值信息:
学号、时间、金额
(5)学生消费信息:
学号、时间、金额
2 概念结构设计
E-R图:
管理员:
餐卡:
学生:
实体与实体之间的关系E-R图:
数据字典
数据字典是系统中各类数据描述的集合,使进行详细的数据收集和数据分析所获得的主要成果。数据字典是在需求分析时建立,在数据库设计过程中不断修改、充实、完善的。数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程五部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
(1).数据结构和数据项字典
充值表:本表主要用于给学生餐卡进行充值金钱
| 列名 | 数据类型 | 长度 | 允许空 |
| 学号 | char | 10 | |
| 金额 | char | 10 | |
| 时间 | char | 10 |
学生表:本表主要用于学生信息的记录和查询
| 列名 | 数据类型 | 长度 | 允许空 |
| 学号 | char | 10 | |
| 姓名 | varchar | 50 | |
| 性别 | char | 10 | |
| 学院 | varchar | 50 | |
| 系别 | varchar | 50 | |
| 余额 | char | 10 |
消费表:本表主要用于记录学生的消费情况
| 列名 | 数据类型 | 长度 | 允许空 |
| 学号 | char | 10 | |
| 金额 | char | 8 | |
| 时间 | char | 20 |
登录表:本表主要用于登录用户的查询信息
| 列名 | 数据类型 | 长度 | 允许空 |
| id | char | 10 | |
| pd | char | 10 | |
| type | bit | 1 |
(2) .数据流字典
| 名称 | 说明 | 位置 | 定义 |
| 登陆验证 | 验证ID号,合法用户可以登陆 | 管理员→管理员 持卡者→学生 | 登陆验证= 用户名,密码 |
| 验证结果 | 是否为合法用户,并验证以何种身份进入窗口 | 管理员→ 管理员 学生→持卡者 | 验证结果= 登陆成功 , 无此用户名, 密码错误 |
| 查询信息 | 持餐卡者可查看个人信息;管理员可查看所有情况 | 学生个人消费信息, 所有学生的充值和消费信息,学生信息 | 查询信息= 查询个人信息 , 查询所有信息 |
| 添加信息 | 只有管理员才能进行添加信息 | 添加学生信息,添加餐卡用户信息 | 添加信息= 添加学生信息,添加餐卡用户信息 |
| 修改信息 | 管理员和持卡者都可以进行修改 | 修改学生登录密码,修改学生信息 | 修改信息= 修改学生登录密码,修改学生信息 |
| 删除信息 | 只有管理员才能进行删除信息 | 删除学生信息 | 删除信息=删除学生信息 |
| 名称 | 说明 | 输入 | 输出 |
| 管理员信息 | 有管理员进行维护 | 管理员 | 管理员 |
| 学生信息 | 有管理员进行维护 | 管理员 | 管理员 |
| 餐卡消费信息 | 有管理员进行维护,学生进行查看 | 管理员 | 管理员,学生 |
| 餐卡充值信息 | 有管理员进行维护,学生可进行查看 | 管理员 | 管理员,学生 |
管理员学生管理:
管理员查询学生信息:
管理员管理餐卡:
管理员用户管理:
学生信息查询:
3 逻辑结构设计
系统功能分析
系统开发的总体任务是实现学生餐卡信息关系的系统化、规范化。
本系统需要完成的功能主要有:
(1)管理员对添加新学生:学号、姓名、性别、学院、系别、余额
(2)管理员对学生的修改:学号、姓名、性别、学院、系别、余额
(3)管理员对毕业学生的删除:学号、姓名、性别、学院、系别、余额
(4)管理员对学生信息的查询:学号、姓名、性别、学院、系别、余额
(5)管理员对学生充值记录的查询:学号、时间、金额
(6)管理员对学生消费记录的查询:学号、时间、金额
(7)管理员对学生消费的记录:学号、时间、金额
(8)管理院对学生充值的记录:学号、时间、金额
(9)管理员对登入系统的用户的添加(伴随添加新学生一起添加):id(学号)、pd(密码)、type(账户类型)
(10)管理员对用户密码的修改:id(学号)、pd(密码)、type(账户类型)
(11)学生对其消费记录的查询:学号、时间、金额
(12)学生对其充值记录的查询:学号、时间、金额
本系统结构图:
4 实施阶段:
登录界面:
学生登录:
确定按钮的代码:
Private Sub ok_Click()
Dim rs As New ADODB.Recordset
Dim sql1 As String
If Trim(Text1.Text) = "" Then
MsgBox "用户名不能为空,请重新输入!", , ""
Text1.SetFocus
Else
sql1 = " select * from 登录表 where id='" & Trim(Text1.Text) & " 'and type ='" & combo1.ListIndex & " ' "
Set rs = ExecuteSQL(sql1)
If rs.EOF = True Then
MsgBox "没有此用户,请重新输入!", vbOKOnly + vbExclamation, ""
Text1.Text = ""
Text1.SetFocus
Else
If Trim(rs.Fields(1)) = Trim(Text2.Text) Then
Me.Hide
If combo1.Text = "学生" Then
学生查询.Show
Else
餐卡管理.Show
End If
Else
MsgBox "密码不正确,请重新输入!", vbOKOnly + vbExclamation, ""
Text2.Text = ""
Text2.SetFocus
End If
End If
End If
cnt = cnt + 1
If cnt = 3 Then
Unload Me
End If
End Sub
取消按钮的代码:
Private Sub cancle_Click()
Unload Me
End Sub
学生可登录界面后可进行有关学生自己的消费和充值信息,以及余额的查询
消费记录的代码:
Private Sub Command2_Click()
DataGrid1.Visible = False
DataGrid2.Visible = True
End Sub
充值记录的代码:
Private Sub Command3_Click()
DataGrid2.Visible = False
DataGrid1.Visible = True
End Sub
查询余额的代码:
Private Sub Command1_Click()
Dim SQL As String
SQL = "select 余额 from 学生表 where 学号='" & 登录.Text1 & "'"
Dim rs1 As New ADODB.Recordset
Set rs1 = ExecuteSQL(SQL)
Text1.Text = rs1.Fields(0)
End Sub
管理员登录:
管理员登录后可以对所有信息的查询及修改。
在学生管理里可以进行添加学生信息的功能
也即添加学生可以任意添加学生信息:
添加按钮的代码:
Private Sub Command1_Click()
Dim rs_addxs As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim SQL As String
If Trim(Text1.Text) = "" Then
MsgBox "学号不能为空", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) = "" Then
MsgBox "姓名不能为空", vbOKOnly + vbExclamation, ""
Text2.SetFocus
Exit Sub
End If
If Trim(combo1.Text) = "" Then
MsgBox "请选学生性别", vbOKOnly + vbExclamation, ""
combo1.SetFocus
Exit Sub
End If
If Trim(Text4.Text) = "" Then
MsgBox "学院不能为空", vbOKOnly + vbExclamation, ""
Text4.SetFocus
Exit Sub
End If
If Trim(Text5.Text) = "" Then
MsgBox "系别不能为空", vbOKOnly + vbExclamation, ""
Text5.SetFocus
Exit Sub
End If
If Trim(Text3.Text) = "" Then
MsgBox "余额不能为空", vbOKOnly + vbExclamation, ""
Text3.SetFocus
Exit Sub
End If
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=餐卡管理数据库;Data Source=C23"
SQL = "select * from 学生表 where 学号='" & Text1.Text & "'"
rs_addxs.Open SQL, conn, adOpenKeyset, adLockPessimistic
If rs_addxs.EOF Then
rs_addxs.AddNew
rs_addxs.Fields(0) = Trim(Text1.Text)
rs_addxs.Fields(1) = Trim(Text2.Text)
rs_addxs.Fields(2) = Trim(combo1.Text)
rs_addxs.Fields(3) = Trim(Text4.Text)
rs_addxs.Fields(4) = Trim(Text5.Text)
rs_addxs.Fields(5) = Trim(Text3.Text)
rs_addxs.Update
MsgBox "添加学生信息成功!", vbOKOnly, ""
rs_addxs.Close
Else
MsgBox "学号重复!", vbOKOnly + vbExclamation, ""
Text1.SetFocus
rs_addxs.Close
Exit Sub
End If
End Sub
取消按钮的代码:
Private Sub Command2_Click()
Unload Me
End Sub
在学生管理中管理员也可以进行学生信息的修改:
修改按钮的代码:
Private Sub xg_Click()
Dim ts As String
On Error GoTo xg
sc.Enabled = False
xg.Enabled = False
qd.Enabled = True
qx.Enabled = True
DataGrid1.AllowUpdate = True
Exit Sub
xg:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
删除按钮的代码:
Private Sub sc_Click()
Dim answer As String
'On Error GoTo sc
answer = MsgBox("确定要删除吗?", vbYesNo, "")
If answer = vbYes Then
DataGrid1.AllowDelete = True
rs_xs.Delete
rs_xs.Update
DataGrid1.Refresh
Else
Exit Sub
End If
'cmddel:
'MsgBox Err.Description
End Sub
确定按钮的代码:
Private Sub qd_Click()
If Not IsNull(DataGrid1.Bookmark) Then
rs_xs.Update
End If
sc.Enabled = True
xg.Enabled = True
qd.Enabled = False
qx.Enabled = False
MsgBox "修改成功!", vbOKOnly + vbExclamation, ""
End Sub
取消按钮的代码:
Private Sub qx_Click()
rs_xs.CancelUpdate
DataGrid1.Refresh
DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False
sc.Enabled = True
xg.Enabled = True
qd.Enabled = False
qx.Enabled = False
End Sub
在查询信息里可以进行学生信息,充值记录和消费记录的查询:
管理员给餐卡持有者进行充值记录的查询:
管理员对学生消费信息的查询:
在餐卡管理里可以进行金额变动即充值和消费
充值按钮的代码:
Private Sub Command1_Click()
Dim rs_addye As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim SQL, sql1 As String
If Trim(Text1.Text) = "" Then
MsgBox "学号不能为空", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) = "" Then
MsgBox "金额不能为空", vbOKOnly + vbExclamation, ""
Text2.SetFocus
Exit Sub
End If
If Trim(Text3.Text) = "" Then
MsgBox "时间不能为空", vbOKOnly + vbExclamation, ""
Text3.SetFocus
Exit Sub
End If
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=餐卡管理数据库;Data Source=C23"
SQL = "select * from 充值表"
rs_addye.Open SQL, conn, adOpenKeyset, adLockPessimistic
rs_addye.AddNew
rs_addye.Fields(0) = Trim(Text1.Text)
rs_addye.Fields(1) = Trim(Text2.Text)
rs_addye.Fields(2) = Trim(Text3.Text)
rs_addye.Update
rs_addye.Close
sql1 = "select * from 学生表 where 学号='" & Text1.Text & " '"
rs_addye.Open sql1, conn, adOpenKeyset, adLockPessimistic
rs_addye.Fields(5) = rs_addye.Fields(5) + Val(Text2.Text)
rs_addye.Update
MsgBox " 充值成功!", vbOKOnly, ""
rs_addye.Close
End Sub
消费按钮的代码:
Private Sub Command2_Click()
Dim rs_addye As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim SQL As String
If Trim(Text1.Text) = "" Then
MsgBox "学号不能为空", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) = "" Then
MsgBox "金额不能为空", vbOKOnly + vbExclamation, ""
Text2.SetFocus
Exit Sub
End If
If Trim(Text3.Text) = "" Then
MsgBox "时间不能为空", vbOKOnly + vbExclamation, ""
Text3.SetFocus
Exit Sub
End If
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=餐卡管理数据库;Data Source=C23"
SQL = "select * from 消费表 "
rs_addye.Open SQL, conn, adOpenKeyset, adLockPessimistic
rs_addye.AddNew
rs_addye.Fields(0) = Trim(Text1.Text)
rs_addye.Fields(1) = Trim(Text2.Text)
rs_addye.Fields(2) = Trim(Text3.Text)
rs_addye.Update
rs_addye.Close
sql1 = "select * from 学生表 where 学号='" & Text1.Text & " '"
rs_addye.Open sql1, conn, adOpenKeyset, adLockPessimistic
rs_addye.Fields(5) = rs_addye.Fields(5) - Val(Text2.Text)
rs_addye.Update
MsgBox " 消费成功!", vbOKOnly, ""
rs_addye.Close
End Sub
在用户管理中,管理员可以进行添加用户和修改密码的功能:
添加按钮的代码:
Private Sub Command1_Click()
Dim rs_addxs As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim SQL As String
If Trim(Text1.Text) = "" Then
MsgBox "学号不能为空", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) = "" Then
MsgBox "密码不能为空", vbOKOnly + vbExclamation, ""
Text2.SetFocus
Exit Sub
End If
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=餐卡管理数据库;Data Source=C23"
SQL = "select * from 登录表"
rs_addxs.Open SQL, conn, adOpenKeyset, adLockPessimistic
rs_addxs.AddNew
rs_addxs.Fields(0) = Trim(Text1.Text)
rs_addxs.Fields(1) = Trim(Text2.Text)
rs_addxs.Update
MsgBox "添加用户成功!", vbOKOnly, ""
rs_addxs.Close
Exit Sub
End Sub
取消按钮的代码:
Private Sub Command2_Click()
Unload Me
End Sub
管理员还可进行密码的修改:
修改按钮的代码:
Private Sub Command1_Click()
Dim rs_addxs As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim SQL As String
If Trim(Text1.Text) = "" Then
MsgBox "学号不能为空", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) = "" Then
MsgBox "密码不能为空", vbOKOnly + vbExclamation, ""
Text2.SetFocus
Exit Sub
End If
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=餐卡管理数据库;Data Source=C23"
SQL = "select * from 登录表 where id='" & Text1.Text & "'"
rs_addxs.Open SQL, conn, adOpenKeyset, adLockPessimistic
rs_addxs.Fields(0) = Trim(Text1.Text)
rs_addxs.Fields(1) = Trim(Text2.Text)
rs_addxs.Update
MsgBox "修改密码成功!", vbOKOnly, ""
rs_addxs.Close
Exit Sub
End Sub
取消按钮的代码:
Private Sub Command2_Click()
Unload Me
End Sub
退出的代码:
Private Sub tc_Click()
Unload Me
End Sub
数据库实习报告
——餐卡管理数据库
我是飞天小组的宋艳同学,同时也是组长。由于在做策划时考虑问题不够周全,加上后期实践中遇到的问题以及我们的思考,作品和当初交上的策划书有些出入这是我组长的失职。在这个小组中我参与了如下工作:
一、部分系统功能构想
二、部分界面设计构想
三、部分数据库的构想
四、部分代码设计
我主要的工作是书写了如下窗体的代码:
Private Sub cancle_Click()
Unload Me
End Sub
Private Sub Form_Load()
Combo1.Text = "学生"
End Sub
Private Sub ok_Click()
Dim rs As New ADODB.Recordset
Dim sql1 As String
If Trim(Text1.Text) = "" Then
MsgBox "用户名不能为空,请重新输入!", , ""
Text1.SetFocus
Else
sql1 = " select * from 登录表 where id='" & Trim(Text1.Text) & " 'and type ='" & Combo1.ListIndex & " ' "
Set rs = ExecuteSQL(sql1)
If rs.EOF = True Then
MsgBox "没有此用户,请重新输入!", vbOKOnly + vbExclamation, ""
Text1.Text = ""
Text1.SetFocus
Else
If Trim(rs.Fields(1)) = Trim(Text2.Text) Then
Me.Hide
If Combo1.Text = "学生" Then
学生查询.Show
Else
餐卡管理.Show
End If
Else
MsgBox "密码不正确,请重新输入!", vbOKOnly + vbExclamation, ""
Text2.Text = ""
Text2.SetFocus
End If
End If
End If
cnt = cnt + 1
If cnt = 3 Then
Unload Me
End If
End Sub
1、在这个窗体中,我引用组合框来设定进入系统的身份。我们有两个主窗体,学生查询餐卡管理,在登录表中管理员类型为1学生默认为0与组合框的listindex相对应。
2、同时保证用户名和密码不能为空,用户名身份密码正确都正确才能进入。
3、另外设置全局变量cnt来记录登录次数超过三次自动关闭系统!
Private Sub Command1_Click()
Dim SQL As String
SQL = "select 余额 from 学生表 where 学号='" & 登录.Text1 & "'"
Dim rs1 As New ADODB.Recordset
Set rs1 = ExecuteSQL(SQL)
Text1.Text = rs1.Fields(0)
End Sub
Private Sub Command2_Click()
DataGrid1.Visible = False
DataGrid2.Visible = True
End Sub
Private Sub Command3_Click()
DataGrid2.Visible = False
DataGrid1.Visible = True
End Sub
Private Sub Form_Load()
Dim sql1, sql2 As String
sql1 = "select * from 消费表 where 学号='" & 登录.Text1 & "'"
Dim rs1 As New Recordset
Set rs1 = ExecuteSQL(sql1)
Set DataGrid2.DataSource = rs1
sql2 = "select * from 充值表 where 学号='" & 登录.Text1 & "'"
Dim rs2 As New Recordset
Set rs2 = ExecuteSQL(sql2)
Set DataGrid1.DataSource = rs2
End Sub
1、在学生查询窗体的设计中遇到了问题,我们要求只显示登录用户的信息。开始想利用全局变量来获取登录中的用户名以及记录集的返回中多次失败,最后请教了老师和其他同学成功的解决了这个问题!
2、引用了两个DataGrid控件,通过单击消费记录和充值记录来让两个控件显示和隐藏,这些控件显示的内容分别和消费表充值表相连。余额的查询与学生表中余额字段相连。
1、这是管理员操作的主窗体,他可以通过单击菜单来触发各个窗体的弹出。在此窗体中主要是学习使用菜单编辑器。
Private Sub Command1_Click()
Dim rs_addxs As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim SQL As String
If Trim(Text1.Text) = "" Then
MsgBox "学号不能为空", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) = "" Then
MsgBox "姓名不能为空", vbOKOnly + vbExclamation, ""
Text2.SetFocus
Exit Sub
End If
If Trim(Combo1.Text) = "" Then
MsgBox "请选学生性别", vbOKOnly + vbExclamation, ""
Combo1.SetFocus
Exit Sub
End If
If Trim(Text4.Text) = "" Then
MsgBox "学院不能为空", vbOKOnly + vbExclamation, ""
Text4.SetFocus
Exit Sub
End If
If Trim(Text5.Text) = "" Then
MsgBox "系别不能为空", vbOKOnly + vbExclamation, ""
Text5.SetFocus
Exit Sub
End If
If Trim(Text3.Text) = "" Then
MsgBox "余额不能为空", vbOKOnly + vbExclamation, ""
Text3.SetFocus
Exit Sub
End If
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=餐卡管理数据库;Data Source=cf"
SQL = "select * from 学生表 where 学号='" & Text1.Text & "'"
rs_addxs.Open SQL, conn, adOpenKeyset, adLockPessimistic
If rs_addxs.EOF Then
rs_addxs.AddNew
rs_addxs.Fields(0) = Trim(Text1.Text)
rs_addxs.Fields(1) = Trim(Text2.Text)
rs_addxs.Fields(2) = Trim(Combo1.Text)
rs_addxs.Fields(3) = Trim(Text4.Text)
rs_addxs.Fields(4) = Trim(Text5.Text)
rs_addxs.Fields(5) = Trim(Text3.Text)
rs_addxs.Update
MsgBox "添加学生信息成功!", vbOKOnly, ""
rs_addxs.Close
Else
MsgBox "学号重复!", vbOKOnly + vbExclamation, ""
Text1.SetFocus
rs_addxs.Close
Exit Sub
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
1、通过书写代码输入的信息不能为空,保证添加学生信息的完整性。使用msgbox控件的使用提示操作错误
2、通过Adodb控件的使用将数据库和界面信息联系起来,再添加过程中保证相应字段对应以及无重复学号插入!
Option Explicit
Dim rs_xs As New ADODB.Recordset
Private Sub DataGrid1_Click()
End Sub
Private Sub Form_Load()
Dim SQL As String
Dim conn As New Connection
On Error GoTo loaderror
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=餐卡管理数据库;Data Source=cf"
SQL = "select * from 学生表"
rs_xs.CursorLocation = adUseClient
rs_xs.Open SQL, conn, adOpenKeyset, adLockPessimistic
qd.Enabled = False
qx.Enabled = False
DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rs_xs
Exit Sub
loaderror:
MsgBox Err.Description
End Sub
Private Sub qd_Click()
If Not IsNull(DataGrid1.Bookmark) Then
rs_xs.Update
End If
sc.Enabled = True
xg.Enabled = True
qd.Enabled = False
qx.Enabled = False
MsgBox "修改成功!", vbOKOnly + vbExclamation, ""
End Sub
Private Sub qx_Click()
rs_xs.CancelUpdate
DataGrid1.Refresh
DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False
sc.Enabled = True
xg.Enabled = True
qd.Enabled = False
qx.Enabled = False
End Sub
Private Sub sc_Click()
Dim answer As String
'On Error GoTo sc
answer = MsgBox("确定要删除吗?", vbYesNo, "")
If answer = vbYes Then
DataGrid1.AllowDelete = True
rs_xs.Delete
rs_xs.Update
DataGrid1.Refresh
Else
Exit Sub
End If
'cmddel:
'MsgBox Err.Description
End Sub
Private Sub xg_Click()
Dim ts As String
On Error GoTo xg
sc.Enabled = False
xg.Enabled = False
qd.Enabled = True
qx.Enabled = True
DataGrid1.AllowUpdate = True
Exit Sub
xg:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
1、本窗体实现修改学生信息,删除学生等功能。
2、在这个窗体中充分使用了Datagrid空间的各种属性功能,通过这些属性来实现各种操作以及数据库表的改变。
3、让四个命令按钮在操作之后适当变换其可用性也是一个难点
至于系统中的其他部分也和我们组同学做了讨论,上面的窗体代码设计有自己的辛苦也有像老师同学请教的内容,尽管做的不够完善但是我学到了很多东西!
实习后感想:
通过这一个多星期与同组人员不懈努力,学生餐卡管理系统基本开发完毕。其基本基本符合预期,能够完成学生信息添加、更新,学生消费、学生充值以及各种历史记录查询工作。
但是由于设计时间比较短,所以该系统还有很多不尽人意的地方,比如界面不够精美,并且还有当初设想的功能没有实现,比如学生餐卡挂失功能,出错信息的处理,数据的录入相对麻烦等多方面问题。这些都有待进一步的改善。
将近两周的课程实习,使我们提高了实际操作能力,从以前的理论上升到实践,收获的不仅有掌握vb基本功能、SQL SERVER使用方法这种实际的知识,更有成功的喜悦,团队合作的体验,遇到困难克服困难的一份快感。下载本文