删库跑路小示例

今天给大家分享一个需要谨慎操作的示例。

我们在实际开发中,会用到大量的测试数据,又或者老了不想干了!想要清空数据库然后跑路了(这种违反职业道德的东西,我们不能干哦!),但涉及的表又很多,手工一张张的删除数据方法虽然也是一种好方法,但实在是累人,所以今天给大家做一个清空表的小示例,示例非常简单,花个半小时估计就能学会了。

第一步:建窗体

具体的控件属性如下表

 

 

 

控件类型

控件名称

其它属性

其它说明

属性名

属性值

列表框

list_Table

行来源类型

值列表

标签标题名:库中所有表

多重选择

简单

复选框

chk_Sel

默认值

0

标签标题名:全选/全不选

按钮

btnDelete

 

 

 

按钮

btnCancel

 

 

 

具体的设计如下图:

 

第二步:添加代码

代码的添加也要分几步,具体的操作如下:

  1. 添加窗体的加载事件

加载事件的作用是将数据库中所有表在列表框中显示

Private Sub Form_Load()

    On Error GoTo ErrorHandler



    Dim dbs As Object    ' Database

    Dim tdf As Object    ' TableDef

    Dim strName As String

    Me.list_Table.RowSource = ""

   ' Me.list_Table.RowSourceType = "Value List" 列表框行来源类型设置成“值列表”,可以手工设置

   ' Me.list_Table.MultiSelect = 1 设置成多重选择改成“简单”,可以手工设置

    Set dbs = CurrentDb

    For Each tdf In dbs.TableDefs

        strName = tdf.Name

        If Not strName Like "*Sys*" And Not strName Like "TMP_*" And Not strName Like "~TMP*" Then '排除系统表与临时表

            Me.list_Table.AddItem strName  '往列表中添加表名,前提先将列表框行来源类型设置成“值列表”

        End If

    Next

   

ExitHere:

    Set dbs = Nothing

    Exit Sub

ErrorHandler:

    MsgBox Err.Description, vbCritical

    Resume ExitHere

End Sub

 

  1. 添加复选框更新后事件
Private Sub chk_Sel_AfterUpdate()

On Error Resume Next

    Dim i As Long

    If Me.chk_Sel Then

        For i = 0 To Me.list_Table.ListCount - 1

            Me.list_Table.Selected(i) = True

        Next i

    Else

        For i = 0 To Me.list_Table.ListCount - 1

            Me.list_Table.Selected(i) = False

        Next i

    End If

    Me.list_Table.Requery

End Sub

 

  1. 添加删除按钮的单击事件
Private Sub btnDelete_Click()

    On Error GoTo ErrorHandler

    Dim varItem As Variant

    Dim strSQL As String

    Dim strMsg As String

strMsg = "确定要清空已选中的表?" & vbCrLf & "提示操作:谨慎操作!!!"

    If MsgBox(strMsg, vbExclamation + vbOKCancel + vbDefaultButton2, "提示操作") = vbCancel Then '提示判断是否删除

        Exit Sub

    End If

    For Each varItem In Me.list_Table.ItemsSelected

        strSQL = "Delete from " & Me.list_Table.Column(0, varItem) '删除语句

        CurrentDb.Execute strSQL '执行删除数据

    Next

    MsgBox "删除成功,赶紧跑路吧!!!", vbInformation

ExitHere:

    Exit Sub

ErrorHandler:

    MsgBox Err.Description, vbCritical

    Resume ExitHere

End Sub

 

  1. 取消按钮的单击事件
Private Sub btnCancel_Click()

On Error Resume Next

    DoCmd.Close acForm, Me.Name

End Sub


 

第三步:运行

 

 

用到的几个知识点:

  1. 列表框的使用
  2. 循环读取所有表
  3. 删除表中数据

 

到这里清空表中数据的示例就结果了,大家赶紧去试一下吧。大家也可以自行扩展一下,比如删除数据库中的表,连表都删除了,还是赶紧跑吧!

 

皮一下就是很开心!

 

 

发布了10 篇原创文章 · 获赞 8 · 访问量 3826

猜你喜欢

转载自blog.csdn.net/weiisiceman/article/details/90381105