如何备份.压缩.修复vb6中ADO连接的MDB数据库

guojicai 2000-07-11 01:52:00
如何备份.压缩.修复vb6中ADO连接的MDB数据库.小的为一VB新手,请各路高手指教.
最好有示例和代码,谢谢!
传说要用到MDAC2.1,请问有在何处有DOWN.或请E-MAIL一个给我
小的E-MAIL为 szjicai@21cn.com 真的衷心感谢!
...全文
169 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcom 2000-07-11
  • 打赏
  • 举报
回复
设计一个Form,专门放Ado,要压缩时,先UNLOAD FORM ,然后进行,一定行!!
想知道更具体,请MAILTO: ZHS77719@SOHU.COM
bluewater 2000-07-11
  • 打赏
  • 举报
回复
以前使用 DAO 時,Microsoft 有提供 CompactDatabase Method 來压缩 Microsoft Access 文件,RepairDatabase Method 來修复损坏的 Microsoft Access 文件,。可是自从 ADO 出來之后,好像忘了提供相对的压缩及修复 Microsoft Access 文件的功能。

現在 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 的最新版本!

Universal Data Access Web Site

在下载之前先到 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 的內容及目地文件的路径:

Dim jro As jro.JetEngine
Set jro = New jro.JetEngine
jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb", _ '來源文件
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc2.mdb;Jet OLEDB:Engine Type=4" '目的文件

在 DAO 3.60 之后,RepairDatabase Method 已经无法使用了,以上的程序代码显示了 ADO CompactDatabase Method 的用法,而它也取代了 DAO 3.5 時的 RepairDatabase method!

要將导出文件的 SQL 命令先说明一下:

SELECT Table.Fields INTO [dbms type;DATABASE=path].[unqualified filename] FROM [Table or Tables]
SELECT Table.Fields INTO [MDB文件种类;DATABASE=MDB文件路径].[MDB文件文件名称] FROM [Table or Tables]

在 Form 上放置一个 CommandButton,加入 Microsoft DAO 3.51 Object Library,我们將使用 Biblio.mdb 的 authors Table,在 Command1_Click 中加入以下程序代码:

Dim db As Database
Set db = Workspaces(0).OpenDatabase(App.Path & "\biblio.mdb")
'db.execute "SELECT Table.Fields INTO [dbms type;DATABASE=path].[unqualified filename] FROM [Table or Tables]"

在以上程式中,db.execute 指令行之指令依MDB文件或文件的种类说明如下:

SQL 命令:SELECT * INTO [新MDB文件路径+档名][新表名称] FROM [authors]
'导出到同一MDB文件 ( 新 Table 为 authors1 )
'新 Table authors1 事先不可存在,否则会产生错误!
db.Execute "SELECT * INTO [authors1] FROM [authors]"
'导出到不同的MDB文件 ( 新MDB文件为 db1,新 Table 为 authors )
'新MDB文件 db1事先必須存在,否则会产生错误!
'但是其中新 Table authors 事先不可存在,否则会产生错误!
db.Execute "SELECT * INTO [C:\test\db1.mdb].[authors] FROM [authors]"

 

注一:各种可能的MDB文件种类 Connect 属性設定方式:

MDB文件种类 MDB文件宣告方式 MDB文件路径 (或加上档名)
Microsoft Jet Database [database]; drive:\path\filename.mdb
dBASE III dBASE III; drive:\path
dBASE IV dBASE IV; drive:\path
dBASE 5 dBASE 5.0; drive:\path
Paradox 3.x Paradox 3.x; drive:\path
Paradox 4.x Paradox 4.x; drive:\path
Paradox 5.x Paradox 5.x; drive:\path
Microsoft FoxPro 2.0 FoxPro 2.0; drive:\path
Microsoft FoxPro 2.5 FoxPro 2.5; drive:\path
Microsoft FoxPro 2.6 FoxPro 2.6; drive:\path
Microsoft Visual FoxPro 3.0 FoxPro 3.0; drive:\path
Microsoft Excel 3.0 Excel 3.0; drive:\path\filename.xls
Microsoft Excel 4.0 Excel 4.0; drive:\path\filename.xls
Microsoft Excel 5.0 or Microsoft Excel 95 Excel 5.0; drive:\path\filename.xls
Microsoft Excel 97 Excel 8.0; drive:\path\filename.xls
Lotus 1-2-3 WKS and WK1 Lotus WK1; drive:\path\filename.wk1
Lotus 1-2-3 WK3 Lotus WK3; drive:\path\filename.wk3
Lotus 1-2-3 WK4 Lotus WK4; drive:\path\filename.wk4
HTML Import HTML Import; drive:\path\filename
HTML Export HTML Export; drive:\path
Text Text; drive:\path
ODBC ODBC;
DATABASE=database;
UID=user;
PWD=password;
DSN= datasourcename;
[LOGINTIMEOUT=seconds;] None
Microsoft Exchange Exchange 4.0;
MAPILEVEL=folderpath; [TABLETYPE={ 0 | 1 }];[PROFILE=profile;]
[PWD=password;]
[DATABASE=database;] drive:\path\filename.mdb

guojicai 2000-07-11
  • 打赏
  • 举报
回复
bluewater:
请问(Universal Data Access Web Site)是什么网址在哪里?
wangjian 2000-07-11
  • 打赏
  • 举报
回复
我也想知道

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧