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, 陳格 保留所有權利