- - PR -
VB.NETからデータベースパスワード付きAccessへの接続
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-11-19 23:42
毎々お世話になります。
VB.NETからデータベースパスワード付きAccessへの接続ができず困っております。皆様のお力をお貸しください。 現在、 Windows XP Access 2003 Visual Studio 2005 Professional Edition で開発を行っています。 データベースパスワードが設定されているmdbファイルに対して OleDbConnectionで接続すると、Open実行時にOleDbExceptionがthrowされ、 「パスワードが正しくありません。」のメッセージが検出されます。 他サイトで類似案件を見かけましたが、根本的な解決には至らず、 mdbファイルを再作成することによって解決したことになったようです。 (参考元:http://vsug.jp/tabid/63/forumid/72/postid/7635/view/topic/Default.aspx) しかし、当方ではmdbファイルを再作成しても上記エラーを回避できません。 また、mdbを直接開く場合は、データベースパスワードを入力することで問題なくテーブルを使用できます。 指定しているConnectionStringは以下の通りです。 Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mdbファイルパス; Persist Security Info=False; Jet OLEDB:Database Password=パスワード; なお、サーバエクスプローラを使用した場合でも、接続できません。同様のエラーが発生します。 解決のヒントを是非ご教授ください。どうかよろしくおねがいします。 | ||||||||||||
|
投稿日時: 2007-11-20 01:34
とりあえず、実際のミニマム コードを記述してください。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-11-20 22:55
じゃんぬねっと様お忙しい中レスありがとうございます。
以下にコードを示します。 Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click Dim DBConn As OleDbConnection Dim DBReader As OleDbDataReaderTry Try System.Windows.Forms.Cursor.Current = _ System.Windows.Forms.Cursors.WaitCursor Dim ConnString As New StringBuilder ConnString.Append("Provider=Microsoft.Jet.OLEDB.4.0;") ConnString.Append("Data Source=D:\MyDB\DB.mdb;") ConnString.Append("Persist Security Info=False;") ' データベースパスワードがDBPassのmdbへアクセス ConnString.Append("Jet OLEDB:Database Password=DBPass;") DBConn = New OleDbConnection(ConnString.ToString) DBConn.Open <--- ここで例外発生 ' データ取得処理 DBReader = … ' close DBReader.Close DBConn.Close Catch ex As Exception MsgBox(ex.Message) Finally System.Windows.Forms.Cursor.Current = _ System.Windows.Forms.Cursors.Default End Try End Sub 以上よろしくお願いします。 | ||||||||||||
|
投稿日時: 2007-11-20 22:55
じゃんぬねっと様お忙しい中レスありがとうございます。
以下にコードを示します。 Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click Dim DBConn As OleDbConnection Dim DBReader As OleDbDataReaderTry Try System.Windows.Forms.Cursor.Current = _ System.Windows.Forms.Cursors.WaitCursor Dim ConnString As New StringBuilder ConnString.Append("Provider=Microsoft.Jet.OLEDB.4.0;") ConnString.Append("Data Source=D:\\MyDB\\DB.mdb;") ConnString.Append("Persist Security Info=False;") ' データベースパスワードがDBPassのmdbへアクセス ConnString.Append("Jet OLEDB:Database Password=DBPass;") DBConn = New OleDbConnection(ConnString.ToString) DBConn.Open <--- ここで例外発生 ' データ取得処理 DBReader = … ' close DBReader.Close DBConn.Close Catch ex As Exception MsgBox(ex.Message) Finally System.Windows.Forms.Cursor.Current = _ System.Windows.Forms.Cursors.Default End Try End Sub 以上よろしくお願いします。 | ||||||||||||
|
投稿日時: 2007-11-21 10:16
問題なさそうに見えますね。
User ID = Admin; 問題かな...? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-11-21 11:24
パスワードを一旦外してみるとか、違うものに変えてみるとか・・・
_________________ R・田中一郎 - R.Tanaka.Ichiro’s Blog | ||||||||||||
|
投稿日時: 2007-11-21 23:35
じゃんぬねっと様、R・田中一郎様レスありがとうございます。
>じゃんぬねっと様 User ID = Admin;Password="";の指定も試しては見ましたが、変化は見られませんでした。 >R・田中一郎様 パスワードを解除した状態の場合は問題なく接続できます。 しかし異なるパスワードを与えてみたり、mdbそのものを作り直してみても特段変化はありませんでした。 最初の投稿でも記述したように、サーバエクスプローラを使用した場合でも、接続できません。このあたりも何か関連しているのでは…という気がするのですが… 別マシンに同じ環境を作ってみたりもしましたが、まったく同じ現象です。 ODBCでOracleなどには問題なく接続できているのに、Accessに単純な接続ができないなんて… 機能上、データベースパスワードのないmdbは採用できません。 テーブルオブジェクトの非表示などで、テーブルが安易に触れないようにはしていますが 設定をいじればたやすく表示できるので適切な方法とは言えません。 引き続き皆様のレスをお待ちしております。どうかよろしくお願いします。 | ||||||||||||
|
投稿日時: 2007-11-22 09:40
ん? 上記はパスワードが空ですよね?
という部分との関連性がよくわかりませんでした。
逆に根本的な原因が同じで、双方とも同じように接続できないという考え方の方が自然ですよね。 サーバーエクスプローラーを使った場合の動作との動作は一致しているんですか? つまり、パスワードを外すと接続できるとかできないとか、別のファイルならどうとか・・・ まずは、この辺りの問題の切り分けをした方が良さそうです。 _________________ R・田中一郎 - R.Tanaka.Ichiro’s Blog |
1