📄 mdifrm.frm
字号:
'图书类型管理
Private Sub Book_Type_Click()
FrmBookType.Show
End Sub
'关于
Private Sub Hlp_About_Click()
FrmAbout.Show
End Sub
'图书借阅
Private Sub Ope_Lend_Click()
FrmLend.Show
End Sub
'缴纳欠款
Private Sub Ope_Pay_Click()
FrmPay.Show
End Sub
'图书归还
Private Sub Ope_Return_Click()
FrmReturn.Show
End Sub
'添加读者
Private Sub Rdr_Add_Click()
FrmRdrAdd.Show
End Sub
'用户登录
Private Sub Rdr_Cnn_Click()
FrmRdrCnn.Show
End Sub
'删除读者
Private Sub Rdr_Delete_Click()
FrmRdrDel.Show
End Sub
'读者信息查询
Private Sub Rdr_Query_Click()
FrmRdrQuery.Show
End Sub
'查询图书借阅排名
Private Sub Stat_Top_Click()
FrmStat.Show
End Sub
'连接服务器
Private Sub Sys_Connect_Click()
FrmCnn.Show
End Sub
'添加管理员
Private Sub Usr_Add_Click()
FrmUsrAdd.Show
End Sub
'删除管理员
Private Sub Usr_Delete_Click()
FrmUsrDel.Show
End Sub
'查询管理员
Private Sub Usr_Query_Click()
FrmUsrQuery.Show
End Sub
'退出系统
Private Sub Sys_Exit_Click()
MyExit = MsgBox("是否要退出程序?", vbYesNo, "退出")
If MyExit = vbYes Then End
End Sub
Private Sub MDIForm_Load()
'确定该程序没有被启动过
If App.PrevInstance Then
MsgBox "您已经启动过了本程序!"
End
End If
End Sub
Private Sub MDIForm_Unload(Cancel As Integer)
'检查Winsock连接是否关闭
If Me.SockToSvr.State <> sckClosed Then
Me.SockToSvr.Close
End If
End Sub
'响应工具栏
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
'连接服务器
Case "Sys_Cnn"
Call Sys_Connect_Click
'用户登录
Case "Rdr_Cnn"
Call Rdr_Cnn_Click
'退出系统
Case "Sys_Exit"
Call Sys_Exit_Click
'借阅图书
Case "Ope_Lend"
Call Ope_Lend_Click
'归还图书
Case "Ope_Return"
Call Ope_Return_Click
'缴纳罚款
Case "Ope_Pay"
Call Ope_Pay_Click
'图书类型管理
Case "Book_Type"
Call Book_Type_Click
'图书信息管理
Case "Book_Info"
Call Book_Info_Click
'添加读者信息
Case "Rdr_Add"
Call Rdr_Add_Click
'删除读者信息
Case "Rdr_Del"
Call Rdr_Delete_Click
'查询读者信息
Case "Rdr_Query"
Call Rdr_Query_Click
'添加管理员
Case "Usr_Add"
Call Usr_Add_Click
'删除管理员
Case "Usr_Del"
Call Usr_Delete_Click
'管理员信息查询
Case "Usr_Query"
Call Usr_Query_Click
'图书统计排行
Case "Stat_Top"
Call Stat_Top_Click
'关于
Case "Hlp_About"
Call Hlp_About_Click
End Select
End Sub
Private Sub SockToSvr_Close()
'状态栏显示服务器状态
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:断开。"
End Sub
Private Sub SockToSvr_Connect() '连接服务器
Dim str As String
'向服务器发送请求数据=Cnn,Usr_ID,Usr_Pwd
str = "Cnn," & UserNow.ID & "," & UserNow.Pwd & ","
'检验sock连接并向服务器发送数据
If MDIFrm.SockToSvr.State <> sckConnected Then
MsgBox "还没有连接数据库,不能发送请求!"
Exit Sub
End If
Me.SockToSvr.SendData str
End Sub
Private Sub SockToSvr_DataArrival(ByVal bytesTotal As Long)
Dim StrArrival As String, StrGet() As String
Dim Start As Integer
Dim i As Integer, j As Integer, k As Integer
Dim LtItm As ListItem
'接收数据,String类型
Me.SockToSvr.GetData StrArrival, vbString
If Len(StrArrival) < 1 Then Exit Sub
'拆分接收到的数据
StrGet() = Split(StrArrival, ",", -1)
'得到帧头,按不同类型做响应的处理
Select Case StrGet(0)
'用户管理
Case "Usr"
'按类型处理
Select Case StrGet(1)
'添加管理员
Case "01"
'状态栏显示服务器状态
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应添加管理员。"
'弹出提示框提示用户
MsgBox StrGet(2), , "服务器响应"
'删除管理员
Case "02"
'状态栏显示服务器状态
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应删除管理员。"
'弹出提示框提示用户
MsgBox StrGet(2), , "服务器响应"
'查询管理员
Case "03"
'状态栏显示服务器状态
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应查询管理员。"
'清空列表
FrmUsrQuery.ListUsrResult.Clear
'在列表中显示查询结果
For i = 0 To UBound(StrGet) - 2
FrmUsrQuery.ListUsrResult.AddItem StrGet(i + 2)
Next i
End Select
'读者管理
Case "Rdr"
'按类型处理
Select Case StrGet(1)
'添加读者
Case "01"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应添加读者。"
MsgBox StrGet(2), , "服务器响应"
'删除读者
Case "02"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应删除读者。"
MsgBox StrGet(2), , "服务器响应"
'查询读者
Case "03"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应查询读者。"
FrmRdrQuery.ListRdrResult.Clear
For i = 0 To UBound(StrGet) - 2
FrmRdrQuery.ListRdrResult.AddItem StrGet(i + 2)
Next i
End Select
'图书类型信息
Case "Type"
Select Case StrGet(1)
'添加图书类型
Case "01"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应添加图书类型。"
MsgBox StrGet(2), , "服务器响应"
'查询图书类型
Case "02"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应查询图书类型。"
'清空列表
FrmBookType.ListQuery.Clear
'添加查询结果
For i = 0 To UBound(StrGet) - 2
FrmBookType.ListQuery.AddItem StrGet(i + 2)
Next i
End Select
'图书信息
Case "Book"
Select Case StrGet(1)
'添加图书信息
Case "01"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应添加图书信息。"
MsgBox StrGet(2), , "服务器响应"
'查询图书信息
Case "02"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应查询图书信息。"
FrmBookInfo.LvBkResult.ListItems.Clear
For i = 0 To UBound(StrGet) - 2
Set LtItm = FrmBookInfo.LvBkResult.ListItems.Add()
LtItm.Text = i + 1
LtItm.SubItems(1) = StrGet(i + 2)
Next i
End Select
'借阅图书
Case "Lend"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应借阅图书。"
MsgBox StrGet(1), , "服务器响应"
'归还图书
Case "Return"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应归还图书。"
MsgBox StrGet(1), , "服务器响应"
'缴纳罚款
Case "Pay"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应缴纳罚款。"
MsgBox StrGet(1), , "服务器响应"
'图书排名信息
Case "Stat"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应查询图书排名信息。"
FrmStat.LvTop.ListItems.Clear
For i = 0 To UBound(StrGet) - 1
Set LtItm = FrmStat.LvTop.ListItems.Add()
LtItm.Text = i + 1
LtItm.SubItems(1) = StrGet(i + 1)
Next i
'连接信息
Case "Cnn"
MDIFrm.StatusBar1.Panels(1).Text = "服务器连接状态:响应连接信息。"
MsgBox StrGet(1), , "服务器响应"
'如果连接服务器失败,则关闭Winsock,等待重新连接
If StrGet(1) = "该管理员名不存在!请重新输入!" Then
Me.SockToSvr.Close
ElseIf StrGet(1) = "密码错误!请重新输入!" Then
Me.SockToSvr.Close
End If
End Select
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -