VB使用ADOX压缩修复ACCESS数据库文件的类模块
2012-02-24 09:11
459 查看
Option Explicit '//*********************************************************************** '//类模块名称:ClsCompactDatabase '//版权所有:米特仪表有限公司 版权所有 '//开发作者:段利庆(Lee) '// QQ:14035344 '// http://www.duanliqing.kudo.cn '// http://leek.woku.com '//创建日期:2010-07-28 '//功能描述:处理数据库文件备份 '// 备注:引用 Microsoft Jet and Replication Objects X.X library,其中 ( X.X 大于或等于 2.1 )。 '//*********************************************************************** '*系统临时文件夹路径 Private Declare Function GetTempPath Lib "kernel32" Alias _ "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Private Sub ErrMessage(ByVal Procedure As String, _ Optional ByVal AffErrMsg As String) '' ========================================================== ' 开发人员:段利庆 ' 编写时间:2009-02-01 ' 过程名称:ErrMessage ' 参数说明:Procedure 过程或函数的名称 ' 可选参数:AffErrMsg 附加说明的错误消息提示文本 ' ' 功能说明:类模块内使用的错误消息,功能便于跟踪错误的来源 '' ========================================================== Dim strMsg As String strMsg = strMsg & strMsg strMsg = strMsg & " ErrNumber: " & Err.Number & vbCrLf strMsg = strMsg & "ErrDescription: " & Err.Description & vbCrLf If Len(AffErrMsg) <> 0 Then strMsg = strMsg & " AffErrMsg: " & AffErrMsg & vbCrLf End If '*空一行 strMsg = strMsg & " " & vbCrLf '*类模块的名称 strMsg = strMsg & " Module: " & "ClsBin" & vbCrLf strMsg = strMsg & " Procedure: " & Procedure & vbCrLf '*空一行 strMsg = strMsg & " " & vbCrLf strMsg = strMsg & "Please notify My Software's tech support " & vbCrLf strMsg = strMsg & "at QQ:14035344 about this issue." & vbCrLf strMsg = strMsg & "Please E-mail to lee_software@sohu.com.cn " & vbCrLf strMsg = strMsg & "Please provide the support technician with " & vbCrLf strMsg = strMsg & "information shown in this dialog " & vbCrLf strMsg = strMsg & "box as well as an explanation of what you were" & vbCrLf strMsg = strMsg & "doing when this error occurred." & vbCrLf MsgBox strMsg, vbCritical, "ClsCompactDatabase" Err.Clear End Sub '*获得系统临时文件夹路径 '*仅给压缩数据库用 Private Function subGetTemporaryPath() Const MAX_PATH = 260 Dim strFolder As String Dim lngResult As Long strFolder = String(MAX_PATH, 0) lngResult = GetTempPath(MAX_PATH, strFolder) If lngResult <> 0 Then subGetTemporaryPath = Left(strFolder, InStr(strFolder, Chr(0)) - 1) Else subGetTemporaryPath = "" End If End Function Public Sub subCompactJetDatabase(Location As String, Optional BackupOriginal As Boolean = True) '' ========================================================== ' 开发人员:段利庆 ' 编写时间:10-07-28 ' 过程名称:subCompactJetDatabase ' 参数说明:Location 数据库文件所在目录 ' BackupOriginal 是否需要备份数据库 ' ' 功能说明:压缩数据库,去除数据库操作产生的冗于 ' 注意:必须应用DAO的<DBEngine>对象 '' ========================================================== On Error GoTo CompactErr Dim strBackupFile As String Dim strTempFile As String '检查数据库文件是否存在 If Len(Dir(Location)) Then ' 如果需要备份就执行备份 If BackupOriginal = True Then strBackupFile = subGetTemporaryPath & "backup.mdb" If Len(Dir(strBackupFile)) Then Kill strBackupFile FileCopy Location, strBackupFile End If ' 创建临时文件名 strTempFile = subGetTemporaryPath & "temp.mdb" If Len(Dir(strTempFile)) Then Kill strTempFile Dim jro As jro.JetEngine Set jro = New jro.JetEngine '來源文件 jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Location & ";Jet OLEDB:Database Password=duan", _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strTempFile '压缩后生成tempDB.mdb ' 删除原来的数据库文件 Kill Location ' 拷贝刚刚压缩过临时数据库文件至原来位置 FileCopy strTempFile, Location ' 删除临时文件 Kill strTempFile Else End If MsgBox "数据库压缩完毕!", vbOKOnly + vbExclamation Exit Sub CompactErr: Dim sAffErrMsg As String sAffErrMsg = "数据库打开时不能压缩!请退出程序重试!" Call ErrMessage("subCompactJetDatabase", sAffErrMsg) End Sub
程序设计:段利庆(Lee) QQ;14035344
相关文章推荐
- VB使用ADOX压缩修复ACCESS数据库文件的类模块
- ACCESS数据库文件的压缩和修复方法[图文]
- Python下使用tarfile模块来实现文件归档压缩与解压
- 如何使用 ADO 來压缩或修复 MS Access 文件?(jro的使用)
- Python下使用tarfile模块来实现文件归档压缩与解压
- Python中使用gzip模块压缩文件的简单教程
- Access 中如何使用 ADO 來压缩或修复 MS Access 文件?
- vb.net 使用Access数据库 保存和读取图片文件
- Python下使用tarfile模块来实现文件归档压缩与解压
- VB Ring3下解锁文件的模块(修正及一些新的想法)
- 使用Nodejs中的process模块--child_process.exec 来删除本地文件
- 使用Python合并压缩文件(jar)
- JAVA实现压缩文件的方法(使用java.util.zip.*)
- iOS 使用ZipArchive压缩文件
- vb使用open方法读写文件
- 如何操纵文件共享使用 ADSI (VB 示例)
- 如何使用 require.js ,实现js文件的异步加载,避免网页失去响应,管理模块之间的依赖性,便于代码的编写和维护。
- 使用Ant命令压缩JavaScript文件
- 使用计划任务将文件夹备份为压缩文件(使用WinRAR)
- 使用GZIPOutputStream和GZIPInputStream进行压缩解压文件