教师管理 OptionCompareDatabase OptionExplicit PrivateSubCommand清空Click() 教师姓名。Value 教师编号。Value 性别。Value 学院。Value 职位。Value 职务。Value 联系方式。Value 备注。Value EndSub PrivateSubCommand全部Click() Me。数据表子窗体。Form。FilterOnFalse EndSub PrivateSubCommand添加Click() OnErrorGoTo添加失败错误 If教师姓名OrIsNull(教师姓名)TrueThen MsgBox教师姓名值为空! ExitSub EndIf If教师编号OrIsNull(教师编号)TrueThen MsgBox教师编号值为空! ExitSub EndIf IfNz(DCount(教师姓名,教师表,教师姓名Me。教师姓名),0)0Then MsgBox该教师姓名已存在!请输入其他教师姓名 ExitSub EndIf DimaddrsAsDAO。Recordset SetaddrsCurrentDb。OpenRecordset(教师表,dbOpenTable) Withaddrs 。AddNew !教师姓名。Value教师姓名。Value !教师编号。Value教师编号。Value !性别。Value性别。Value !学院。Value学院。Value !职位。Value职位。Value !职务。Value职务。Value !联系方式。Value联系方式。Value !备注。Value备注。Value 。Update 。Close EndWith SetaddrsNothing MsgBox添加成功! Me。数据表子窗体。Requery ExitSub 添加失败错误: MsgBox添加失败! MsgBoxErr。Description EndSub 教师数据表 OptionCompareDatabase OptionExplicit PrivateSubFormBeforeUpdate(CancelAsInteger) OnErrorGoTo数据更新前提醒Err If(MsgBox(是否保存对记录的修改,1,修改记录提醒)1)Then Beep Else DoCmd。RunCommandacCmdUndo EndIf 数据更新前提醒Exit: ExitSub 数据更新前提醒Err: MsgBoxError Resume数据更新前提醒Exit EndSub PrivateSub教师姓名DblClick(CancelAsInteger) DoCmd。OpenForm教师信息更新删除,acNormal,,教师姓名教师姓名 EndSub 教师信息更新删除 OptionCompareDatabase OptionExplicit PrivateSubCommand保存Click() OnErrorResumeNext DoCmd。RunCommandacCmdSaveRecord IfError。Number0Then MsgBoxError。Description Else MsgBox保存成功 EndIf EndSub PrivateSubCommand撤销Click() OnErrorResumeNext DoCmd。RunCommandacCmdUndo IfError。Number0Then MsgBoxError。Description EndIf EndSub PrivateSubCommand删除Click() OnErrorResumeNext DoCmd。SetWarnings(False) IfMsgBox(是否删除该记录,vbOKCancel)vbOKThen DoCmd。RunCommandacCmdDeleteRecord MsgBox删除成功 DoCmd。CloseacForm,Me。Name Else ExitSub EndIf IfError。Number0Then MsgBoxError。Description EndIf EndSub PrivateSubFormBeforeUpdate(CancelAsInteger) OnErrorGoTo数据更新前提醒Err If(MsgBox(是否保存对记录的修改,1,修改记录提醒)1)Then Beep Else DoCmd。RunCommandacCmdUndo EndIf 数据更新前提醒Exit: ExitSub 数据更新前提醒Err: MsgBoxError Resume数据更新前提醒Exit EndSub PrivateSubFormClose() Forms(教师管理)。Form。数据表子窗体。Requery EndSub课程管理 OptionCompareDatabase OptionExplicit PrivateSubCommand清空Click() 课程编号。Value 课程名称。Value 任课教师。Value 上课地点。Value 上课周数。Value 上课时间。Value 备注。Value EndSub PrivateSubCommand全部Click() Me。数据表子窗体。Form。FilterOnFalse EndSub PrivateSubCommand添加Click() OnErrorGoTo添加失败错误 If课程编号OrIsNull(课程编号)TrueThen MsgBox课程编号值为空! ExitSub EndIf If课程名称OrIsNull(课程名称)TrueThen MsgBox课程名称值为空! ExitSub EndIf If任课教师OrIsNull(任课教师)TrueThen MsgBox任课教师值为空! ExitSub EndIf IfNz(DCount(课程编号,课程表,课程编号Me。课程编号),0)0Then MsgBox该课程编号已存在!请输入其他课程编号 ExitSub EndIf DimaddrsAsDAO。Recordset SetaddrsCurrentDb。OpenRecordset(课程表,dbOpenTable) Withaddrs 。AddNew !课程编号。Value课程编号。Value !课程名称。Value课程名称。Value !任课教师。Value任课教师。Value !上课地点。Value上课地点。Value !上课周数。Value上课周数。Value !上课时间。Value上课时间。Value !备注。Value备注。Value 。Update 。Close EndWith SetaddrsNothing MsgBox添加成功! Me。数据表子窗体。Requery ExitSub 添加失败错误: MsgBox添加失败! MsgBoxErr。Description EndSub课程签到情况 OptionCompareDatabase OptionExplicit PrivateSubCommand全部Click() Me。选择课程 Me。数据表子窗体。Form。FilterOnFalse Me。数据表子窗体2。Form。FilterOnFalse EndSub PrivateSubCommand生成报表Click() IfMe。选择课程Then DoCmd。OpenReport课程签到情况报表,acViewReport,,课程签到情况汇总统计查询课程编号Me。选择课程 Else DoCmd。OpenReport课程签到情况报表,acViewReport EndIf EndSub PrivateSub选择课程Change() Me。数据表子窗体。Form。Filter课程编号Me。选择课程 Me。数据表子窗体。Form。FilterOnTrue Me。数据表子窗体2。Form。Filter课程编号Me。选择课程 Me。数据表子窗体2。Form。FilterOnTrue EndSub 课程数据表 OptionCompareDatabase OptionExplicit PrivateSubFormBeforeUpdate(CancelAsInteger) OnErrorGoTo数据更新前提醒Err If(MsgBox(是否保存对记录的修改,1,修改记录提醒)1)Then Beep Else DoCmd。RunCommandacCmdUndo EndIf 数据更新前提醒Exit: ExitSub 数据更新前提醒Err: MsgBoxError Resume数据更新前提醒Exit EndSub PrivateSub课程编号DblClick(CancelAsInteger) DoCmd。OpenForm课程信息更新删除,acNormal,,课程编号课程编号 EndSub课程信息更新删除 OptionCompareDatabase OptionExplicit PrivateSubCommand保存Click() OnErrorResumeNext DoCmd。RunCommandacCmdSaveRecord IfError。Number0Then MsgBoxError。Description Else MsgBox保存成功 EndIf EndSub PrivateSubCommand撤销Click() OnErrorResumeNext DoCmd。RunCommandacCmdUndo IfError。Number0Then MsgBoxError。Description EndIf EndSub PrivateSubCommand删除Click() OnErrorResumeNext DoCmd。SetWarnings(False) IfMsgBox(是否删除该记录,vbOKCancel)vbOKThen DoCmd。RunCommandacCmdDeleteRecord MsgBox删除成功 DoCmd。CloseacForm,Me。Name Else ExitSub EndIf IfError。Number0Then MsgBoxError。Description EndIf EndSub PrivateSubFormBeforeUpdate(CancelAsInteger) OnErrorGoTo数据更新前提醒Err If(MsgBox(是否保存对记录的修改,1,修改记录提醒)1)Then Beep Else DoCmd。RunCommandacCmdUndo EndIf 数据更新前提醒Exit: ExitSub 数据更新前提醒Err: MsgBoxError Resume数据更新前提醒Exit EndSub PrivateSubFormClose() Forms(课程管理)。Form。数据表子窗体。Requery EndSub签到管理 OptionCompareDatabase OptionExplicit PrivateSubCommand查询Click() Me。数据表子窗体。Form。Filter日期Me。日期and课程编号Me。选择课程 Me。数据表子窗体。Form。FilterOnTrue Me。数据表子窗体。Requery EndSub PrivateSubCommand生成签到记录Click() If日期OrIsNull(日期)TrueThen MsgBox日期值为空! ExitSub EndIf If选择课程OrIsNull(选择课程)TrueThen MsgBox选择课程值为空! ExitSub EndIf If上课时间OrIsNull(上课时间)TrueThen MsgBox选择课程值为空! ExitSub EndIf DimsearchrsAsDAO。Recordset DimsearchsqlAsString searchsqlSelectFrom选课表Where课程编号Me。选择课程 SetsearchrsCurrentDb。OpenRecordset(searchsql,dbOpenDynaset) DimaddrsAsDAO。Recordset SetaddrsCurrentDb。OpenRecordset(签到记录表,dbOpenTable) Withaddrs DoWhilesearchrs。EOFFalse 生成签到记录 。AddNew !日期。Value日期。Value !课程编号。Value选择课程 !学号。Valuesearchrs!学号。Value !上课时间。Value上课时间。Value !迟到。ValueFalse !早退。ValueFalse !请假。ValueFalse !旷课。ValueFalse 。Update searchrs。MoveNext Loop 。Close EndWith SetaddrsNothing searchrs。Close SetsearchrsNothing Me。数据表子窗体。Form。Filter日期Me。日期and课程编号Me。选择课程 Me。数据表子窗体。Form。FilterOnTrue Me。数据表子窗体。Requery EndSub PrivateSubFormLoad() Me。日期Date Me。上课时间Time EndSub签到记录查询数据表 OptionCompareDatabase OptionExplicit PrivateSub签到IDDblClick(CancelAsInteger) IfMsgBox(是否删除该选课记录,vbOKCancel)vbOKThen DoCmd。SetWarnings(False) DimdelsqlAsString delsqlDeleteFrom签到记录表Where签到ID签到ID DoCmd。RunSQLdelsql Forms(签到管理)。数据表子窗体。Requery EndIf EndSub PrivateSub签到时间DblClick(CancelAsInteger) Me。签到时间Time EndSub系统登录 OptionCompareDatabase OptionExplicit PrivateSub登录Click() If账号And密码Then IfMe。密码DLookup(密码,账号密码表,账号Me。账号)Then修改域函数参数 MsgBox登录成功 学生管理权限DLookup(学生管理,账号密码表,账号Me。账号) 教师管理权限DLookup(教师管理,账号密码表,账号Me。账号) 课程管理权限DLookup(课程管理,账号密码表,账号Me。账号) 选课管理权限DLookup(选课管理,账号密码表,账号Me。账号) 签到管理权限DLookup(签到管理,账号密码表,账号Me。账号) 课程签到情况查询权限DLookup(课程签到情况查询,账号密码表,账号Me。账号) 学生签到情况查询权限DLookup(学生签到情况查询,账号密码表,账号Me。账号) DoCmd。OpenForm系统主页,acNormal,,账号Me。账号 DoCmd。CloseacForm,Me。Name Else MsgBox账号或密码错误 EndIf Else MsgBox请输入账号和密码 EndIf EndSub PrivateSub退出Click() Application。Quit EndSub 系统主页 OptionCompareDatabase OptionExplicit PrivateSubCommand教师管理Click() If教师管理权限TrueThen DoCmd。OpenForm教师管理,acNormal Else MsgBox无权限 ExitSub EndIf EndSub PrivateSubCommand课程管理Click() If教师管理权限TrueThen DoCmd。OpenForm课程管理,acNormal Else MsgBox无权限 ExitSub EndIf EndSub PrivateSubCommand课程签到情况Click() If课程签到情况查询权限TrueThen DoCmd。OpenForm课程签到情况,acNormal Else MsgBox无权限 ExitSub EndIf EndSub PrivateSubCommand签到管理Click() If签到管理权限TrueThen DoCmd。OpenForm签到管理,acNormal Else MsgBox无权限 ExitSub EndIf EndSub PrivateSubCommand退出系统Click() Application。QuitacQuitSaveAll EndSub PrivateSubCommand选课管理Click() If选课管理权限TrueThen DoCmd。OpenForm选课管理,acNormal Else MsgBox无权限 ExitSub EndIf EndSub PrivateSubCommand学生管理Click() If学生管理权限TrueThen DoCmd。OpenForm学生管理,acNormal Else MsgBox无权限 ExitSub EndIf EndSub PrivateSubCommand学生签到情况Click() If学生签到情况查询权限TrueThen DoCmd。OpenForm学生签到情况,acNormal Else MsgBox无权限 ExitSub EndIf EndSub选课管理 OptionCompareDatabase OptionExplicit PrivateSub选择课程Change() Me。Filter课程编号Me。选择课程 Me。FilterOnTrue 计算选课人数 Me。选课人数Nz(DCount(选课ID,选课表,课程编号Me。课程编号),0) EndSub学生管理 OptionCompareDatabase OptionExplicit PrivateSubCommand清空Click() 学号。Value 姓名。Value 性别。Value 班级。Value 专业。Value 学院。Value 联系方式。Value 备注。Value EndSub PrivateSubCommand全部Click() Me。数据表子窗体。Form。FilterOnFalse EndSub PrivateSubCommand添加Click() OnErrorGoTo添加失败错误 If学号OrIsNull(学号)TrueThen MsgBox学号值为空! ExitSub EndIf If姓名OrIsNull(姓名)TrueThen MsgBox姓名值为空! ExitSub EndIf IfNz(DCount(学号,学生表,学号Me。学号),0)0Then MsgBox该学号已存在!请添加其他学号 ExitSub EndIf DimaddrsAsDAO。Recordset SetaddrsCurrentDb。OpenRecordset(学生表,dbOpenTable) Withaddrs 。AddNew !学号。Value学号。Value !姓名。Value姓名。Value !性别。Value性别。Value !班级。Value班级。Value !专业。Value专业。Value !学院。Value学院。Value !联系方式。Value联系方式。Value !备注。Value备注。Value 。Update 。Close EndWith SetaddrsNothing MsgBox添加成功! Me。数据表子窗体。Requery ExitSub 添加失败错误: MsgBox添加失败! MsgBoxErr。Description EndSub学生签到情况 OptionCompareDatabase OptionExplicit PrivateSubCommand全部Click() Me。选择学生 Me。数据表子窗体。Form。FilterOnFalse Me。数据表子窗体2。Form。FilterOnFalse EndSub PrivateSubCommand生成报表Click() IfMe。选择学生Then DoCmd。OpenReport学生签到情况报表,acViewReport,,学号Me。选择学生 Else DoCmd。OpenReport学生签到情况报表,acViewReport EndIf EndSub PrivateSub选择学生Change() Me。数据表子窗体。Form。Filter学号Me。选择学生 Me。数据表子窗体。Form。FilterOnTrue Me。数据表子窗体2。Form。Filter学号Me。选择学生 Me。数据表子窗体2。Form。FilterOnTrue EndSub学生数据表 OptionCompareDatabase OptionExplicit PrivateSubFormBeforeUpdate(CancelAsInteger) OnErrorGoTo数据更新前提醒Err If(MsgBox(是否保存对记录的修改,1,修改记录提醒)1)Then Beep Else DoCmd。RunCommandacCmdUndo EndIf 数据更新前提醒Exit: ExitSub 数据更新前提醒Err: MsgBoxError Resume数据更新前提醒Exit EndSub PrivateSub学号DblClick(CancelAsInteger) DoCmd。OpenForm学生信息更新删除,acNormal,,学号学号 EndSub学生数据表2 OptionCompareDatabase OptionExplicit PrivateSub学号DblClick(CancelAsInteger) IfNz(DCount(选课ID,选课表,课程编号Forms(选课管理)。课程编号and学号Me。学号),0)0Then MsgBox该学生已选择该课程!请勿重复选择 ExitSub Else DoCmd。SetWarnings(False) DimaddsqlAsString addsqlInsertInto选课表(课程编号,学号)Values(Forms(选课管理)。课程编号,学号) DoCmd。RunSQLaddsql Forms(选课管理)。Form。数据表子窗体2。Requery Forms(选课管理)。选课人数Nz(DCount(选课ID,选课表,课程编号Forms(选课管理)。课程编号),0) EndIf EndSub学生信息更新删除 OptionCompareDatabase OptionExplicit PrivateSubCommand保存Click() OnErrorResumeNext DoCmd。RunCommandacCmdSaveRecord IfError。Number0Then MsgBoxError。Description Else MsgBox保存成功 EndIf EndSub PrivateSubCommand撤销Click() OnErrorResumeNext DoCmd。RunCommandacCmdUndo IfError。Number0Then MsgBoxError。Description EndIf EndSub PrivateSubCommand删除Click() OnErrorResumeNext DoCmd。SetWarnings(False) IfMsgBox(是否删除该记录,vbOKCancel)vbOKThen DoCmd。RunCommandacCmdDeleteRecord MsgBox删除成功 DoCmd。CloseacForm,Me。Name Else ExitSub EndIf IfError。Number0Then MsgBoxError。Description EndIf EndSub PrivateSubFormBeforeUpdate(CancelAsInteger) OnErrorGoTo数据更新前提醒Err If(MsgBox(是否保存对记录的修改,1,修改记录提醒)1)Then Beep Else DoCmd。RunCommandacCmdUndo EndIf 数据更新前提醒Exit: ExitSub 数据更新前提醒Err: MsgBoxError Resume数据更新前提醒Exit EndSub PrivateSubFormClose() Forms(学生管理)。Form。数据表子窗体。Requery EndSub学生选课查询数据表 OptionCompareDatabase OptionExplicit PrivateSub选课IDDblClick(CancelAsInteger) IfMsgBox(是否删除该选课记录,vbOKCancel)vbOKThen DoCmd。SetWarnings(False) DimdelsqlAsString delsqlDeleteFrom选课表Where选课ID选课ID DoCmd。RunSQLdelsql Forms(选课管理)。数据表子窗体2。Requery Forms(选课管理)。选课人数Nz(DCount(选课ID,选课表,课程编号Forms(选课管理)。课程编号),0) EndIf EndSub 模块1 OptionCompareDatabase OptionExplicit Public学生管理权限AsBoolean Public教师管理权限AsBoolean Public课程管理权限AsBoolean Public选课管理权限AsBoolean Public签到管理权限AsBoolean Public课程签到情况查询权限AsBoolean Public学生签到情况查询权限AsBoolean