【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言

お世話になります
まず、トランザクション処理の定義から
「関連する複数の処理を一つの処理単位としてまとめたもの。」
例えば
金融機関での入出金処理、入金処理は成功で、出金処理は失敗
となると、まずいことになります。それで、
この、トランザクション処理は
「すべて成功」か「すべて失敗」のいずれかであること
が保証されることらしいのですが、

さて、これを実現する方法を教えてください。
ACCESSのVBを使っての話で、エクセルファイルの作成や更新も
あります。
また、どういった所を調べればいいかのアドバイスだけでもありがたいです

何か
Begin Transaction

End Transaction
のような方法を取ると聞いたことがあるのですが。

A 回答 (2件)

Accessなどでは、クエリ等の実行結果が即座にテーブルに反映されますので、一連の処理が途中で失敗に終わったときに、各テーブル間で不整合が起きない様に全ての処理が正常終了した時に、結果を反映(コミット)さし、途中でエラーが発生した時は、処理を中止(ロールバック)し、これまでの更新をなかった事にするのがトランザクションになると思います。



トランザクション開始(BeginTrans)
 ↓
入金処理 → 失敗 ロールバックを実施(CommitTrans)
 ↓ 成功
出金処理 → 失敗 ロールバックを実施(CommitTrans)
 ↓ 成功
コミットを実行(RollbackTrans)

Excelなどでは、途中でエラーが発生しても、保存をしていなければ、結果は反映されていないので、トランザクションの概念は無いのではないでしょうか。
ファイルオープン
 ↓
入金処理 → 失敗 ファイルが保存されていないので元ファイルは変更無し
 ↓ 成功
出金処理 → 失敗 ファイルが保存されていないので元ファイルは変更無し
 ↓ 成功
ファイル保存
    • good
    • 0
この回答へのお礼

回答ありがとうございました
図解で、とてもわかりやすかったです
ありがとうございました

お礼日時:2007/03/01 18:04

VBAですと


Set wp=dbEngine(0).WorkSpaces(0)(カレントの場合)
wp.BeginTrans
処理
wp.CommitTrans
で 出来ます
上記のキーワードでHELPを見るなり
検索すれば わかると思いますよ
    • good
    • 0
この回答へのお礼

回答ありがとうございました

お礼日時:2007/03/08 14:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報