📄 frm_dbclear.frm
字号:
ScaleHeight = 480
ScaleWidth = 6120
TabIndex = 12
Top = 0
Width = 6120
Begin VB.PictureBox Pic_TBarSub1
Appearance = 0 'Flat
AutoRedraw = -1 'True
BackColor = &H00C0C0C0&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 480
Left = 0
ScaleHeight = 480
ScaleWidth = 480
TabIndex = 13
Top = 0
Width = 480
Begin VB.PictureBox Pic_TBarSymbol
Appearance = 0 'Flat
AutoRedraw = -1 'True
BackColor = &H00C0C0C0&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 240
Left = 120
Picture = "Frm_DBClear.frx":0000
ScaleHeight = 240
ScaleWidth = 240
TabIndex = 14
Top = 120
Width = 240
End
End
Begin LabMangeSystem.XButton Cmd_TBarClose
Height = 240
Left = 5760
TabIndex = 15
Top = 120
Width = 240
_ExtentX = 423
_ExtentY = 423
Caption = ""
ToolTip = "关闭当前窗口"
BackColor = 16777215
MouseDownColor = -2147483644
MouseOnColor = -2147483644
StyleColor = 0
Style3dColor1 = 16577259
Style3dColor2 = 8421504
Picture = "Frm_DBClear.frx":058A
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin VB.Label Lbl_TBarText
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "TitleBar Text"
BeginProperty Font
Name = "Tahoma"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00000000&
Height = 195
Left = 600
TabIndex = 16
Top = 150
Width = 1095
End
End
Begin LabMangeSystem.XButton Cmd_Clear
Height = 375
Left = 3600
TabIndex = 8
Top = 4560
Width = 1095
_ExtentX = 1931
_ExtentY = 661
Caption = "清理"
BackColor = 14737632
ForeColor = 8421504
MouseDownColor = -2147483644
MouseOnColor = -2147483644
StyleColor = 16777215
Style3dColor1 = 16577259
Style3dColor2 = 8421504
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "Tahoma"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
IfDraw = -1 'True
End
Begin LabMangeSystem.XButton Cmd_Close
Height = 375
Left = 4800
TabIndex = 9
Top = 4560
Width = 1095
_ExtentX = 1931
_ExtentY = 661
Caption = "关闭"
BackColor = 14737632
ForeColor = 8421504
MouseDownColor = -2147483644
MouseOnColor = -2147483644
StyleColor = 16777215
Style3dColor1 = 16577259
Style3dColor2 = 8421504
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "Tahoma"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
IfDraw = -1 'True
End
End
Attribute VB_Name = "Frm_DBClear"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub Chk_Acc_Standby_Click()
Lbl_Acc_Standby.Visible = Chk_Acc_Standby.Value
End Sub
Private Sub Chk_Book_Damag_Click()
If Chk_Brw_All.Value = 1 Then Chk_Book_Damag.Value = 1
End Sub
Private Sub Chk_Brw_All_Click()
Lbl_Brw_All.Visible = Chk_Brw_All.Value
Chk_Book_Damag.Value = Chk_Brw_All.Value
End Sub
Private Sub Chk_Brw_Return_Click()
Lbl_From.Visible = Chk_Brw_Return.Value
Lbl_To.Visible = Chk_Brw_Return.Value
Txt_From.Visible = Chk_Brw_Return.Value
Txt_To.Visible = Chk_Brw_Return.Value
End Sub
Private Sub Chk_Reader_Standby_Click()
Lbl_Reader_Standby.Visible = Chk_Reader_Standby.Value
End Sub
Private Sub Cmd_Clear_Click()
Dim strSQL() As String
Dim strERR() As String
Dim n As Integer
Dim m As Integer
Dim i As Integer
n = -1
m = -1
ReDim strSQL(-1 To n)
ReDim strERR(-1 To m)
If HavePower("修改账户权限") = True Then
''所有账户登录信息
If Chk_Acc_Login.Value = 1 Then
n = n + 1
ReDim Preserve strSQL(-1 To n)
strSQL(n) = "DELETE FROM 账户登录"
End If
'状态为停用的账户
If Chk_Acc_Standby.Value = 1 Then
n = n + 6
ReDim Preserve strSQL(-1 To n)
strSQL(n - 5) = "DELETE FROM 图书损坏 WHERE 图书借阅编号 IN (SELECT 图书借阅编号 FROM 图书借阅 WHERE 借书经手人 IN (SELECT 用户名 FROM 账户 WHERE 状态 = '停用') UNION SELECT 图书借阅编号 FROM 图书借阅 WHERE 还书经手人 IN (SELECT 用户名 FROM 账户 WHERE 状态 = '停用'))"
strSQL(n - 4) = "DELETE FROM 图书借阅 WHERE 图书借阅编号 IN (SELECT 图书借阅编号 FROM 图书借阅 WHERE 借书经手人 IN (SELECT 用户名 FROM 账户 WHERE 状态 = '停用') UNION SELECT 图书借阅编号 FROM 图书借阅 WHERE 还书经手人 IN (SELECT 用户名 FROM 账户 WHERE 状态 = '停用'))"
strSQL(n - 3) = "DELETE FROM 图书库存 WHERE 经手人 IN (SELECT 用户名 FROM 账户 WHERE 状态 = '停用')"
strSQL(n - 2) = "DELETE FROM 充值记录 WHERE 经手人 IN (SELECT 用户名 FROM 账户 WHERE 状态 = '停用')"
strSQL(n - 1) = "DELETE FROM 账户登录 WHERE 用户名 IN (SELECT 用户名 FROM 账户 WHERE 状态 = '停用')"
strSQL(n) = "DELETE FROM 账户 WHERE 状态 = '停用'"
End If
End If
If HavePower("办理借书权限") = True And HavePower("办理还书权限") = True Then
'已还借书记录
If Chk_Brw_Return.Value = 1 Then
Dim D_From As String
Dim D_To As String
If IsDate(Txt_From.Text) = False Then
D_From = "2000-01-01"
Txt_From.Text = D_From
Else
D_From = Trim(Txt_From.Text)
End If
If IsDate(Txt_To.Text) = False Then
D_To = Format(Date, "yyyy-mm-dd")
Txt_To.Text = D_To
Else
D_To = Trim(Txt_To.Text)
End If
n = n + 2
ReDim Preserve strSQL(-1 To n)
strSQL(n - 1) = "DELETE FROM 图书损坏 WHERE 图书借阅编号 IN (SELECT 图书借阅编号 FROM 图书借阅 WHERE 是否已还 = 1)"
strSQL(n) = "DELETE FROM 图书借阅 WHERE 是否已还 = 1 AND (实际还书日期 BETWEEN " & Str2SQL(D_From) & " AND " & Str2SQL(D_To) & ")"
End If
'全部借书记录
If Chk_Brw_All.Value = 1 Then
n = n + 2
ReDim Preserve strSQL(-1 To n)
strSQL(n - 1) = "DELETE FROM 图书损坏"
strSQL(n) = "DELETE FROM 图书借阅"
End If
'所有图书损坏记录
If Chk_Book_Damag.Value = 1 Then
n = n + 1
ReDim Preserve strSQL(-1 To n)
strSQL(n) = "DELETE FROM 图书损坏"
End If
End If
If HavePower("修改库存权限") = True Then
'无库存的图书档案
If Chk_Book_NoStore.Value = 1 Then
n = n + 1
ReDim Preserve strSQL(-1 To n)
strSQL(n) = "DELETE FROM 图书档案 WHERE ISBN IN (SELECT 图书档案.ISBN FROM 图书档案, 图书库存 WHERE 图书档案.ISBN *= 图书库存.ISBN GROUP BY 图书档案.ISBN HAVING COUNT(图书库存.ISBN) = 0)"
End If
End If
If HavePower("修改读者权限") = True Then
'所有读者充值记录
If Chk_Reader_Dep.Value = 1 Then
n = n + 1
ReDim Preserve strSQL(-1 To n)
strSQL(n) = "DELETE FROM 充值记录"
End If
'状态为停用的读者
If Chk_Reader_Standby.Value = 1 Then
n = n + 4
ReDim Preserve strSQL(-1 To n)
strSQL(n - 3) = "DELETE FROM 图书损坏 WHERE 图书借阅编号 IN (SELECT 图书借阅编号 FROM 图书借阅 WHERE 读者编号 IN (SELECT 读者编号 FROM 读者档案 WHERE 状态 = '停用'))"
strSQL(n - 2) = "DELETE FROM 图书借阅 WHERE 读者编号 IN (SELECT 读者编号 FROM 读者档案 WHERE 状态 = '停用')"
strSQL(n - 1) = "DELETE FROM 充值记录 WHERE 读者编号 IN (SELECT 读者编号 FROM 读者档案 WHERE 状态 = '停用')"
strSQL(n) = "DELETE FROM 读者档案 WHERE 状态 = '停用'"
End If
End If
If n = -1 Then MsgFrm "请选择需要清理的项目!", "!", "提示": Exit Sub
For i = 0 To n
If ExecSQL(strSQL(i)) = False Then
m = m + 1
ReDim Preserve strERR(-1 To m)
strERR(m) = strSQL(i)
End If
Next i
If m = -1 Then
MsgFrm "所选项目清理成功!", "!", "提示"
Else
Dim Err_Msg As String
Err_Msg = "清理操作未全部完成,以下SQL语句操作失败:" & vbNewLine
For i = 0 To m
Err_Msg = Err_Msg & " " & strERR(m) & vbNewLine
Next i
MsgFrm Err_Msg, "x", "提示"
End If
End Sub
Private Sub Cmd_Close_Click()
Unload Me
End Sub
Private Sub Cmd_TBarClose_Click()
Call Cmd_Close_Click
End Sub
Private Sub Form_Load()
Lbl_TBarText.caption = Me.caption
Call LoadData
End Sub
Private Sub LoadData()
If HavePower("修改账户权限") = False Then
SetUnable Chk_Acc_Login
SetUnable Chk_Acc_Standby
End If
If HavePower("办理借书权限") = False Or HavePower("办理还书权限") = False Then
SetUnable Chk_Brw_Return
SetUnable Chk_Brw_All
SetUnable Chk_Book_Damag
End If
If HavePower("修改库存权限") = False Then
SetUnable Chk_Book_NoStore
End If
If HavePower("修改读者权限") = False Then
SetUnable Chk_Reader_Dep
SetUnable Chk_Reader_Standby
End If
End Sub
Private Sub SetUnable(Source As CheckBox)
Source.Enabled = False
End Sub
Private Function ExecSQL(strSQL As String) As Boolean
On Error GoTo ERRORZONE
cnMain.Execute strSQL
ExecSQL = True
Exit Function
ERRORZONE:
ExecSQL = False
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -