从Excel 2010连接到Access时出错

时间:2012-08-18 16:53:36

标签: ms-access windows-7 excel-vba vba excel

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

在打开与数据库的连接后,似乎从ADODB连接字符串中删除了密码值。下面代码的第一个debug.print语句返回包含密码和用户名的字符串,但第二个debug.print语句仅显示User 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

2 个答案:

答案 0 :(得分:0)

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

This website列出了一些可以实施的解决方法。

答案 1 :(得分:0)

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