none
VB.NETでAccessに接続できるようにしたいが、エラーが出て困っています。 RRS feed

  • 質問

  •  

    はじめまして。

     

    自分はVB.NETを勉強し始めてまだひと月経っていない初心者(社会人)です。至急で解決策を教えていただきたいと思い、投稿いたしました。

     

    現在、Accessに接続してデータを検索するプログラムを作るという課題を与えられているのですが、検索ボタンをクリックしてデバックすると、

     

    Dim cn As New DBAccess.clsCommand」

     

    と宣言したところで下のようなエラーメッセージが出てしまいます。

     

     

    「ファイルまたはアセンブリ 'Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=************'、またはその依存関係の 一つが読み込めませんでした。指定されたファイルが見つかりません。」

     

    ※ ******部分にはランダム的な英数字が書かれていましたが、念のため伏せておきます。

     

     

     

    この検索システムのソリューションファイルは、DMLを実行するためのプログラムが書かれているDBAccess】クラスを参照することでODP.NET経由でDBへ接続していたのですが、これをCドライブ直下に置いたAccessのファイルに接続できるように部分的に修正を加えてからエラーが出るようになりました。もちろん、Accessに接続することはできません。【DBAccess】の他に、メッセージ表示処理を行う【Common】クラスや、イベントログへの出力を行う【Logger】クラスなどがあり、それらの参照設定をしていますが、自分が作ったものではありません。

     

    ちなみに、ソリューションファイルもclscommandも、コーディング上のエラーはないようです。

     

    コーディングで見えない部分で設定を行っているとすれば、ソリューションファイルとclscommandの両方の【設定】のところで値を「Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\****.mdb;Persist Security Info=False」としてあることくらいだと思われます。

     

     

    初心者なので、聞かれてもわからないことなどあれば逆にお尋ねするようなこともあるかもしれませんが、解決につながるような方法を教えていただければと思います。

     

    よろしくお願いいたします。

     

    2006年11月8日 11:37

回答

  • とりあえずOracleなんてコードがある間はおかしいかと。
    2006年11月8日 13:40
  • > この検索システムのソリューションファイルは、DMLを実行するためのプログラムが
    >
    書かれているDBAccess】クラスを参照することでODP.NET経由でDBへ接続していた
    >
    のですが、これをCドライブ直下に置いたAccessのファイルに接続できるように部分的に
    >
    修正を加えてからエラーが出るようになりました。

    修正前の状態に戻してきちんと動作することを確認してみましょう。
    それが確認できれば、この修正部分が問題だということがはっきりします。
    あとはどんな修正を行ったかがわからない限り、解答できる人はいないと思います。

    2006年11月8日 14:31
  •  SltuP さんからの引用
    Oracleという記述は全て削除したつもりなのですが、どこかに残っているのでしょうね。
    探しているのですが、それがわからず困っています。
    「ファイルまたはアセンブリ 'Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=************'、またはその依存関係の 一つが読み込めませんでした。指定されたファイルが見つかりません。」

    ODP.NET を参照しようとしている場所がありますよね。

    2006年11月8日 14:53

すべての返信

  • とりあえずOracleなんてコードがある間はおかしいかと。
    2006年11月8日 13:40
  • ご回答ありがとうございます。

    Oracleという記述は全て削除したつもりなのですが、どこかに残っているのでしょうね。

    探しているのですが、それがわからず困っています。

    2006年11月8日 13:46
  • > この検索システムのソリューションファイルは、DMLを実行するためのプログラムが
    >
    書かれているDBAccess】クラスを参照することでODP.NET経由でDBへ接続していた
    >
    のですが、これをCドライブ直下に置いたAccessのファイルに接続できるように部分的に
    >
    修正を加えてからエラーが出るようになりました。

    修正前の状態に戻してきちんと動作することを確認してみましょう。
    それが確認できれば、この修正部分が問題だということがはっきりします。
    あとはどんな修正を行ったかがわからない限り、解答できる人はいないと思います。

    2006年11月8日 14:31
  •  SltuP さんからの引用
    Oracleという記述は全て削除したつもりなのですが、どこかに残っているのでしょうね。
    探しているのですが、それがわからず困っています。
    「ファイルまたはアセンブリ 'Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=************'、またはその依存関係の 一つが読み込めませんでした。指定されたファイルが見つかりません。」

    ODP.NET を参照しようとしている場所がありますよね。

    2006年11月8日 14:53
  • どっとねっとふぁん様、ご回答ありがとうございます。

    今はOracleサーバーを社外に移動させてあるため、Oracleバージョンの動作テストができない状態なのです。申し訳ありません。ですからAccessのDBに接続できるように作り直してみてということだったのです。

     

    修正したところを簡単に言いますと、ソリューションファイルの一番先頭に記述していた

    Imports Oracle.DataAccess.Client
    Imports Oracle.DataAccess.Types

    を削除し、Oracle接続後に使われる「 Dim oratype(1) As Oracle.DataAccess.Client.OracleDbType」という記述を削除したりしたということです。

     

    ちなみにステップインすると、

    1.フォームを読み込む(フォームには【NO】と【NAME】という空のテキストボックスと、【検索】というボタンが表示される)

    2.【NO】に数字を入れて【検索】をクリックすると、「 Private Sub btnSearch_Click~~」に移動して、「Dim cn As New DBAccess.clsCommand」から読み込む。

    3.ここですぐにエラーが表示される

    という具合です。

    2006年11月9日 1:59
  • じゃんぬねっと様、ご回答ありがとうございます。

    >ODP.NET を参照しようとしている場所がありますよね。

    初歩的なことを聞いて申し訳ありませんが、一般的にはどこでどのように参照しているのでしょうか?

    【参照】という画面で「Oracle.DataAccess」や「System.Data.OracleClient」など、「Oracle」と表示されている項目は全て削除したのですが・・・。


    2006年11月9日 4:44