0

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
4

2 に答える 2

0

Win 7の64ビットバージョンをMicrosoft.Jet.OLEDB.4.0使用している場合、32ビットシステム専用であるため、プロバイダーは機能しません。

このWebサイトには、実装できるいくつかの回避策がリストされています。

于 2012-08-19T16:03:09.763 に答える
0

「 Microsoft.ACE.OLEDB.12.0」プロバイダで試してみてください。

于 2013-10-07T06:18:09.117 に答える