DBEngine.CompactDatabase("Northwind.mdb", "Nwind2.mdb",dbLangGeneral,dbVersion30);
将数据库Northwind.mdb 压缩,压缩后生成文件Nwind2.mdb.
在代码里压缩如果源文件名和目标文件名相同,文件压缩就会失败,但报告确是成功,可文件大小却没变。只有先压缩成另一个文件,再改名过来。
将数据库Northwind.mdb 压缩,压缩后生成文件Nwind2.mdb.
在代码里压缩如果源文件名和目标文件名相同,文件压缩就会失败,但报告确是成功,可文件大小却没变。只有先压缩成另一个文件,再改名过来。
很全的压缩方法
不知道里面的JRO是什么东东 :)'**********************************************************
'Passing values compactDB module
'Sour_path = Source path of existing database.
'Dest_Path = Target path
'
'Note -
'Add Microsoft Jet and Replication Objects X.X library,
'where (X.X is greater than or equal to 2.1).
'***********************************************************
'Jet OLEDB:Engine Type Jet x.x Format MDB Files
'********************* ************************
' 1 JET10
' 2 JET11
' 3 JET2X
' 4 JET3X
' 5 JET4X
'**********************************************************Option Explicit
Public Function compactDB(ByVal SOUR_path As String, _
ByVal DEST_path As String) As Boolean
On Error GoTo Err_compact
Private JRO As New JRO.JetEngine' Source and Destination connection path
Private DB_sour As String, DB_dest As String DoEvents
DB_sour = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& SOUR_path
DB_dest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& DEST_path & " ;Jet OLEDB:Engine Type=5"
JRO.CompactDatabase DB_sour, DB_dest
compactDB = True
Exit Function
Err_compact:
compactDB = False
MsgBox Err.Description, vbExclamation
End Function'*************************************************
' Usage Module level or form level.
'*************************************************' Dim source_path,Target_path as string' source_path=App.Path & "\Nwind.MDB"
' Target_path=App.Path & "\CompactNwind.MDB"' If not compactDB(source_path,Target_path) Then
' MsgBox "An error occurred while attempt to rename database " _
' & vbCrLf & vbCrLf & DBCP_Name, vbExclamation
' End If
语法
JetEngine.CompactDatabase(SourceConnection, DestConnection)
参数
SourceConnection 字符串值。指定与将要被压缩的源数据库的连接。如果由 SourceConnection 指定的数据库已经打开,将出现错误。
DestConnection 字符串值。指定与将由压缩创建的目标数据库的连接。如果由 DestConnection 指定的数据库已经存在或另一个同名文件已经存在,将出现错误。例:
Dim je As New JRO.JetEngine ' 确保不存在与该压缩数据库同名的文件。
If Dir("C:\Program Files\Microsoft Office\" & _
"Office\Samples\Northwind2.mdb") <> "" Then Kill & _
"C:\Program Files\Microsoft Office\Office\Samples\Northwind2.mdb" '压缩并加密版本 Northwind 数据库。
je.CompactDatabase _
"Provider=Microsoft.Jet.OLEDB.4.0; & _
"Data Source=C:\Program Files\Microsoft Office\" & _
"Office\Samples\Northwind.mdb", _
"Provider=Microsoft.Jet.OLEDB.4.0; & _
"Data Source=C:\Program Files\Microsoft Office\" & _
"Office\Samples\Northwind2.mdb;" _
"Jet OLEDB:Encrypt Database=True"