ネットワーク上のDBにアクセス時にエラー

このQ&Aのポイント
  • VB6.0 + Access2003を使用してネットワーク上のDBにアクセスした際にエラーが発生します。エラー番号は-2147467259で、Microsoft JET Database Engineでエラーが発生しました。データベースを開くことができません。同時に複数の端末からアクセスするとエラーが発生することがあります。
  • エラー番号-2147467259が発生したVB6.0 + Access2003のプロジェクトで、ネットワーク上のMDBにアクセスしている際にエラーが発生します。エラーメッセージによると、データベースを開くことができません。複数の端末から同時にアクセスする場合にエラーが発生することがあります。
  • ネットワーク上のDBにアクセスするVB6.0 + Access2003のプロジェクトで、複数の端末から同時アクセスするとエラーが発生します。エラー番号-2147467259が発生し、Microsoft JET Database Engineでエラーが発生しました。エラーメッセージによると、データベースを開くことができません。
回答を見る
  • ベストアンサー

ネットワーク上のDBにアクセス時にエラー

VB6.0 + Access2003を使用しています。 ネットワーク上にMDBがあり、複数の端末からアクセスしています。 MDBにはADO接続で、共有モードで開いています。 複数の端末から同時にOpenし、同じテーブルにアクセス(Select文実行) した場合に、 エラー番号:-2147467259 内容:Microsoft JET Database Engineでエラーが発生しました。     データベース"を開くことができません。アプリケーションで認識できない    データベースであるか、またはファイルが破損しています というエラーが発生します。(ファイルは破損していません) 3、4台で同時アクセスを何度が試していますが、 毎回このエラーが出ることはなく、エラーが出る原因がわかりません。 原因、対処方法などわかりましたら教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • YEND77
  • ベストアンサー率56% (21/37)
回答No.1

根本原因の解決ではないのですが、タイミングによって うまくいくのであれば、複数回リトライするようなつくりにしてみては? (ここから根本原因の憶測) ・Access2003がファイルをオープンするとき排他のタイミングがある ・Access2003内の処理で、オープン時中間ファイルを作成がかぶるとエラーになる ・高負荷によるOSエラー/ネットワークの瞬断等のシステム障害

Be_DaMa
質問者

お礼

回答ありがとうございます。 回答いただいたように、再度実行するようにして 様子を見ようと思います。 根本原因については、排他のタイミングはなく、 高負荷でもないように思うのですが 中間ファイルの作成等、もう1度見直そうと思います。 また何か思いつくことがあれば、アドバイスよろしくお願いします。 ありがとうございました。

関連するQ&A

  • accessのエラーについて。

    初めて投稿させて頂きます。 accessのmdbファイルを開こうとすると下記のエラーが出てファイルが開けません。どうしたら開けますか? 何か不足しているのでしょうか? よろしくお願いいたします。 エラーメッセージ↓ Microsoft Jet データベース エンジンのワークグループ情報ファイルを開くことができません。(Error 3358)

  • エクセルからアクセスにADO PWエラー

    エクセルからアクセスにADOで接続したいのですが アクセスのファイルにはパスワードがかかっていて、 そのパスワードを指定して開こうとしてるのですが パスワードが違います、と言うエラーになります。 でもパスワードは確実に合っています。 構文がおかしのでしょうか? cn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=" & _ "C:\PW.accdb;" & _ "Jet OLEDB:Database Password=0000;" パスワードがあっててもエラーになることはありますか? ファイルのパスをでたらめに変えたら違うエラーが発生したので、ファイルのパスもあっています。

  • 実行時エラー'-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自体はテーブルもクエリもフォームも何も開いていない状態です。 一度アクセスを終了させて再起動させればうまくできるのですが、何が原因でこのメッセージが出るのでしょうか? もしわかれば教えてください。 よろしくお願いします。

  • ADOを使えます。どのくらいのレベルでしょうか。

    Accessの一つのmdbファイルをデータベースとして、Excelをインターフェイスとして、システムを作れます。具体的には、成績データベースを作り、ADOによってExcelのシートにデータベースのデータを抽出して取り出し、そこで入力・編集を行い、ADOによってデータベースのデータ変更を確定させるという方法で、一つのmdbファイルを複数の端末におけるExcelによって書き込んでいます。 こういうことができるレベルってどのくらいのレベルなのでしょうか。

  • Access98で作ったmdbをAccess2000で変換したらエラー発生

    こちらのFREEの掲示板を使いながらASPを勉強しているところですが、 Access98で作ったmdbをAccess2000のデータベースユーティリティで 変換したところ、下記のようにODBC Drivers エラーが発生しました。 Access2000で作成したmdbを使用する場合にはODBC Driverもバージョン アップしなければならないのでしょうか?対処方法についてもご指導 をお願いしたいと思っています。 Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0x5b8 Thread 0x66c DBC 0x2091ba4 Jet' を開くことができません。

  • アクセスでのエラーについて

    アクセス2000で作成したデータベースを「データベースの変換」を行ってアクセス2003で動かしているのですが、エラーが発生して対処しかねています。 アクセス2000の段階で、ファイルへのアクセスでエラー、というメッセージが出て 修復できず、今はデータベースの変換をしてアクセス2003で操作している状態です。 まずアクセスを起動すると、 "<フォーム名>を読み込み中にエラーが発生しました。プロジェクトの読み込みを続行しますか?" と聞いてきます。「はい」を選択するとその後は何も聞いてきません。 そして、フォームを開こうとすると "プロシージャの呼び出し、または引数が不正です"、や、 "イベントプロパティに指定した式 開く時 でエラーが発生しました。プロシージャの呼び出し、または引数が違います" といったメッセージが出て、フォームを開くことができません。また、 "データベースのVisual Basic for Applicationsプロジェクトが破損しています" というメッセージも出ました。 一気に書いてしまいましたが、どなたか分かる方がいらっしゃいましたら、解決策など教えていただけないでしょうか。 よろしくお願いします。

  • Access(アクセス)のDB(データベース)の作り方。

    はじめまして、Access(アクセス)初心者です。 生産管理をやっているのですが、この度アクセスを用いて管理していこうかと思い、勉強中です。 生産管理といっても、在庫や顧客情報など色々なデータベースが必要であることがわかりました。 作成しているうちに、ごちゃごちゃしてわからなくなり、 結果何がしていのかわからなくなった次第です。(笑) ~質問~ 生産管理を1つのアクセスファイルで完結するのと、 在庫管理や顧客情報などの小さく分けたファイルを用いてテーブルのリンクを行うのとでは、どちらがいいのでしょうか? 私の思いとしては、小分けにしたファイルを用いて作った方がわかりやすいのですが、テーブルのリンクをした時に何らかの弊害が発生するのでしょうか? ~要約~ (1) 生産管理.mdb   (在庫管理テーブル)   (顧客情報テーブル)   (工程管理テーブル)   (社員情報テーブル) (2) 生産管理.mdb   在庫管理.mdb   顧客情報.mdb   工程管理.mdb   社員情報.mdb   (各データベースをリンクする) データ量にも関係すると思うのですが、 データベースを構築するにあたり(1)と(2)はどちらがいいのでしょうか? また、テーブル等をリンクした場合、発生する弊害はあるのでしょうか? ご指導の程お願い致します。

  • 同時アクセスの時って...

    Windows2000のPWS(パーソナルウェブサーバー)でASP(VBScriptとJavaScript)とmdbファイルを使ったプログラム(チャットロボット)を作っています。 チャットプログラムでmdbファイルを読み書きする構造です。 チャットなので、複数の方が同時に発言(submit)ボタンを 押すことがよくあります。 【LAN上のそれぞれのパソコンのブラウザでチャットプログラムのURLを開いて、同時に発言ボタンを押した場合です。】 このとき、一つのmdbファイルを同時に(同じタイミングで)呼ぶ場合、下記のようなエラーが出ます。 Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Microsoft Access Driver] '(データベースファイル名)' は既に使用されているので、使用できませんでした。 ASPでトランザクション処理をしていますのでデータ(ログ・発言時刻・辞書ファイル等)の損失は無いと思います。 しかし、エラーメッセージがでて、チャットが中断してしまうので、困っています。 同じmdbファイルをアクセスする場合に、このようなエラー メッセージを出さないようにすることはできますか?

  • Apacheで、アクセスさせたくないファイルがある

    PHPで、「データベース接続ファイル」と「main.php」があります。 main.phpからアクセスして、DBの内容を表示するページがあります。 ・DB接続ファイル(database.php) <?php // MDB2 ライブラリの読み込み require_once("MDB2.php"); // エラー発生時の処理 PEAR::setErrorHandling( PEAR_ERROR_CALLBACK, 'handleError' ); function handleError( $error ) { die('エラーが発生しました。管理者までお問い合わせ下さい。'); } // データベースへの接続 $dsn = array( "phptype" => "mysql", "username" => "root", "password" => "", "hostspec" => "localhost", "database" => "test", ); $mdb2 =& MDB2::connect( $dsn, $options ); // 文字コードの指定 $mdb2->setCharset( "utf8" ); ?> ・main.php(DBの内容を表示) require_once("database.php");     ~処理~ 質問: 当然、main.phpからアクセスして、DBの内容を表示します。 アドレスとしては、「http://localhost/main.php」とアクセスするのですが、 「http://localhost/database.php」とアクセスしてもページの遷移が可能です。 この「http://localhost/database.php」にアクセスしソースファイルを見ることが可能で DBへの、接続ユーザー・パスワードがみられてしまうことが問題だと思っています。 この、 「一部ファイルへの直叩き」or「制限」をかけて、直接アクセスできなくなる方法を探しております。 (ただ、別のphpファイルから参照は許しておきたい。main.phpからアクセスできなくなっては意味がないの。) アパッチでどのような設定をすればいいでしょうか。 参考になるページ等をご存知でしたら ご教授お願いします。

    • ベストアンサー
    • PHP
  • 「アクティブ ユーザーが多すぎます。(Error

    一人でパソコンを使っていて、ローカルフォルダに入っている複数のmdbファイルを開けたら 「アクティブ ユーザーが多すぎます。(Error 3239)」 というエラーが出ました。 一度全部閉じて再度開いたら通常通りに開けました。 そもそも一人でパソコンを使ってるのにこのエラーになる原因がわからないし MDBファイルは多くて5つしか開けていません。 ADOやリンクテーブルを使っているのが原因でしょうか? ご回答よろしくお願いします。

専門家に質問してみよう