VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 如何刪除整个 Access 数据库內的数据
发表评论(0)作者:, 平台:, 阅读:17704, 日期:2000-04-02
---


主题: 如何删除整个 Access 资料库內的资料?

资料整理:影子 VB爱好者乐园 http://vbvb.126.com

來源:Msdn Tips 95

版本:VB6 / VB5 / VB4-32 / VB4-16


版本:VB6 / VB5 / VB4-32 / VB4-16





当一个资料库用了一陈子之后,您可能必須清除资料库中所有的资料,例如:我在开发一个新系统时,使用一个 Access 资料库,里面可能有二、三十个 Table,中间经过系统的测试,系统完成后,系统系统上线时,必須將所有的测试资料删除!


当然,要完成这件事情有很多种作法,例如:


1、在 Access 中逐一打开所有资料库的每一个 Table → 选取所有资料 → 删除。

2、在 Access 打开一个新资料库 → Import 原资料库的所有 Table (只有 Structure)。

3、写一段 VB 小程序去删除所有资料!


前二种作法是人工的作法,当 Table 越多时就越烦琐,不在我们讨论之列,至于第三种作法,我已经写了一个小小的模块,您只要导入资料库的名称、路径就可以自动帮您完成了! 程序代码如下:


Function DeleteAllRecords(ByVal dbpath As String)

Dim db As Database

Dim X As Integer

Dim TDF As TableDef


Set db = opendatabase(dbpath)

For X = 0 To db.TableDefs.Count - 1

Set TDF = db.TableDefs(X)

If (TDF.Attributes And dbSystemObject) = 0 Then '关闭系统的 Table

db.Execute "Delete * From [" & db.TableDefs(X).Name & "]"

End If

Next X

End Function

在 Access 资料库中,除了您自己建立的 Table 之外,还隐藏了一些系统的 Table,判断 dbSystemObject 就是为了要关闭这些系统的 Table。


程序中实际使用时,方法如下:


Private Sub Command1_Click()

DeleteAllRecords "c:\Test.mdb" 'c:\Test.mdb 要修改成您自己的资料库

End Sub

注:Access 资料库有个缺点,当您写资料进去时,文件会变大,但是删除资料库中的资料后,资料库文件並不会变小,所以,如果您使用以上的程序來清空 Access 资料库內的资料后,原來已经 10MB 的资料库,处理完之后文件大小仍然还是 10MB!


注:建议在清空资料库中之资料后,再使用 CompactDataBase 來处理,它会將您的资料库再还原成只有几十k 或几百k 的大小。CompactDataBase 之语法如下:


DBEngine.CompactDataBase "原资料库名称", "新资料库名称", , , ";pwd=密码"

例子:

DBEngine.CompactDatabase "C:\Db1.mdb", "C:\Db2.mdb", , , ";pwd=1"