Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> ADO/DAO/ADO.NET  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1702425
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

如何用DAO压缩修复数据库

作者:cg1  摘自:access911.net  :cg1  更新日期:2003-7-7  浏览人次:

 

问题:

如何用DAO压缩修复数据库?

 

方法一:

请参考一下代码或者察看Access的帮助,敲入关键字"compact":

This example uses the CompactDatabase method to change the collating order of a database. You cannot use this code in a module belonging to Northwind.mdb.

Sub CompactDatabaseX()

    Dim dbsNorthwind As Database

    Set dbsNorthwind = OpenDatabase("Northwind.mdb")

    ' Show the properties of the original database.
    With dbsNorthwind
        Debug.Print .Name & ", version " & .Version
        Debug.Print "    CollatingOrder = " & .CollatingOrder
        .Close
    End With

    ' Make sure there isn't already a file with the 
    ' name of the compacted database.
    If Dir("NwindKorean.mdb") <> "" Then _
        Kill "NwindKorean.mdb"

' This statement creates a compact version of the
    ' Northwind database that uses a Korean language
    ' collating order.
    DBEngine.CompactDatabase "Northwind.mdb", _
        "NwindKorean.mdb", dbLangKorean

    Set dbsNorthwind = OpenDatabase("NwindKorean.mdb")

    ' Show the properties of the compacted database.
    With dbsNorthwind
        Debug.Print .Name & ", version " & .Version
        Debug.Print "    CollatingOrder = " & .CollatingOrder
        .Close
    End With

End Sub

This example uses the CompactDatabase method to change the version of a database. To run this code, you must have a Microsoft Jet version 1.1 database called Nwind11.mdb and you cannot use this code in a module belonging to Nwind11.mdb.

Sub CompactDatabaseX2()

    Dim dbsNorthwind As Database
    Dim prpLoop As Property

    Set dbsNorthwind = OpenDatabase("Nwind11.mdb")

    ' Show the properties of the original database.
    With dbsNorthwind
        Debug.Print .Name & ", version " & .Version
        Debug.Print "    CollatingOrder = " & .CollatingOrder
        .Close
    End With

    ' Make sure there isn't already a file with the 
    ' name of the compacted database.
    If Dir("Nwind20.mdb") <> "" Then _
        Kill "Nwind20.mdb"

' This statement creates a compact and encrypted 
    ' Microsoft Jet 2.0 version of a Microsoft Jet version
    ' 1.1 database.
    DBEngine.CompactDatabase "Nwind11.mdb", _
        "Nwind20.mdb", , dbEncrypt + dbVersion20

    Set dbsNorthwind = OpenDatabase("Nwind20.mdb")

    ' Show the properties of the compacted database.
    With dbsNorthwind
        Debug.Print .Name & ", version " & .Version
        For Each prpLoop In .Properties
            On Error Resume Next
            If prpLoop <> "" Then Debug.Print "    " & _

prpLoop.Name & " = " & prpLoop
            On Error GoTo 0
        Next prpLoop
        .Close
    End With

End Sub


 


方法二:


以下这段代码只供参考(未验证!)
Function ComDB()
On Error GoTo err_ComDB

Dim mydb, strPath As String
Dim wenjian
Set wenjian = CreateObject("scripting.filesystemobject")
Set mydb = CurrentDb
strPath = Left(mydb.Name, Len(mydb.Name) - 9)

    DBEngine.CompactDatabase strPath & "BusDown.mdb", strPath & "temp.mdb"
    Kill strPath & "BusDown.mdb"
    Name strPath & "temp.mdb" As strPath & "BusDown.mdb"
    Exit Function
err_ComDB:
    MsgBox Err.Description
ComDB = CVErr(65534)
End Function


 

方法三:

用CompactRepair 方法

压缩和修复指定的数据库 (.mdb) 或 Microsoft Access 项目 (.adp) 文件。返回 Boolean 型值;如果处理成功,返回 True。

expression.CompactRepair(SourceFile, DestinationFile, LogFile)

expression   必需。返回“Applies To”列表中的一个对象的表达式。

SourceFile  String 型,必需。代表要压缩和修复的数据库或项目文件的完整路径和文件名。

DestinationFile  String 型,必需。完整的路径和文件名,代表所返回文件的保存位置。

LogFile  Boolean 型,可选。如果在目标目录中创建一个日志文件用于记录在源文件中检测到的损坏,则为 True。只有在源文件中检测到损坏时,才创建日志文件。如果 LogFile 为 False 或省略,就不创建日志文件,即使在源文件中检测到损坏也是如此。

说明
源文件不可以是当前数据库,也不能被其他用户打开,因为调用该方法将会以独占方式打开源文件。

示例 :
下面的示例将压缩和修复一个数据库,如果在源文件中检测到损坏,则会创建一个日志文件,并根据恢复是否成功而返回一个 Boolean 值。为使该示例运行,必须将源文件和目标文件的路径和文件名传给它。 

Function RepairDatabase(strSource As String, _
        strDestination As String) As Boolean
        ' Input values: the paths and file names of
        ' the source and destination files.

    ' Trap for errors.
    On Error GoTo error_handler

    ' Compact and repair the database. Use the return value of
    ' the CompactRepair method to determine if the file was
    ' successfully compacted.
    RepairDatabase = _
        Application.CompactRepair( _
        Logfile:=True, _
        Sourcefile:=strSource, _
        Destinationfile:=strDestination)

    ' Reset the error trap and exit the function.
    On Error GoTo 0
    Exit Function

' Return False if an error occurs.
error_handler:
    RepairDatabase = False

End Function


 

本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。

access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

 

 
相关文章
     没有手动相关文章
     如何使用 ADO 來压缩或修复 MS Access 文件?(jro的使用)
     如何使用 ADO 來压缩或修复 Access2007 *.accdb 文件?(jro的使用)
     什么是UNICODE压缩,开启UNICODE压缩是否有必要?
     ACCESS为什么会提示自动修复自动备份?为什么会提示错误后自动关闭?如何保持 Jet 4.0 ...
     如何在数据库打开时压缩数据库?
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利