Access数据库压缩和修复

 

Access数据库压缩/修复

 

Access数据库多次操作(插入、删除、导入)后,数据库文件会变的很大。为了解决这个问题,下面提供一个数据库压缩/修复的方案。

第一步:在项目中添加引用msjro.dll

第二步:导入名称空间:Imports JRO

第三步:插入压缩/修复函数

   

 1 None.gif   '  
 2 None.gif
 3 None.gif     '  压缩/修复数据库
 4 None.gif
 5 None.gif     '  FileName要压缩/修复数据库文件的路径
 6 None.gif
 7 None.gif     '  

 8 None.gif
 9 ExpandedBlockStart.gifContractedBlock.gif     Protected   Sub CompressDb() Sub CompressDb(ByVal FileName As String)
10InBlock.gif
11InBlock.gif        Dim StrConn1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName
12InBlock.gif
13InBlock.gif        Dim StrConn2 As String = StrConn1.ToLower().Replace(".mdb""_temp.mdb")
14InBlock.gif
15InBlock.gif 
16InBlock.gif
17InBlock.gif        Dim fileName1 As String = FileName.Substring(FileName.LastIndexOf("\\"+ 1)
18InBlock.gif
19InBlock.gif        Dim fileName2 As String = fileName1.ToLower().Replace(".mdb""_temp.mdb")
20InBlock.gif
21InBlock.gif 
22InBlock.gif
23InBlock.gif        Try
24InBlock.gif
25InBlock.gif            '先备份
26InBlock.gif
27InBlock.gif            File.Copy(fileName1, fileName1.ToLower().Replace(".mdb""_bak.mdb"), True)
28InBlock.gif
29InBlock.gif 
30InBlock.gif
31InBlock.gif            '开始压缩修复
32InBlock.gif
33InBlock.gif            Dim DatabaseEngin As JetEngine = New JetEngine()
34InBlock.gif
35InBlock.gif            DatabaseEngin.CompactDatabase(StrConn1, StrConn2)
36InBlock.gif
37InBlock.gif 
38InBlock.gif
39InBlock.gif            '删除原来的Data.mdb,并将Data_temp.mdb更名为Data.mdb
40InBlock.gif
41InBlock.gif            File.Copy(fileName2, fileName1, True)
42InBlock.gif
43InBlock.gif            If File.Exists(fileName2) Then
44InBlock.gif
45InBlock.gif                File.Delete(fileName2)
46InBlock.gif
47InBlock.gif            End If
48InBlock.gif
49InBlock.gif 
50InBlock.gif
51InBlock.gif            '删除备份
52InBlock.gif
53InBlock.gif            File.Delete(fileName1.ToLower().Replace(".mdb""_bak.mdb"))
54InBlock.gif
55InBlock.gif            MessageBox.Show("压缩/修复数据库成功!")
56InBlock.gif
57InBlock.gif        Catch
58InBlock.gif
59InBlock.gif            '恢复备份
60InBlock.gif
61InBlock.gif            File.Copy(fileName1.ToLower().Replace(".mdb""_bak.mdb"), fileName1, True)
62InBlock.gif
63InBlock.gif 
64InBlock.gif
65InBlock.gif            '删除备份文件
66InBlock.gif
67InBlock.gif            File.Delete(fileName1.ToLower().Replace(".mdb""_bak.mdb"))
68InBlock.gif
69InBlock.gif            MessageBox.Show("压缩/修复数据库失败!")
70InBlock.gif
71InBlock.gif        End Try
72InBlock.gif
73ExpandedBlockEnd.gif    End Sub

74 None.gif

第四步:调用方法:CompressDb(数据库文件绝对路径)

实例:CompressDb”c:\test\test.mdb”

Access数据库压缩和修复_第1张图片
实例(图一)
Access数据库压缩和修复_第2张图片
实例(图二)

点击下载

转载于:https://www.cnblogs.com/duanzt/archive/2007/05/30/765043.html

你可能感兴趣的:(Access数据库压缩和修复)