发表评论(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"
主题: 如何删除整个 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"