Office中国论坛/Access中国论坛

标题: 压缩数据库(转载) [打印本页]

作者: gnoy    时间: 2002-8-14 05:34
标题: 压缩数据库(转载)
請問可以使用 ADO 來壓縮 mdb 資料庫嗎?若可以,該如何做呢?

--------------------------------------------------------------------------------

文件日期:2000/04/06


首先我必須說明的是 ADO 雖然是比較新的物件模組,但居於執行效能的考量,ADO 並沒有將 DAO 的所有功能都納進來,壓縮資料庫便是其中之一。

想要壓縮 mdb資料庫,還是得使用 DAO,其方法如下:

1. 引用「Microsoft DAO 3.51 Object Library」。

2. 假設要將 c:\vb6db\mdb\stock01.mdb壓縮成 c:\vb6db\mdb\stock01_save.mdb,則所撰寫的程式如下:

Screen.MousePointer = vbHourglass ' 滑鼠指標顯示成「沙漏」
DBEngine.CompactDatabase "c:\vb6db\mdb\stock01.mdb", "c:\vb6db\mdb\stock01_save.mdb"
Screen.MousePointer = vbDefault ' 滑鼠指標恢復原狀
執行以上程式時請注意兩件事情:

(1) c:\vb6db\mdb\stock01_save.mdb必須是不存在的檔案

(2) 沒有任何程式開啟c:\vb6db\mdb\stock01.mdb。

(以下資訊由郭榮勳先生提供,特此致謝!)

王老師在第八章的問題解答中說 ADO 無壓縮資料庫的功能,不過本人於網路上看過此一解答,茲摘錄如下:

現在 Microsoft 提供了解決方法,不過有版本上的限制!限制說明如下:

ActiveX Data Objects (ADO), version 2.1
Microsoft OLE DB Provider for Jet, version 4.0
這是 Microsoft 提出的 ADO 的延伸功能:Microsoft Jet OLE DB Provider and Replication Objects (JRO),這個功能在 JET OLE DB Provider version 4.0 (Msjetoledb40.dll) 及 JRO version 2.1 (Msjro.dll) 中第一次被提出!這些必要的 DLL 檔在您安裝了 MDAC 2.1 之後就有了,您可以在以下的網頁中下載 MDAC 的最新版本!(王國榮註:安裝 VB6 SP3 或 SQL Server 7.0,均會含有 MDAC 2.1 版)

在下載之前先到 VB6 中檢查一下,【專案】【設定引用項目】中的 Microsoft Jet and Replication Objects X.X library 如果已經是 2.1 以上的版本,您就可以不用下載了!

在您安裝了 MDAC 2.1 或以上的版本之後,您就可以使用 ADO 來壓縮或修復 Microsoft Access 資料庫,下面的步驟告訴您如何使用 CompactDatabase Method 來壓縮 Microsoft Access 資料庫:

1、開啟一個新專案,點選功能表中的【專案】【設定引用項目】。

2、加入 Microsoft Jet and Replication Objects X.X library,其中 ( X.X 大於或等於 2.1 )。

3、在適當的地方加入以下的程式碼,記得要修改 data source 的內容及目地資料庫的路徑:(王國榮註:以下的 test.mdb 及 test2.mdb 請分別改成您的來源資料庫及目的資料庫)

Dim jro As New jro.JetEngine

jro.CompactDatabase "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\vb6db\mdb\test.mdb", "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\vb6db\mdb\test2.mdb" ' & ";Jet OLEDB:Engine Type=4"

作者: wangling    时间: 2002-8-25 09:16
try this


SendKeys "%W1"   
SendKeys "%TDC"

it's ok
作者: gnoy    时间: 2002-8-25 19:35
神仙来了,真是高啊。顺便请教SendKeys "%W1"是什么意思啊
[此贴子已经被gnoy于2002-8-25 11:35:26编辑过]


作者: wangling    时间: 2002-8-26 08:00
想想你是如何手動作compact
sendkey + 你要按的key罷了




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3