Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9482 / 13644 ツリー ←次へ | 前へ→

【27073】mdbのレコードロック たろーさん 05/7/28(木) 3:13 質問[未読]
【27075】Re:mdbのレコードロック ichinose 05/7/28(木) 7:59 発言[未読]
【27077】Re:mdbのレコードロック 小僧 05/7/28(木) 9:50 発言[未読]

【27073】mdbのレコードロック
質問  たろーさん  - 05/7/28(木) 3:13 -

引用なし
パスワード
   エクセルのVBAから、アクセスのテーブルデータを取得します。
取得したデータを編集し、元のデータをアップデートします。
編集中に別の人が、検索はできるが、更新はできないように
したいと考えています。

この場合、データを取得するときのレコードセットに
MyRs.Open mysql, MyCon, adOpenDynamic, adLockPessimistic
にしておき、このレコードセットを閉じずに
編集をすればよいのでしょうか?
そして、編集が終了してから
レコードセットを閉じるのでしょうか?

ロックの仕方が分からないので、教えてください。

【27075】Re:mdbのレコードロック
発言  ichinose  - 05/7/28(木) 7:59 -

引用なし
パスワード
   ▼たろーさん さん:
おはようございます。
MDBファイルをADOでのレコードロック・・・、
私も2,3度テストしただけなんですが、
>エクセルのVBAから、アクセスのテーブルデータを取得します。
>取得したデータを編集し、元のデータをアップデートします。
>編集中に別の人が、検索はできるが、更新はできないように
>したいと考えています。
>
>この場合、データを取得するときのレコードセットに
>MyRs.Open mysql, MyCon, adOpenDynamic, adLockPessimistic
>にしておき、このレコードセットを閉じずに
>編集をすればよいのでしょうか?
MDBファイルをADOでのレコードロック・・・、
私も2,3度テストしただけなんですが、

wk=MyRs![フィールド名]
MyRs![フィールド名]=wk
'↑この時点でレコードに対してロックがかかります。
'Update、Cancelupdate等が呼び出されるまでロックされます。

>そして、編集が終了してから
>レコードセットを閉じるのでしょうか?

Update、Cancelupdate操作をしないで
Movenextなんて行ってしまうと、
カレントポインタが次のレコードに移っても
ロックが解除されません

と言う現象も確認しています。

Adoでmdbファイルに対して(Jetで)厳密にこのレコードロックが
可能なのかは本当のところは心配です。

【27077】Re:mdbのレコードロック
発言  小僧  - 05/7/28(木) 9:50 -

引用なし
パスワード
   ▼たろーさん さん、ichinose さん:
こんにちは。

普段ADOの記述を行わないのであまり気にしていなかったのですが、
Web検索して調べてみると意外な事が解りました。

http://www5f.biglobe.ne.jp/~f-lap/tips_adolock.htm

↑のリンクの検証はまだしていないのですが、

>MyRs.Open mysql, MyCon, adOpenDynamic, adLockPessimistic

MyCon あたりが曲者っぽいですね。

9482 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free