• ベストアンサー

ACCESS MSDE フォーム上からのデータ更新による競合

いつもお世話になっております。 WINDOWS XP ACCESS 2002,2003 を使用しております。 既存のMDBファイルを MSDEを使用するADPファイルに置き換え、 なおかつ複数端末による運用が可能なようにシステムを変更しております。(元々複数端末で使用しています) 以下の手順でadpファイルを作って運用使用とする場合に疑問があるのですが。 (1)MSDEデータベースに接続したadpファイルを作成。 (2)フォームのレコードソースをMSDEデータベースのテーブル、 テキストボックスのコントロールソースに、そのテーブルに存在するフィールドを設定。 (3)このadpファイルを複数マシンに置き、同時に起動。 (4)作成したフォームで同一のレコードを同時に修正。 この場合に、後のほうで更新した時に 「データの競合」ダイアログが表示され、データを反映するか、先に更新されたほうを優先するか 選択できるますが、 mdbでも同様の運用が可能ですが、この運用を続けるとデータ破損の温床になるようですので控えておりました。 MSDEを使ったadpファイルでも同様のことが言えるのでしょうか? また、もしこの運用に問題があるとすれば、非連結のテキストボックスを設けて「更新」ボタンでADOによる 更新を行わなければならないのでしょうか。 レコードをリスト形式で表示しているので出来ればそれはさけたいのですが。 どなたかご教授のほど、何卒よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

> MSDEを使ったadpファイルでも同様のことが言えるのでしょうか? 安心してください。 単体のデータファイルをローカルの Access.exe が開く MDB のケースと違い、MSDE は DBMS です。 データベースを管理するシステム。 だから更新などの競合が起こったときに交通整理をしてくれるのです。 ひとつの MDB を複数の端末から開いてデータを更新する場合、ひとつのファイルを複数から更新するわけです。 対して MSDE の場合、データを更新するのはサーバで稼動している MSDE であって、ローカルで起動している Access ではありません。

o_w_nakazaki
質問者

お礼

ご回答ありがとうございます。 心強い宣言をいただき、安心しました。

その他の回答 (1)

  • panick
  • ベストアンサー率40% (26/64)
回答No.1

ACCESSのデータベースは基本的にパーソナルなスタンドアローン型です。一方、MSDEデータベースは小さいながらもクライアント/サーバー型の SQL-Serverです。 ACCESSから MSDEデータベースを利用する方法には次の2つがあります。 (1).ACCESSのデータベース mdbから ODBC経由で、MSDEデータベースにリンクして使う。   これまでのACCESSのデータベースを殆ど変更せずに、MSDEのデータを利用できますがパフォーマンスは低下します。 (2).ACCESSのプロジェクト adpから OLE DB経由で、MSDEデータベースに接続して使う。   従来のACCESSのデータベースにある DAOコードはすべて ADOに変更する必要があります。同じ ACCESSであっても ACCESSプロジェクト adp のデータベースは全く別物だと思って下さい。データベース構築を最初から作り直した方がよいです。MSDEデータベースはクライアント/サーバー型ですので、データの競合を心配する必要はなくなります。 どのような ACCESSのデータベースでクライアント数も分かりませんが、既存のデータベースが簡単なものならば ODBCによるリンク方式の方が良いと思います。本格的なクライアント/サーバー型のアプリケーションを作成するならば、SQL-Server(MSDE)をベースとして再構築することをお勧めします。

o_w_nakazaki
質問者

お礼

返信が遅くなってすみません。 ご回答いただき、ありがとうございました。

関連するQ&A