赋给显示学号的文本框。
"添加"子菜单的Click事件的设计思路:
用户单击"添加"子菜单时,调用frmmain中的"添加学生信息"子菜单显示FrmAddStu窗体,同时将Command1的Caption属性设置为"确定(&O)"。
PrivateSubpop3_Click()
'添加学生资料
CallFrmstu.AddStu
EndSub
PublicSubAddStu()
CallFrmAddStu.LoadStu("00000000")
EndSub
修改学生资料的Click事件的设计思路和添加学生资料的设计思路类似,但是由于只是对记录进行修改,不需要调用AddNew操作,只要对数据进行Update操作即可。
PrivateSubpop4_Click()
'修改学生资料
CallFrmstu.ModifyStu
EndSub
PublicSubModifyStu()
'显示窗口
DimEditNumAsString
IfListView.SelectedItem.SelectedThen
EditNum=CStr(ListView.SelectedItem.Text)
CallFrmAddStu.LoadStu(EditNum)
Else
ExitSub
EndIf
EndSub
删除学生资料的设计思路:
在删除记录之前弹出询问框,确认用户是否真的要删除当前记录,如果用户选择了"是",则删除该条记录,否则就不执行任何操作。
在删除记录过程中,使用学生的学号作为关键字,调用Execute方法来删除当前记录。
在删除了当前记录以后,需要重新移动当前记录;由于改变了当前记录集的内容,所以需要调用ListviewLoad子过程来刷新Listview中的内容。
PrivateSubpop5_Click()
'删除学生资料
CallFrmstu.DelStu
EndSub
PublicSubDelStu()
IfListView.SelectedItem.SelectedThen
IfMsgBox("确定要删除学号为"&ListView.SelectedItem.Text&"的全部资料吗!",vbYesNo+32+vbDefaultButton2)=vbYesThen
sqlstr="deletefromStuInfowhereSID='"&ListView.SelectedItem.Text&"'"
con.Executesqlstr
CallListviewLoad(classid)
EndIf
EndIf
EndSub
学生信息包括了学号、姓名、出生日期、性别、家庭住址、联系电话等内容。在Listview中列出了各学籍信息的学号和姓名以供用户进行导航,但是在实际管理中,还需要显示出某一条学生信息的详细列表。为此,设计详细信息框,来罗列用户的各种详细信息。当用户单击"显示该生详细资料"子菜单时,显示frmstuinfo窗体(图3.6),并以学生学号为关键字,将该学生的全部资料赋值给frmstuinfo中的对应文本框。
图3.6学生详细信息
PrivateSubpop1_Click()
'显示详细资料
CallFrmstu.ListView_DblClick
EndSub
PublicSubListView_DblClick()
ResumeNext
IfListView.SelectedItem.SelectedThen
SelectNum=ListView.SelectedItem.Text
IfSelectNum<>""Then
'显示出该生全部信息表单
Callfrmstuinfo.LoadStuInfo(SelectNum)
Else
ExitSub
EndIf
EndIf
EndSub
在frmstuinfo的代码窗口中添入以下代码用来显示该学生的详细资料。
PublicSubLoadStuInfo(StuNumAsString)
sqlstr="select*fromStuInfowhereSID='"&StuNum&"'"
rs.Opensqlstr,con,1,1
StuInfo(0).Caption=rs.Fields("SID")
StuInfo(1).Caption=rs.Fields("SName")
StuInfo(2).Caption=rs.Fields("SGender")
StuInfo(3).Caption=rs.Fields("SZhengzhi")
StuInfo(4).Caption=rs.Fields("SPlace")
StuInfo(5).Caption=rs.Fields("SMinzu")
StuInfo(6).Caption=rs.Fields("SBirthday")
StuInfo(7).Caption=rs.Fields("SDormitory")
StuInfo(8).Caption=rs.Fields("SAddress")
StuInfo(9).Caption=rs.Fields("SCode")
StuInfo(10).Caption=rs.Fields("STel")
StuInfo(11).Caption=rs.Fields("SRemark")
rs.Close:Setrs=Nothing
Me.Show1
EndSub
3.3.6添加/修改学生信息窗体(frmAddstu)
该窗体运行时界面如图3.7所示
图3.7添加/修改学生信息界面
当窗体加载时,首先判断是修改学生资料还是添加新的学生资料,如果学号为"00000000",则为添加新的学生资料,反之则为修改学生资料。如果为修改资料,则以学生的学号为关键字将该学生的信息加载到该窗体的对应文本框,同时将该学号框(EditStu(0))的Enable属性设置为False。如果为添加新的学生资料,则将学号的前6位置为该班级的ID,并将学号输入框的SelStart属性设为6。根据以上设计,在Form_Load中添加如下代码:
PrivateSubForm_Load()
'确定添加或者修改,保存数据
Combo1.Clear
Combo1.AddItem"男"
Combo1.AddItem"女"
Combo1.ListIndex=0
Combo2.Clear
Combo2.AddItem""
Combo2.AddItem"团员"
Combo2.AddItem"党员"
Combo2.AddItem"预备党员"
Combo2.ListIndex=1
Combo3.Clear
Combo3.AddItem"汉族"
Combo3.AddItem"瑶族"
Combo3.AddItem"土家族"
Combo3.AddItem"侗族"
Combo3.AddItem"白族"
Combo3.AddItem"苗族"
Combo3.AddItem"回族"
Combo3.AddItem"壮族"
Combo3.ListIndex=0
IfEditNum="00000000"Then
Me.Caption="添加学生资料(班级:"&classid&")"
Command1.Caption="添加(&A)"
EditStu(0).Text=classid
EditStu(0).SelStart=6
Else
Me.Caption="修改学号为"&EditNum&"的学生资料"
EditStu(0).Enabled=False
Command1.Caption="修改(&M)"
DimrsAsNewADODB.Recordset,sqlstrAsString
sqlstr="select*fromStuInfowhereSID='"&EditNum&"'"
rs.Opensqlstr,con
'把数据代入文本框中
EditStu(0).Text=rs.Fields("SID")
EditStu(1).Text=rs.Fields("SName")
EditStu(2).Text=rs.Fields("SBirthday")
EditStu(3).Text=rs.Fields("SPlace")
EditStu(4).Text=rs.Fields("SAddress")
EditStu(5).Text=rs.Fields("SCode")
EditStu(6).Text=rs.Fields("STel")
EditStu(7).Text=rs.Fields("SDormitory")
EditStu(8).Text=rs.Fields("SRemark")
Ifrs.Fields("SGender")="男"Then
Combo1.ListIndex=0
ElseIfrs.Fields("SGender")="女"Then
Combo1.ListIndex=1
EndIf
Ifrs.Fields("SZhengzhi")=""Then
Combo2.ListIndex=0
ElseIfrs.Fields("SZhengzhi")="团员"Then
Combo2.ListIndex=1
ElseIfrs.Fields("SZhengzhi")="党员"Then
Combo2.ListIndex=2
ElseIfrs.Fields("SZhengzhi")="预备党员"Then
Combo2.ListIndex=3
EndIf
SelectCasers.Fields("SMinzu")
Case"汉族":Combo3.ListIndex=0
Case"瑶族":Combo3.ListIndex=1
Case"土家族":Combo3.ListIndex=2
Case"侗族":Combo3.ListIndex=3
Case"白族":Combo3.ListIndex=4
Case"苗族":Combo3.ListIndex=5
Case"回族":Combo3.ListIndex=6
Case"壮族":Combo3.ListIndex=7
EndSelect
rs.Close:Setrs=Nothing
EndIf
EndSub
当用户按下Command1按钮时,触发该按钮的Click事件。首先判断用户输入的信息是否符合要求,
......
IfTrim(EditStu(0).Text)=""OrVal(Trim(EditStu(0).Text))>99999999
OrVal(Trim(EditStu(0).Text))<=0OrLen(EditStu(0))<>8Then
MsgBox"学号输入有错误!请重新输入学号(xxxxxxxx)!",vbInformation
EditStu(0).SetFocus
ExitSub
EndIf
IfTrim(EditStu(1).Text)=""Then
MsgBox"必须输入学生的姓名!",vbInformation
EditStu(1).Text=""
EditStu(1).SetFocus
ExitSub
EndIf
IfIsDate(EditStu(2).Text)=FalseThen
MsgBox"请按照(YYYY-MM-DD)的格式输入出生年月!",vbOKOnly+vbExclamation,"警告"
EditStu(2).SelLength=Len(EditStu(2).Text)
EditStu(2).SetF
上一篇:
学生学籍管理系统VB(论文和程序)
下一篇:
“台独”的渊源与实质(中)——兼论台湾问题的基本估计与中国统一的可能前景