如何压缩 ACCESS 数据库?

Wonny 2005-11-17 11:44:42
如何在程序中压缩MDB数据库?
...全文
85 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
daisy8675 2005-11-18
  • 打赏
  • 举报
回复
给你一段sub做参考,压缩采用dao方法
Option Explicit

' 压缩 Access 数据库
Public Sub CompactJetDatabase(SourceFile As String, Optional Password As String, Optional BackupOriginal As Boolean = True)
On Error GoTo CompactErr

Dim strBackupFile As String
Dim strTempFile As String

' 判断来源文件是否存在
If Dir(SourceFile) <> "" Then
' 如果需要备份原文件
If BackupOriginal = True Then
strBackupFile = GetSourceFilePath(SourceFile) & "Backup.mdb"
If Dir(strBackupFile) <> "" Then
Kill strBackupFile
End If

FileCopy SourceFile, strBackupFile
End If

' 建立压缩文件名
strTempFile = GetSourceFilePath(SourceFile) & "Temp.mdb"
If Dir(strTempFile) <> "" Then
Kill strTempFile
End If

' 通过 DBEngine 压缩文件,注意,您必须引用 Microsoft DAO 3.xx Object Library
DBEngine.CompactDatabase SourceFile, strTempFile, , , ";Pwd=" & Password & ";"
' 删除旧文件
Kill SourceFile

' 重新命名新文件名
Name strTempFile As SourceFile
Else
MsgBox SourceFile & " 文件找不到!", vbExclamation
End If

CompactErr:
If Err.Number <> 0 Then
MsgBox "压缩数据库发生错误:" & vbCrLf & Err.Description & Err.Number, vbCritical, "错误"
End If

On Error GoTo 0
Exit Sub
End Sub


myhgyp 2005-11-18
  • 打赏
  • 举报
回复
'安装Microsoft ActiveX Data Objects 2.X library (X为1以上)
'引用Microsoft Jet and Replication Objects 2.X library
Dim jro As jro.JetEngine
Set jro = New jro.JetEngine
jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test\test.mdb", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test\new.mdb;"

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧