我在 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