4

Excel VBA を使用して、パスワードで保護された AccessDB への接続を開こうとしています。

次の接続文字列を使用しています

conn.Provider = "Microsoft.ACE.OLEDB.12.0"
conn.ConnectionString = "Data Source=dbPath; Jet OLEDB:Database Password=pwd;"

ここで、dbPath は accdb/mdb ファイルのパスで、pwd は dbfile へのパスワードです。パスワードは絶対に正しいのですが、「有効なパスワードではありません」というエラーが常に表示されます。誰かがこれで私を案内してもらえますか?? -シュリ。

追加情報: Office 2010 を使用しており、このデータベースを mdb(2003) ファイルとして保存しました (このファイルを accdb extn で保存しようとしました)。データベースにパスワードを設定しようとすると、「ブロック暗号による暗号化は行レベルのロックと互換性がありません。行レベルのロックは無視されます」というメッセージが表示されます。VBAのエラーメッセージと関係がありますか?

4

3 に答える 3

10

Access 2010では、データベースパスワードの暗号化方法が変更され、ADOプロバイダーの「JetOLEDB:DatabasePassword」キーワードは新しい方法では機能しないようです。ここでは、パスワードを削除し、[アクセス]->[ファイル]->[オプション]->[クライアント設定]->[詳細設定]に移動し、[レガシー暗号化を使用する]をオンにして、パスワードを再作成する必要がありました。

ACEプロバイダー用の新しいOLEDB接続文字列キーワードがあるかどうか、またはこの問題がADO.NETの使用時にも発生するかどうかはわかりません。

于 2012-10-21T14:17:59.060 に答える