|
247b さん ありがとうございます
別件で遅くなりました
>タイマー、もしくはイベントでリクエリするのでよいと思います。
>リクエリのタイミングや必要性は業務用件に関わってくるため、
>ちらからはなんとも言えませんが。
了解です
ありがとうございます
>上記の方式でDBをオープンするようにしてからもう一度試してみてください。
ありがとうございます
これについては
DT.MDBを開くときは
手動で
「ファイル」→「開く」を選択
MDBファイルを選択
「開く」ボタンの右にある「▼」ボタンをクリックし、「排他モードで開く」を
選択
で開いて、その上でテストしていました
また、上記で開いた状態で
別PCから上記を開くと、開けませんメッセージが出るのを確認しています
ので、排他で開いているのは間違いないと思っています・・・
頂いたアドバイスを試してみてないので申し訳ないのですが
下記の確認をしてから試してみようと思ったのですが
この辺のチェックが一杯々で・・・、一歩づつで無いと手が出ません m(_ _)m
(理解不足が複合的に交錯しているように思えるため・・・)
APP1_入力.MDB
APP2_参照.MDB
DT.MDB
現状の動作確認をしてみました
APP2_参照.MDBのフォームのサブフォームデータシート形式
のレコードソースは
フォームロード時に
Set dbs = OpenDatabase(LC_get_path, Options:=True) '排他で開く
Me.CNB01_拠点.RowSource = "SELECT ・・・;"
で設定しています
APP2_参照.MDBのフォームが開いていないときには
APP1_入力.MDBからレコードの追加は出来ましが
APP2_参照.MDBのフォームが開いているとレコードの追加が出来ませんでした
(今回、気が付きました)
APP2_参照.MDB を 開いただけでは、DT.MDBのDT.LDBは作成されていませんでしたが
APP2_参照.MDBのフォーム(サブフォームデータシート形式)を開くと
DT.MDBのDT.LDBが作成されました←フォームを開いたので連結コントロールになってしまったようだ
この状態で
APP1_入力.MDBからDT.MDBにレコード登録するために
Set dbs = OpenDatabase(LC_get_path, Options:=True)
で、排他で開こうとするとエラーとなり
Err.Number
3356
Err.Description
このデータベースは、マシン 'hoge' のユーザー 'Admin' が排他的に開いています。
データベースが使用可能になった時点で、再度実行してください。
と、なる気がします
そこで
APP1_入力.MDBからレコード追加するときに
'Set dbs = OpenDatabase(LC_get_path, Options:=True)
を
Set dbs = OpenDatabase(LC_get_path)
とすると、レコードが追加できるようになりました
これから
Set dbs = OpenDatabase(LC_get_path, Options:=True) は
既に、DT.MDBのDT.LDBが存在するのに排他で開こうとしてエラーになっている
Set dbs = OpenDatabase(LC_get_path) は
排他管理をアクセス任せにしている状態になっている
と勝手な理解に至りました・・・ 合っているか不明ですが・・
他に
MDBを多重起動していて、同一レコード選択時、一方でレコード編集をすると
ほかのユーザーによってロックされているので、保存できませんでした。
に遭遇することがありますが
これもアクセス任せの排他管理ではと勝手に思っています
あいまいな理解ばかりでなんとも情け無いのですが
元々基本的な知識が無いので・・・・・ (~_~;)
当初は、排他制御のほうが楽なような気がしていましたが
上記のような状況では、アクセス任せの管理のほうが
簡単なような気がしてきました
頂いたアドバイス
>上記の方式でDBをオープンするようにしてからもう一度試してみてください。
は、この辺のロジックが正しくないとうまくテストできないような気がしています
どうなんでしょう・・・
で
<ADOを使ったレコード単位の排他ロックについて>
tp://www5f.biglobe.ne.jp/~f-lap/tips_adolock.htm
なんて見つけたのですが
まだ、理解できていない状態ですが
なんとなく
これがアクセス任せの排他制御のような気がしています
DAOでもいけそうな気がして、理解して試してみたいと思っています
がどうでしょう
わかりにくいと思いますが
本人自体??の状況ですのでご容赦よろしくお願い致します
アドバイス頂けると助かります
よろしくお願い致します
|
|