回答編集履歴
1
2024/05/10 09:34 のコメントを受けてコードとコメントを追記しました。
test
CHANGED
@@ -61,6 +61,7 @@
|
|
61
61
|
|
62
62
|
'トランザクション処理の開始
|
63
63
|
ws.BeginTrans
|
64
|
+
'以降のコードにおいて何らかの実行時エラーが発生した場合はロールバック処理とエラー時処理を実行するようにする
|
64
65
|
On Error GoTo RollBack_複写コマンド_Click
|
65
66
|
|
66
67
|
With rsDestination
|
@@ -83,9 +84,9 @@
|
|
83
84
|
lngNewEstimateId = ![見積番号]
|
84
85
|
End With
|
85
86
|
|
86
|
-
|
87
87
|
'従属テーブルのレコードの複写
|
88
88
|
|
89
|
+
'テーブル[見積加工]にレコードを追加する SQL 文
|
89
90
|
strSQL = "INSERT INTO [見積加工] ([見積番号], [工程コード], [工数], [分類名], [順番])" & _
|
90
91
|
" SELECT " & lngNewEstimateId & " AS [新規見積番号], [工程コード], [工数], [分類名], [順番]" & _
|
91
92
|
" FROM [見積加工]" & _
|
@@ -94,14 +95,26 @@
|
|
94
95
|
|
95
96
|
Debug.Print strSQL
|
96
97
|
db.Execute strSQL, dbFailOnError
|
97
|
-
|
98
|
+
|
98
|
-
'コ
|
99
|
+
'テーブル[見積部材]にレコードを追加する SQL 文
|
100
|
+
strSQL = "INSERT INTO [見積部材] ([見積番号], [品名ID], [品群名], [数量])" & _
|
101
|
+
" SELECT " & lngNewEstimateId & " AS [新規見積番号], [品名ID], [品群名], [数量]" & _
|
102
|
+
" FROM [見積部材]" & _
|
103
|
+
" WHERE [見積番号] = " & lngSourceEstimateId & _
|
104
|
+
" ORDER BY [見積部材ID];"
|
105
|
+
|
106
|
+
Debug.Print strSQL
|
107
|
+
db.Execute strSQL, dbFailOnError
|
108
|
+
|
109
|
+
'コミット(ws.BeginTrans メソッドの呼び出し後以降に行われた全てのデータの変更を反映させ、トランザクション処理を終了する)
|
99
110
|
ws.CommitTrans
|
111
|
+
'以降のコードにおいて何らかの実行時エラーが発生した場合はエラー時処理を実行するようにする
|
100
112
|
On Error GoTo Err_複写コマンド_Click
|
101
113
|
|
102
114
|
Me.Requery
|
103
115
|
DoCmd.SearchForRecord acDataForm, Me.Name, , "[見積番号]=" & lngNewEstimateId
|
104
116
|
|
117
|
+
'終了処理
|
105
118
|
Exit_複写コマンド_Click:
|
106
119
|
On Error Resume Next
|
107
120
|
|
@@ -113,9 +126,10 @@
|
|
113
126
|
Exit Sub
|
114
127
|
|
115
128
|
RollBack_複写コマンド_Click:
|
116
|
-
'ロールバック
|
129
|
+
'ロールバック(変更された全てのデータを ws.BeginTrans メソッドの呼び出し前の状態に戻し、トランザクション処理を終了する)
|
117
130
|
ws.Rollback
|
118
131
|
|
132
|
+
'エラー時処理
|
119
133
|
Err_複写コマンド_Click:
|
120
134
|
|
121
135
|
strErrTitle = "実行時エラー (" & Me.Name & ".複写コマンド_Click)"
|