删库跑路小示例
今天给大家分享一个需要谨慎操作的示例。
我们在实际开发中,会用到大量的测试数据,又或者老了不想干了!想要清空数据库然后跑路了(这种违反职业道德的东西,我们不能干哦!),但涉及的表又很多,手工一张张的删除数据方法虽然也是一种好方法,但实在是累人,所以今天给大家做一个清空表的小示例,示例非常简单,花个半小时估计就能学会了。
第一步:建窗体
具体的控件属性如下表
| ||||
控件类型 | 控件名称 | 其它属性 | 其它说明 | |
属性名 | 属性值 | |||
列表框 | list_Table | 行来源类型 | 值列表 | 标签标题名:库中所有表 |
多重选择 | 简单 | |||
复选框 | chk_Sel | 默认值 | 0 | 标签标题名:全选/全不选 |
按钮 | btnDelete |
|
|
|
按钮 | btnCancel |
|
|
|
具体的设计如下图:
第二步:添加代码
代码的添加也要分几步,具体的操作如下:
- 添加窗体的加载事件
加载事件的作用是将数据库中所有表在列表框中显示
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
- 添加复选框更新后事件
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
- 添加删除按钮的单击事件
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
- 取消按钮的单击事件
Private Sub btnCancel_Click()
On Error Resume Next
DoCmd.Close acForm, Me.Name
End Sub
第三步:运行
用到的几个知识点:
- 列表框的使用
- 循环读取所有表
- 删除表中数据
到这里清空表中数据的示例就结果了,大家赶紧去试一下吧。大家也可以自行扩展一下,比如删除数据库中的表,连表都删除了,还是赶紧跑吧!
皮一下就是很开心!
从事access开发多年,喜欢access做一些小东西,分享一些小经验
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义