0

我在 Excel 2000 中编写了以下 VBA 代码,以创建与 WindowsXP 中具有工作组安全性的 Access 2000 的连接。一切正常,直到我们迁移到 Windows7 数据库仍在 Access2000 中。

打开与数据库的连接后,似乎密码值已从 ADODB 连接字符串中消除。下面代码的第一个 debug.print 语句返回一个包含密码和用户名的字符串,但第二个 debug.print 语句只显示用户 ID 参数的值。结果,当我尝试创建记录集时,我收到一条错误消息,指出我没有权限访问数据。

按照与 Windows XP 中的 Excel 2000 完全相同的过程,ADODB 连接字符串没有消除密码值,我能够打开记录集。

有什么建议么?

Public Function sDbConnection() As String
Dim sString  As String
Dim sConnection As String
Dim conn As ADODB.Connection

Set conn = New ADODB.Connection
conn.Provider = "Microsoft.Jet.OLEDB.4.0;"

' Provide path to the system Db
conn.Properties("Jet OLEDB:System database") = "S:\UTL\RscMgmt\SECURE.MDW"

' Username and password to the secured access database
conn.Properties("Password") = "MyPassword"
conn.Properties("User Id") = "MyUserID"

Debug.Print conn.ConnectionString

' Open a connection to the Access 2000 db and return the connection string
conn.Open "Data Source=" & "S:\UTL\RscMgmt\GasPortfolio 2000.mdb" & ";"
sConnection = conn.ConnectionString
Debug.Print sConnection
sDbConnection = sConnection
End Function
4

2 回答 2

0

尝试使用“ Microsoft.ACE.OLEDB.12.0 ”提供程序。

于 2013-10-07T06:18:09.117 回答
0

如果您使用的是 64 位版本的 Win 7,则该Microsoft.Jet.OLEDB.4.0提供程序将不起作用,因为它仅适用于 32 位系统。

该网站列出了一些您可以实施的解决方法。

于 2012-08-19T16:03:09.763 回答