设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 662|回复: 3
打印 上一主题 下一主题

压缩数据库(转载)

[复制链接]
跳转到指定楼层
1#
发表于 2002-8-14 05:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
請問可以使用 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"
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-8-25 09:16:00 | 只看该作者
try this


SendKeys "%W1"   
SendKeys "%TDC"

it's ok
3#
 楼主| 发表于 2002-8-25 19:35:00 | 只看该作者
神仙来了,真是高啊。顺便请教SendKeys "%W1"是什么意思啊
[此贴子已经被gnoy于2002-8-25 11:35:26编辑过]

4#
发表于 2002-8-26 08:00:00 | 只看该作者
想想你是如何手動作compact
sendkey + 你要按的key罷了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-23 06:40 , Processed in 0.088150 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表