這是我找到的方法,但是需安裝 ACCESS 2007
請教各位大大是否有其他方式?(不需安裝 ACCESS 2007)
謝謝
'設定引用項目 Microsoft Access X.X Object Library
Dim objAcc As New Access.Application
Call objAcc.CompactRepair("D:\原資料庫.accdb, "D:\TEMP.LTC", False)
Kill "D:\原資料庫.accdb" '刪除舊資料庫
Name "D:\TEMP.LTC" As "D:\原資料庫.accdb" '變更資料庫名稱及位置
可以透過 Microsoft Jet Replication Objects (JRO) 的 JetEngine.CompactDatabase 方法。
請記得備份原始的 Accdb 檔案。
<pre class="c" name="code">
Public Sub CompactAndEncrypt()
Dim je As New JRO.JetEngine
' Make sure that a file doesn't exist with the name of
' the compacted database.
If Dir("C:\Program Files\Microsoft Office\" & _
"Office\Samples\Northwind2.mdb") <> "" Then Kill _
"C:\Program Files\Microsoft Office\Office\Samples\Northwind2.mdb"
' Compacts and encrypts version Northwind database.
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"
End Sub
參考:
http://msdn.microsoft.com/en-us/library/office/bb213241(v=office.12).aspx
http://msdn.microsoft.com/en-us/library/office/bb237197(v=office.12).aspx
wiselou大大您好
連結好像有問題
麻煩您檢查一下
謝謝
ltc09提到:
連結好像有問題
白帖連結好像有問題,不用改了沒關係...
http://msdn.microsoft.com/en-us/library/office/bb237197(v=office.12).aspx
節錄網頁最後一段話
Compacting Access 2007 DataBase file format. (.accdb)
I think this does not work for Access 2007, since in the example, the database file extension is "mdb". For compacting Access 2007 database file format, you should use the "CompactDatabase" method of the "Microsoft.Office.Interop.Access.Dao.DBEngine" object.
GOOGLE 翻譯
壓縮Access 2007數據庫文件格式。 (ACCDB)
我認為這並不適用於Access 2007中,因為在這個例子中,數據庫文件的擴展名是“MDB”。壓縮Access 2007數據庫文件格式,你應該使用“CompactDatabase”的方法,“Microsoft.Office.Interop.Access.Dao.DBEngine”對象。