|
>>DoCmd.OpenQuery で更新クエリを実行するとトランザクション処理は行われないので、複数ユーザーがほぼ同時に実行したときに、問題がでそうに思えます。
>>
>>DAOかADOでトランザクション処理を追加して実行するようにしたほうがいいかもしれません。
>>
>
>すみません、トランザクション処理について理解できていないです。
>どのような処理なんでしょうか?
「Access トランザクション処理」でWEB検索すればいろいろ解説が見つかります。
例えば、下記は、DAOでのトランザクションの使用例です。
Workspace.CommitTrans メソッド (DAO)
msdn.microsoft.com/ja-jp/library/ff835985.aspx
>>あと、登録フォームを開くとき、ダイアログモードあるいは、「作業ウィンドウの固定「を「はい」で、開いてますか。
>
>作業ウィンドウの固定の設定は何も変更していないので「いいえ」のままになっています。
>「はい」にすることで何が期待できるんでしょうか?
ダイアログモードあるいは作業ウィンドウ固定でフォームを開くと、ユーザーはそのフォームしか操作ができなくなります。もし、そうしないと、ユーザーが他のフォームでデータ処理を行い、想定外の結果にある危険性があります。
ダイアログモードで開くには、
Docmd.OpenForm "フォーム名", , , , , acDialog
というように第6引数で acDialog を指定します。
acDialog を指定して開くと、ユーザーがこのフォームを閉じるまで、次の行のコードは実行されません。
フォームでのデータ操作が終わった後の後始末の処理などを次の行に記述しておくことができます。
|
|