DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DB_SEC_E_AUTH_FAILEDエラーについて

分類:[.NET]

いつもプログラミングの参考にさせていただいてます。

現在ADO.NETを使ったAccessへのmdbファイル接続を行っているのですが、
接続文字列を直接コードでプロパティに与えると、DBのOpen時に
「DB_SEC_E_AUTH_FAILEDがありません」というメッセージが表示されて
しまいます。この現象を見られたかた、または回避方法をご存知の方が
いらっしゃいましたら教えて頂けないでしょうか。

以下に、コードの例を書きますが、mdbファイルのパスはStringに
代入した後に、ConnectionString文字列に含めています。

※1接続文字列はウィザードで生成されたものをコピーして使用しています。
※2接続文字列は見やすいように「;」毎に改行しています。


開発環境
OS:WindowsXP Professional SP1
VS:VisualStudio.NET 2002
言語:VisualBasic
.NET Freamework:1.1
Access:Access2002

コード例:
Dim sDbPath AS String = "C:\DB.mdb"
Dim cn AS New Oledb.OleDbConnection

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Password="";
User ID=Admin;
Data Source=" & sDbPath & ";
Mode=Share Deny None;Extended Properties="";
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Jet OLEDB:Database Password="";
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=1;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="";
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False"
cn.Open

以上ですが、よろしくお願いいたします。
■No2120に返信(voxさんの記事)
自己レスです。
DB_SEC_E_AUTH_FAILEDについてですが、コードで直接
接続文字列を書く場合、「設定値無し」の部分に
「""」では無くて、「""""」のように、エスケープ
シーケンスを使用なければなかったようです。
お気づきの方もいらっしゃったかと思いますが、
この点については盲目でした(汗)

先に書いたコードを修正するとこんな感じです。

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Password="""";←ここと
User ID=Admin;
Data Source=" & sDbPath & ";
Mode=Share Deny None;Extended Properties="""";←ここと
Jet OLEDB:System database="""";←ここと
Jet OLEDB:Registry Path="""";←ここと
Jet OLEDB:Database Password="""";←ここと
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=1;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="""";←ここにエスケープシーケンス入れる。
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False"
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板