• ベストアンサー

ネットワーク上のmdbファイルへのアクセスについて

WINXP、VB2008でデータベースソフトを作成しています。 VB2008で作成したソフトからネットワーク上のデータベース(マイクロソフトACCESSのMDBファイル)にアクセスし、ソフトのデータグリッドビューに表示するのですが、毎回ネットワーク上のMDBファイルにアクセスしているため、データグリッドビューへの表示が遅れます。 こういった場合、どの様に作れば表示が遅れないようになるでしょうか?

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

  • ベストアンサー
  • dscripty
  • ベストアンサー率51% (166/325)
回答No.2

正解は [ANo.1] さんの回答の通り、ネットワーク対応 RDBMS をつかう。 http://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0 でも、どーーーしても、Access なら、.MDB ファイルを機能で分割する。 例えば、毎回アクセスするデータを集めて、小さな .MDB ファイルにする。 毎回読み込んでも、ファイルが小さいから、ある程度早くなる。 分割できないなら、ローカルキャッシュを使う。 とりあえず、表示しながら、『これは古いデータです。』とか何とか表示しておいて、 裏でせっせと、最新のデータを読み込む。 読み込みが終わったら、『新しいデータが表示できます。表示しますか?』とかメッセージ出してあげればいい。 。。。かな?

higuchi-yu
質問者

お礼

ご回答ありがとうございます。 ネットワーク対応 RDBMSへの移行も検討しつつ、当面はローカルキャッシュを読み込ます方法にしたいと思います。

その他の回答 (1)

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>こういった場合、どの様に作れば表示が遅れないようになるでしょうか? 一般的には、ネットワークでデータベースを使う場合、速度やトラブル発生を防ぐ見地からプライベート向けデータベースのACCESSのMDBファイルを使わずに、きちんとした複数ユーザ向けデータベースソフトのSQL-SERVERを使うようにします。 もちろん、プログラムとしては大幅改修が必要になることが多いです。 また、SQL-SERVERへの乗り換えにあたり、どのようにプログラムを改修したらいいかは、それなりの時間をかけて勉強することになると思われます。

関連するQ&A

  • vb2008で作成したプログラムの配布について

    vb2008を用いて作成したソフトを配布する際に配布先PC(winxp)にインストールするソフト(コンポーネント?)を教えてください。 作成したソフトは、データベース(ms accessのMDB)を検索して、フォーム上のデータグリッドビューに表示を行い、該当する行をクリックして該当するファイルを開くといった簡単なものです。 よろしくお願いします。

  • ACCESSのmdbファイルが壊れました・・・

    アクセスでmdbファイルを起動中にPCがフリーズしてしまい,再起動をさせました。 その後,mdbファイルを起動させようとしたところ, 「修復が必要であるか,データベースファイルではありません。データベースを開いているときに,いずれかのユーザーがACCESSを終了しました。修復しますか?」 というエラーメッセージが出ます。 当然修復を選択したのですが,すると修復中にAccessが強制終了してしまいます。 なお,そのmdbファイルと同一フォルダー上にmdbファイルと同一名のaccess.lockfile.9という形式のファイルが1つ存在します。 このような状況の場合,修復は可能なのでしょうか? ファイルの一部分でも復活させたいのですが・・・。 よろしくお願いします。 なお,OSはwin2000 pro,ACCESSは2000です。 よろしくお願いします。

  • データグリッドビューの一覧に無いファイルの検出

    VB2008・WINXP環境で、acsessのMDBファイルを読み込み、データグリッドビューにファイル名を表示、データグリッドビューをクリックすると指定フォルダのPDFファイルを展開というシステムを作っています。 使っていると、指定フォルダのPDFファイルの数とデータグリッドビューの表示件数(MDBのレコード件数)と合わなくなってきます。 指定フォルダの中からデータグリッドビューの一覧に無いものを検出する方法はあるでしょうか? 色々調べたり考えたりしたのですが、わかりません。 よろしくお願いします。

  • Microsoft Accessのデータが、別々のmdbファイルとして

    Microsoft Accessのデータが、別々のmdbファイルとして2つあります。Accessを持っていないので、OpenOfficeで開いています。このmdbファイルにあるテーブルをまとめてOpenOfficのBaseで開くことはできないでしょうか? 具体的には、Microsoft Accessのデータ、「aaa.mdb」「bbb.mdb」というファイルがあります。 「既存のデータベースに接続」>「Microsoft Access」で、「aaa.mdb」や「bbb.mdb」に、個別に接続して新規データベースを作成することはできたのですが、どちらのmdbファイル内にあるテーブルも参照してクエリを作りたいんです・・・。 また、過去に無理矢理「bbb.mdb」のテーブルをCtrl+c>Ctrl+vで「aaa.mdb」にコピー&ペーストしていたこともありましたが、今回はテーブルサイズが大きいせいか、エラーになります(メッセージ:エラーが発生しました。コピー処理を続行しますか)。 データベースに関する基礎知識が足りないので、そもそもそれができるかどうかも分かりません。 Webで検索しても参考になるサイトを見つけられませんでした。 よろしくお願いいたします。

  • Access2007で作成したmdb

    こんにちは。 PC環境:WinXP Access:Access2007 で新規作成したmdbを PC環境:Win2000 Access:Access2000 で開こうとすると”データベースの形式[mdbパス]を認識できません” というメッセージが出て開く事ができません。 vbaでCreateDatabeseを使ってmdbを作成しているのですが、何か問題があるのでしょうか? それともAccessのバージョンが違うと開く事ができないのでしょうか? よろしくお願いします。

  • MDBファイルをCSV出力したい

    こんばんは。 環境: OS:WINDOWS2000 VB6.0 sp5 アクセス2000 VBからアクセスのMDBデータをCSV形式で出力させようとしています。  mdbファイルが実行中にVBのexeを起動してcsvファイルを取得したいのですが、いい方法が分かりません。 閉じているMDBファイルのデータをCSVで出力することは可能です。  MDBファイルが開いているとexeを実行した時に「実行時エラー7866 データベースが開いています」というようなメッセージが出て処理ができません。 なにかいい方法はないでしょうか よろしくお願いいたします。

  • Access2000で作ったmdbをAccess2003で使える?

    タイトル通りですが、 Access97で作ったmdbファイルをAccess2000に 「データベース変換」し使ってきたファイルを Access2003でも使えるでしょうか? また、Access2000で作ったファイルは何の問題もなくAccess2003で使えるでしょうか? 単純なmdbではなくイベントプロシージャーを多用して、ある程度まとまったプログラムになってます。

  • アクセスMDBファイルが破損

    アクセスんのMDBファイルを使用中に、何かの原因でファイルにダメージが起こったものと思われますが、終了後に再起動しようとしてもファイルを開けません。 下記のエラーメッセージが出ます。 「~は修復する必要があるか、データベースファイルではありません。 Microsoft access データベースが開いているときに、いずれかのユーザーがmicrosoft access を終了しました。」 「このデータベースを修復しますか?」 修復を選択して、管理用のパスワードを入力しても 「パスワードが正しくありません。」とメッセージが出て、 「~は修復できないか、Microsoft accessデータベースファイルではありません。」となり、結局、開くことができず終わってしまいます。 このDBファイルはネットワークで複数人が使用しています。 ファイルと同名のLDBファイルは開いたままになっています(64kb)。 なにか修復の方法があれば教えてください。 よろしくお願いします。

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

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

  • アクセスをネットワークでリンクさせると非常に遅い!?

    自分のマシンから、ネットワーク環境にあるデータベースファイル.mdbのテーブルへリンクさせる機能のあるアクセスファイルを作ったのですが、開くのに非常に時間がかかってしまいます。 それで、仕方なくテーブルもクエリーもフォームも1つにまとめたデータベースファイル.mdbをネットワーク環境において多人数で共有させています。 これっていいのでしょうか? よろしくお願いします。