WindowsXPでワークグループセキュリティを使用してAccess2000への接続を作成するために、Excel2000で次のVBAコードを記述しました。Windows7に移行するまで、すべてが正常に機能していました。データベースはまだAccess2000にあります。
データベースへの接続を開いた後、パスワード値がADODB接続文字列から削除されているようです。以下のコードの最初のdebug.printステートメントは、パスワードとユーザー名を含む文字列を返しますが、2番目のdebug.printステートメントは、ユーザーIDパラメーターの値のみを示します。その結果、レコードセットを作成しようとすると、データに対する権限がないというエラーメッセージが表示されます。
WindowsXPのExcel2000とまったく同じ手順に従って、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