• 締切済み

MDBファイルがオープンできません

C#2005で作ってます。 // データベース接続 Connection = ProviderFactory.CreateConnection(); Connection.ConnectionString = csBuilder.ConnectionString; Connection.Open(); Connection.Open()でエラーになります。 「'Microsoft.Jet.OLEDB.4.0' プロバイダーがローカル コンピューターに登録されていません」 Connection.ConnectionStringはProvider='\"Microsoft.Jet.OLEDB.4.0\"';Data Source='\"C:\test.mdb\"' と設定されてます。 上記エラーになる原因としてはx64環境だとJetエンジンが対応していないのでという 回答はいくつも見ましたが、開発・実行している環境は、ともにWindowsXP x86です。 しかもx86でコンパイルしても直りません。 何をどうすれば動くものなのでしょうか?

みんなの回答

  • NMZ1985
  • ベストアンサー率29% (41/137)
回答No.1

似たようなケースを見つけたので、ご参考ください

参考URL:
http://plaza.rakuten.co.jp/go7777/diary/201007160000/
naktak
質問者

補足

Provider指定のところは、わざわざシングルクォートやダブルクォートで括る必要がありませんでした。 あと、試験的にファイルパスを直打ちしていた関係で、\を1つしか打っておらず、エスケープされて しまっていました。 上記2つを解決したら正常に接続することが出来ました。 ありがとうございます。

関連するQ&A

  • VBのデータグリッドの表示が消えてしまいました。何故でしょうか?

      cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\生徒管理\生徒.mdb;" cn.Open mySQL= "SELECT * FROM 2学年 " _ & "WHERE (((所属)='" & frmPW.cmb生徒.Text & "'))" Set rs= New ADODB.Recordset rs.Open mySQL, cn, adOpenStatic Set DataGrid1.DataSource = rs と記述していて、それまでデータグリッドにデータが上手く表示されていたのに、 接続先のmdbファイルにパスワードを設定して、ConnectionStringの設定部分を   cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\生徒管理\生徒.mdb;" & _ "Jet OLEDB:Database Password=seito2;" に変更したところ、データグリッドにデータが表示されなくなりました。 データベースへの接続は上手くいっているようなのですが、何故データグリッドに データが表示されなくなったのでしょうか。 よろしくお願いします。

  • ADOのOPENで実行時エラー

    VB6.0でACCESS2000のデータに接続しようとしていますが、Openの箇所で「実行時エラー -2147024769(8007007f) 'Open'メソッドは失敗しました:'_Connection'オブジェクト」になり困っています。 参照設定:Microsoft ActiveX Data Objects 2.7 Library Dim oConn As ADODB.Connection Set oConn = New ADODB.Connection Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\OLDATA.MDB") ご回答よろしくお願いします。

  • ExcelVBAからAccessにアクセスする

    ExcelVBAからパスワード付きAccessにアクセスする ExcelVBAからADOでAccessに次のようにしてアクセスしています。 Dim Cnn As ADODB.Connection Set Cnn = New ADODB.Connection Cnn.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;\" _ & \"Data Source=\" & mdbのフルパス Cnn.Open パスワード付きのmdbにアクセスするのはどのようにしたらよろしいでしょうか?

  • Excel VBA について教えて下さい

    Excel VBA でAccess接続します 今までは Sub aaa() Set cn = CreateObject("ADODB.Connection") cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=aaa.mdb;" End Sub のように使っていましたが(単一プロシージャ) Set cn = CreateObject("ADODB.Connection") の部分をパブリックにして Sub bbb() cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=aaa.mdb;" End Sub 別のプロシージャからも、使えるためには パブリックにするための方法を教えて下さい

  • MDBパスワード設定済みDBへ接続

    MDBパスワード設定済み(排他オープンからの設定)のDBへ接続を試みているのですが、うまく 接続できません。 ご教授ください。 ASP vbscript <ソース> set objCon=ServerCreateObject("ADODB.Connection") cn1 = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "DataSource=" & Server.path("db.mdb") & ";Jet OLEDB:Database Password=password;" objCon.Open cn1 <エラー> Microsoft JET Database Engine エラー '80040e4d' パスワードが正しくありません。

  • 【VB】データグリッドコントロールにデータベースを表示させたい

    お世話になります。 フォーム上にMicrosoft DataGrid Control 6.0(OLEDB)を置いて、 データベースと接続し、データベースを表示させたいのですが、 データベースエンジンがMicrosoft.Jet.OLEDB3.51だとうまく表示してくれますが 4.0だとなぜか表示してくれません。 原因、対策などわかるでしょうか? ソースは以下のように単純なものです。 Private cn As ADODB.Connection Private rs As ADODB.Recordset Private Sub Form_Load() Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\パスワード管理.mdb" cn.Open Set rs = New ADODB.Recordset rs.Open "パスワード", cn, adOpenStatic, adLockReadOnly Set DataGrid1.DataSource = rs End Sub

  • Win10(IIS) ASPでMDBをアクセス不可

    とても困っております。お願いします。 Windows7 Pro 32ビットでIISを有効にし、稼働していたASPを Windows10 Pro (OS:1903)64ビットに移行したところ、mdbへの接続でエラーになりました。 Microsoft Officeですが、 Windows7は、Office Professional Plus 2010(32ビット) Windows10は、Office Professional Plus 2016(64ビット)です。 Const strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\inetpub\wwwroot\nwgp\MDB\term.mdb" Set cnn = Server.CreateObject("ADODB.Connection") cnn.Open strConn  ←ここでエラー発生 この場合、on error resume next を入れても、「Webサイトはページを表示できません」と表示されます。 OLEDB.12をOLEDB.16に変更しても同じです。 mdbをaccdbに変換して、terma.ccdbに変えても同じでした。 Const strConn = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\inetpub\wwwroot\nwgp\MDB\term.mdb" にすると、「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」 というエラーが、err.descriptionで表示されます。 フォルダやファイルのアクセス権は、IIS_USERSもeveryoneもフルアクセスにしてあります。

  • データベースのパスワードを設定するには?

    VB .Netでデータベースを開くときにパスワードをきいてくるのですが、パスワードの設定の仕方がわかりません。 oleCn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & dskstr & JISSEKINOW & ";"

  • 他のAccessDBに接続したい

    Access2007(Test1.accdb)から、他のAccessのデータベースに接続したいのですが、 拡張子が.mdbのAccessには接続できるのですが、.accdbには接続できません。 接続方法は以下の通りですが、.mdbに接続する場合と変更すべき点があるのでしょうか? どなたかご伝授下さい。 '接続情報を設定 cnDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source="C:\Test\TestDB2.accdb" '接続 cnDB.Open

  • データグリッドコントロールに表示されません!

    OS:XP、VB6、ACCESS2000の環境でADOの勉強をしています。 ある参考書を見て、次のサンプルを実行しました。 【サンプル】 フォームにデータグリッドコントロールを貼り付ける。 フォームのLoadイベントプロシージャ内でデータベース(MDB)に接続し、レコードセットを取得して、データグリッドコントロールに取得したレコードセットを表示させる。 データベースはACCESS97で作成されたものです。 (ソース) --------------------------------------------------------------- Option Explicit Private cn As ADODB.Connection Private rs As ADODB.Recordset Private Sub Form_Load() 'データーベースに接続 Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=G:\VB_TEST\Book.mdb" cn.Open 'レコードセットを取得 Set rs = New ADODB.Recordset rs.Open "本", cn, adOpenStatic 'データグリッドコントロールに取得したレコードセットを表示 Set DataGrid1.DataSource = rs End Sub --------------------------------------------------------------- 上記のプログラムを実行するともちろんうまく表示されました。 が、接続プロバイダ名を "Provider=Microsoft.Jet.OLEDB.3.51;"  ↓↓↓↓↓ "Provider=Microsoft.Jet.OLEDB.4.0;" にすると表示されません。 そこで、データベースをACCESS2000で作成し直し、実行してもダメです。 この処理はJet4.0では出来ないのでしょうか?

専門家に質問してみよう