こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2000について

Accessでの質問です。(排他処理について)

フォームにとあるテーブル(リンクテーブルを使用
しています)のデータを一覧表示させています。
一覧表示させるテーブルの項目にはチェックボックスの
項目があり、フォーム上でそのチェックボックスを
クリックして「削除」ボタンをクリックすると、
チェックがついたものだけをフィルタをかけて
表示させたあとで、モジュール内でそのチェックのついた
データを削除する処理をしています。
このフォームを複数ユーザーで使用します。
それぞれのマシンごとにmdbはコピーして使うのですが、
リンクテーブル先は同じです。

(1)のマシンにてフォーム上でチェックボックスにチェックをつけ、「削除」ボタンはクリックしないまま、
そのままにしておいて、
(2)のマシンにて同じデータにチェックを付け、
「削除」ボタンクリックにてそのデータを削除したあと、
(1)のマシンにて「削除」ボタンをクリックすると、
(1)のマシンのmdbが異常終了してしまいます。

どうやら(1)のマシンが削除させようとして
フィルターをかける時点で、既に(2)のマシンによって
そのデータはテーブルから削除されているので
異常終了しているみたいです。

これを異常終了させないようにするには
どうしたらいいのでしょうか?

わかりづらい文章になってしまってすみません。
どうかアドバイスを宜しくお願いします。

投稿日時 - 2003-07-16 19:52:31

QNo.603122

すぐに回答ほしいです

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

Accessは全く分からないので、
的をはずしたコメントになりましたら
ご容赦下さい。

> On Error時のエラーメッセージをMsgboxで 表示しようとした瞬間に異常終了してしまうのです。

このような状況ですと、異常終了を回避するには、
原因をはっきりとさせて、それに対する対策を
とるような方針になるのではないでしょうか?

>そのデータはテーブルから削除されているので、異常終了しているみたいです。

と、原因が特定できているようですよね!?
例えば、削除ボタンを押された後に、
削除処理が走る前に、データ削除されているかどうか
を判断させ、削除されているのであれば、何か、
特殊な処理をさせるようなことをすれば良いのではないでしょうか?
例えば、その処理とは、てきとうなデータを削除の
直前に入れてあげるとか・・・。
削除するんだから、なんでも良いですよね?データは・・。

これは、1例です。あと、いろいろ細かな仕様で、
そんな処理じゃ駄目だというお話もあるでしょう~。

こういう方法も検討してみてはいかがでしょうか?
ということで・・。

投稿日時 - 2003-07-17 13:33:15

お礼

ありがとうございます。
他の方法を検討してみることにします。

投稿日時 - 2003-07-17 15:13:04

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

排他設定でなければいけないんでしょうか?
排他である以上、データソースを何処かで開いている時に、別のマシンからアクセスすれば、それは、排除すべきアクセスとみなされるのは当然ですから、異常終了しても、おかしくは無い筈です

一度、共有設定に変えて、試されてみては如何ですか?

投稿日時 - 2003-07-16 20:41:44

補足

ありがとうございます。

mdbは共有モードにしているのですが、
うまくいきません。
せめてエラーメッセージを表示して
処理をとめるようなことができたらいいのですが、
On Error時のエラーメッセージをMsgboxで
表示しようとした瞬間に異常終了してしまうのです。

何かいい方法はないものでしょうか?

投稿日時 - 2003-07-16 21:01:28

あなたにオススメの質問