あと当たり前だけど、エラーは例外を基本とすること。
戻り値をエラーに値として使ってはいけない。

これらのことを合わせると以下の様な構造になる。


Sub main
On Error Goto ErrHandler
 コネクション作成
 トランザクション開始

 データベース処理

 コミット
Exit Sub
ErrHandler:
 エラー処理(ロールバック)
End Sub