⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frm_dbclear.frm

📁 图书馆信息管理系统
💻 FRM
📖 第 1 页 / 共 2 页
字号:
      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 + -