问题三:正在值班教师窗体
思路:正在值班教师应为登陆者,本窗体从WorkLog表中查找;
在登陆窗体中天际onwork的记录;
其次程序退出时删除onwork表中的记录,更该worklog表中的记录。
登陆窗体:
Else
'添加进onwork数据表中
If Trim(mrc.Fields(1)) = Trim(txtPassWord.Text) Then
UserLevel = mrc.Fields(2)
txtSQL1 = "select * from onwork_Info "
Set mrcOnwork = ExecuteSQL(txtSQL1, Msgtext1)
mrcOnwork.AddNew
mrcOnwork.Fields(0) = Trim(txtUserName.Text)
mrcOnwork.Fields(1) = Trim(mrc.Fields(2))
mrcOnwork.Fields(2) = Date
mrcOnwork.Fields(3) = Time
mrcOnwork.Fields(4) = Trim(Environ("computername"))
mrcOnwork.Update
主窗体下机时删除在线表中的信息:
'删除在线表中的信息
Set mrcOnline = New ADODB.Recordset
OnlineSQL = "select * from online_Info where cardno = '" & Trim(txtCardNo.Text) & "'"
Set mrcOnline = ExecuteSQL(OnlineSQL, OnMsgtext)
mrcOnline.Delete
mrcOnline.Update
lblPeopleCount.Caption = Str(lblPeopleCount.Caption - 1)
主窗体退出时更新worklog表中的数据:
Private Sub MDIForm_Unload(Cancel As Integer) '涉及到worklog和Onwork两张表
If MsgBox("确定要退出吗?", vbInformation + vbYesNo, "李春丽第一次机房") = vbYes Then
Cancel = False
Dim mrc As ADODB.Recordset
Dim mrc1 As ADODB.Recordset
Dim txtSQL As String
Dim txtSQL1 As String
Dim Msgtext1 As String
Dim MsgText As String
txtSQL1 = "select * from Onwork_Info where UserID= '" & Trim(frmLogin.txtUserName) & "'"
Set mrc1 = ExecuteSQL(txtSQL1, Msgtext1)
txtSQL = "select * from worklog_Info "
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.AddNew
' If mrc1.EOF And mrc1.BOF Then
' On Error GoTo gperror
'gperror:
' MsgBox "已经没有记录了,窗口即将关闭!", vbInformation, "提示"
' Else
mrc.Fields(1) = Trim(frmLogin.txtUserName)
mrc.Fields(2) = Trim(mrc1.Fields(1))
mrc.Fields(3) = Trim(mrc1.Fields(2))
mrc.Fields(4) = Trim(mrc1.Fields(3))
mrc.Fields(7) = Trim(Environ("computername"))
mrc.Fields(5) = Trim(Date)
mrc.Fields(6) = Trim(Time)
mrc.Fields(8) = Trim(False)
mrc.Update
'mrc1.Delete
End
Else
Cancel = True
End If
End Sub
问题四:一些细节性的问题:
(1)上下机窗体、学生查看余额窗体、退卡窗体、充值窗体的显示框中的内容不可编辑,应被锁定。
(2)MSFlexGrid控件在窗体一加载时即显示表头(注意固定行的问题),选中行时选择整行,以及焦点问题。
(3)密码显示时应为*
(4)组合查询:当点击第一个组合关系时,第二行查询条件才可以编辑;当点击第二个组合关系时,第三行查询条件才可以编辑。
(5)不同权限的人用户名不可以重复。
(6)基本数据设定每次更改信息始终只有一条记录。