If Trim(EditStu(1).Text) = "" Then
MsgBox "必须输入学生的姓名!", vbInformation
EditStu(1).Text = ""
EditStu(1).SetFocus
Exit Sub
End If
If IsDate(EditStu(2).Text) = False Then
MsgBox "请按照(YYYY-MM-DD)的格式输入出生年月!", vbOKOnly + vbExclamation, "警告"
EditStu(2).SelLength = Len(EditStu(2).Text)
EditStu(2).SetFocus
Exit Sub
End If
Dim i As Integer
For i = 0 To 8
If InStr(1, EditStu(i).Text, "'", 1) Then
MsgBox "添加的资料有非法字符(不允许输入'号)!", vbInformation
Exit Sub
EditStu(i).SetFocus
End If
Next
检测数据完毕后,就开始对输入的数据进行操作,如果是添加新资料则判断是否存在该学生的资料,如果该学生信息已经存在则提醒用户该学生资料已经存在,反之则将该学生的资料添加到数据库中;如果是修改学生资料则在数据库中以学号为关键字搜索该学生的资料,然后将该学生的资料更新。
……
错误!未找到图形项目表。If EditStu(0).Enabled Then
'添加资料
sqlstr = "select * from StuInfo where SID='" & EditStu(0).Text & "'"
rs.Open sqlstr, con, 1, 1
If Not rs.EOF Then
MsgBox "已经存在学号为" & EditStu(0).Text & "的学生资料,请重新输入!", vbInformation
EditStu(0).SetFocus
Exit Sub
End If
rs.Close: Set rs = Nothing
sqlstr="insert into
StuInfo(SID,SName,SGender,SPlace,SBirthday,SMinzu,SZhengzhi,SDormitory,SAddress,SCode,STel,SRemark)"
sqlstr = sqlstr & "values('" & EditStu(0).Text & "','" & EditStu(1).Text & "','" & Combo1.Text & "',"
sqlstr = sqlstr & "'" & EditStu(3).Text & "','" & EditStu(2).Text & "','" & Combo3.Text & "','" & Combo2.Text & "','" & EditStu(7).Text & "',"
sqlstr = sqlstr & "'" & EditStu(4).Text & "','" & EditStu(5).Text & "','" & EditStu(6).Text & "','" & EditStu(8).Text & "')"
Else
' '修改资料
sqlstr = "update StuInfo set SName='" & EditStu(1).Text & "',SBirthday='" & EditStu(2).Text & "',SGender='" & Combo1.Text & "',"
sqlstr = sqlstr & "SPlace='" & EditStu(3).Text & "',SMinzu='" & Combo3.Text & "',SZhengzhi='" & Combo2.Text & "',SAddress='" & EditStu(4).Text & "',"
sqlstr = sqlstr & "SCode='" & EditStu(5).Text & "',STel='" & EditStu(6).Text & "',SDormitory='" & EditStu(7).Text & "',SRemark='" & EditStu(8).Text & "' "
sqlstr = sqlstr & "where SID='" & EditStu(0).Text & "'"
End If
con.Execute sqlstr
……
如果是添加新资料,操作完毕后则提示用户是否继续添加新资料,如果用户选择否则退出该窗体,反之则初始化该窗体,将各文本框的内容清空。
……
If MsgBox("添加学号为" & EditStu(0).Text & "的学生资料成功!是否继续?", vbYesNo) = vbYes Then
For i = 0 To 8
EditStu(i).Text = ""
Next
EditStu(0).SetFocus
Else
Call Frmstu.ListviewLoad(classid)
Unload Me
End If
……
如果是修改学生资料,则提示用户修改成功,然后退出该窗体,并更新frmstu窗体中Listview的数据。
……
MsgBox "修改学号为" & EditStu(0).Text & "的学生资料成功!", vbInformation
Call Frmstu.ListviewLoad(classid)
Unload Me
……
3.3.7 学籍管理模块
该模块包括班级设置、学院/专业设置、课程设置和学生成绩管理四个功能。
在该模块中,我使用了Adodc控件和MSFlexGrid控件来实现其功能。
Adodc控件连接数据库的过程为先定义该对象的ConnectionString属性,在使用Adodc时再定义其RecordSource属性。
Adodc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=" & App.Path + "\student.mdb"
Adodc.RecordSource="select * from Result where Name='"&Text1.Text&"'