用ADO访问加密的Access数据库

如果你希望打开一个有口令保护的Access数据库,你可以用以下三种语法的任一种:
Dim MyConn As New ADODB.Connection
MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"
MyConn.Properties("Data Source") = "C:\...\JetPassword.MDB"
MyConn.Properties("Jet OLEDB:Database Password") = "MyPwd"
MyConn.Open
-或-
Dim MyConn As New ADODB.Connection
Dim strConn As String
strConn = "Data Source=C:\...\JetPassword.MDB;" & _
"Jet OLEDB:Database Password=MyPwd"
MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"
MyConn.Open ConnectionString:=strConn
-或-
Dim MyConn As New ADODB.Connection
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.3.51;" & _
"Data Source=C:\...\JetPassword.MDB;" & _
"Jet OLEDB:Database Password=MyPwd"
MyConn.Open ConnectionString:=strConn
如果你打开一个数据库使用了Jet安全保护,你需要使用以下方式:
Dim MyConn As New ADODB.Connection
MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"
MyConn.Properties("Data Source") = "C:\...\JetSecurity.MDB"
MyConn.Properties("Jet OLEDB:System database") = "C:\...\System.MDW"

MyConn.Open UserID:="Admin", Password:="MyPwd"
-或-
Dim MyConn As New ADODB.Connection
Dim strConn As String
strConn = "Data Source=C:\...\JetSecurity.MDB;" & _
"Jet OLEDB:System database=C:\...\System.MDW"
MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"
MyConn.Open ConnectionString:=strConn, _
UserID:="Admin", Password:="MyPwd"
-或-
Dim MyConn As New ADODB.Connection
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.3.51;"
"Data Source=C:\...\JetSecurity.MDB;" & _
"Jet OLEDB:System database=C:\...\System.MDW"
MyConn.Open ConnectionString:=strConn, _
UserID:="Admin", Password:="MyPwd"
注意:Jet 3.51 OLEDB provider 被设计用来打开Access97数据库,如果你要打开Access 2000
请使用Jet 4.0 OLEDB provider,当然Jet 3.51 OLEDB provider也能打开Access 97。
如果你希望使用Jet 4.0只要将Microsoft.Jet.OLEDB.3.51换成Microsoft.Jet.OLEDB.4.0
我用VB编写程序发布到某些计算机上出现运行时错误: ""-2147217872 (80040e30) :The given type
name was unrecognized"。但是在某些机器上却运行正常。我的程序调用了SQL
Server7.0的存储过程。在某些运行正常的机器上已安装了Access 2000, 而出错的机器上安装的是Access
97。请问这个错误会

不会是与Access有关?
SQL Server 7.0 有SQL Server 6.5不具备的新数据类型:nChar, nVarChar,
它们是Unicode型字符。如果要在VB程序中调用以这些数据类型为参数的存储过程,就需要将旧版本的MDAC升级MDAC2.1或MDAC2.5。新版的MDAC可以在http://https://www.360docs.net/doc/6d10123086.html,/data中找到并下载。因为安装Access
2000时会同时安装MDAC2.1,因此你的程序能够在安装Access 2000的机器下正常运行。
我用VB编写程序发布到某些计算机上,在连接Access数据库时出现运行时错误"3706: ADO could not find the
specified provider",这是什么问题?
MDAC 2.0会安装Jet OLE DB provider 3.51版本。MDAC 2.1会安装Jet OLE DB provider
4.0版本,但如果机器上已经安装了3.51版本,MDAC
2.1不会删除也不会覆盖旧的3.51版本,这就使节3.51和4.0同时存在与你的开发机上。当连接Access数据库时,Jet OLE
DB provider需要检查provider的版本号。而你在制作安装包时仅包含了MDAC 2.1,目标机上自然不可能有Jet OLE
DB provider 3.51版本被安装,这就是错误发生的原因。此时你需要修改你的程序,使其使用4.0的Jet OLE DB
provider。

相关文档
最新文档