ADOのOPENで実行時エラー

このQ&Aのポイント
  • VB6.0でACCESS2000のデータに接続しようとしていますが、Openの箇所でエラーが発生しています。
  • エラーコードは -2147024769(8007007f) で、'Open'メソッドは失敗しました:'_Connection'オブジェクトというメッセージが表示されます。
  • エラー対処として、参照設定を確認し、Microsoft ActiveX Data Objects 2.7 Libraryを使用しています。また、接続用のオブジェクトを作成してOpenメソッドを実行しています。
回答を見る
  • ベストアンサー

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") ご回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 >Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\OLDATA.MDB")           ↓ Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\OLDATA.MDB" または、 Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\OLDATA.MDB ;Jet OLEDB:Database;" でどうでしょうか?

dentyugin
質問者

お礼

ご回答ありがとうございました。 試してみましたが、どちらも同じでした。 Windowsが壊れていたみたいで、XPのSP2を当てなおしたら、動きました。

関連するQ&A

  • アクセス2007でADOは使えないのでしょうか?

    デスクトップにあるDatabase1.accdbを開いて ツールの参照設定で Microsoft ActiveX Data Objects 2.8 Library にチェックを入れ Sub a() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName とやろうとしたら、 ************************************************************ 実行時エラー '-20147467259(80004005)': データベースの形式'C:\Users\○○\Desktop\Database1.accdb'を認識できません。 ************************************************************ となってしまいます。 再起動しても同じです。 ADOは2007では使えないのでしょうか?ご回答よろしくお願いします。

  • ADO1とADO2は意味は同じですか?

    Private Sub ADO1() Dim cn As New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing End Sub Private Sub ADO2() Dim cn As ADODB.Connection Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing End Sub は、 Dim cn As ADODB.Connection Set cn = New ADODB.Connection を簡素化したものが Dim cn As New ADODB.Connection になるのでしょうか?

  • ADO 前は参照設定にチェックが付いてなかった

    office2003、XP SP3を使っています。 前までは,新規にmdbファイルを作成した時のVBEの参照設定は、 Microsoft ActiveX Data Objects 2.1 Libraryにチェックがついてなかったような気がしたのですが 今は 新規ブックを立ち上げて、参照設定を確認すると、 Microsoft ActiveX Data Objects 2.1 Libraryにチェックがついています。 Dim cn As New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing のコードを標準モジュールに張り付けて実行した時に、 問題なく作動します。 昔は、参照設定に Microsoft ActiveX Data Objects 2.1 Libraryがデフォルトで ついてなかったから、 http://www.happy2-island.com/access/gogo03/capter00601-01.shtml のようにチェックしないと、 「cn As New ADODB.Connection」の部分で、 ”コンパイルエラーユーザー定義型は定義されていません。” となっていたのですが、どういう事なのでしょうか? 自分が聞きたいことは なぜ昔は新規にファイルを作った時に Microsoft ActiveX Data Objects 2.1 Library にチェックがついてなかったのに、 今はMicrosoft ActiveX Data Objects 2.1 Libraryにチェックが つくようになったのか?という事です。 ウインドウズアップデートが原因なのでしょうか?

  • 実行時エラー'-2147467259(80004005)':

    エクセルからADOでアクセスに繋ごうとしたときに 実行時エラー'-2147467259(80004005)': マシン'マシン名'のユーザー'Admin'がデータベースを開けない状態、またはロックできない状態にしています。 というエラーが出てしまいます。 書いているコードは以下です。 Public cn As ADOdb.Connection Set cn = New ADOdb.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb" test.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 別のプロシージャからも、使えるためには パブリックにするための方法を教えて下さい

  • 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にアクセスするのはどのようにしたらよろしいでしょうか?

  • 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でコンパイルしても直りません。 何をどうすれば動くものなのでしょうか?

  • 参照設定にチェックを入れないでADOを使いたい

    アクセス2003です。 テーブル1にテキスト型のフィールド1を作り、数レコードをサンプルで入れました。 そしてVBE画面で Sub test() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic MsgBox rs.RecordCount rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub としたらレコード件数が取得できました。 質問は ツール→参照設定の Microsoft ActiveX Data Objects 2.8 Library にチェックをいれなくても VBAコードだけで参照設定できたような気がするので そのコードを教えてくいただけませんか? アドバイスよろしくお願いします。

  • VBのデータグリッドが表示されない!!!

    こんにちはtmgmです。 データグリッドが表示されません。 状況としては 1.プログラムは正常に動いています。(「接続に成功しました」メッセージ、「レコード取得に成功しました」メッセージ、ともに表示されます。) 2.しかしデータグリッドには何一つ表示されません。(ツールボックスから貼り付けたままの状態です) 3.参照設定はMicrosoft ActiveX Data Objects 2.5 Library、コンポーネントはMicrosoft DataGrid Control6.0(SP5)(OLEDB)です。 どなたかお分かりになる方いらっしゃいますでしょうか?非常に困っています。 ご返答よろしくお願いします。 ------------------------------------------------ Dim CONN As ADODB.Connection 'レコードセットの宣言 Dim RECO As ADODB.Recordset '接続の宣言 Set CONN = New ADODB.Connection '接続のプロパティ With CONN .ConnectionString=     "provider=Microsoft.jet.oledb.4.0;" _ & "data source=C:\TESTMDB.mdb" .Open End With MsgBox "データベース接続に成功しました"   'レコードセットのプロパティ Set RECO = New Recordset With RECO .ActiveConnection = CONN .Source = "SELECT ~(省略)" .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockOptimistic .Properties("IRowsetIdentity") = True .Open End With   'レコードセットをデータグリッドに連結 Set D_GRID.DataSource = RECO MsgBox "レコードセット取得に成功しました ------------------------------------------------

  • VB6.0とaccessのDBを接続する

    初めまして。 件名のようなことを実行する際、 以下のソースを参考にしようと思ったのですが、 ******************************************* Dim cn As New ADODB.Connection Dim rc As New ADODB.Recordset ' 接続を確立する cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\My Documents\db1.mdb;" ' テーブル名を指定してレコードセットを作成する rs.Open "Table1", cn, adOpenKeyset, adLockOptimistic ************************************* > cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ > "Data Source=C:\My Documents\db1.mdb;" この部分の接続文字はどのようにしたら取得できるのでしょうか? SQLserverのときは、コンポーネントから Microsoft ADO Data Control 6.0(AP4)(OLEDB) を追加し、プロパティでOLE DBプロバイダを選択して接続文字を取得したのですが、accessに繋ぐのは初めてで、わかりません。 どなたか宜しくお願いいたします!!

専門家に質問してみよう