List 7-130 FormSlipフォームのBTN_DELETE_Clickプロシージャ
1: Private Sub BTN_DELETE_Click()
2: ' [削除]ボタンが押されたときの処理
3: Dim objSlip As Business.Slip
4: Dim DeletedFlag As Boolean
5: Dim beforeSlipID As Long, SlipID As Long
6:
7: ' 削除の確認
8: If MsgBox("伝票番号" & g_objRec.Fields("ID").Value & _
"のデータを削除してよろしいですか", vbYesNo, _
"削除の確認") = vbYes Then
9: ' 現在のDELETEDFLAGフィールドの値を取得する
10: DeletedFlag = g_objRec.Fields("DELETEDFLAG").Value
11: ' 現在のIDフィールドの値を取得する
12: SlipID = g_objRec.Fields("ID").Value
13:
14: On Error Resume Next
15: ' 削除後にカレント行に設定したい行のIDフィールドの値を保存しておく
16: If (g_uRole And (ROLE_ALLADMIN Or ROLE_SALESADMIN)) And _
(DeletedFlag = False) And (g_includedeleted = True) Then
17: ' AllAdminロールまたはSalesAdminロールに属していて
18: ' かつ,削除対象となったレコードのDELETEDFLAGフィールドの値が
19: ' Falseであった場合には,現在のカレント行のIDフィールドの値を記録する
20: beforeSlipID = SlipID
21: Else
22: ' そうでなければ,現在よりもうひとつうしろのIDフィールドの値を記録する
23: g_objRec.MoveNext
24: beforeSlipID = g_objRec.Fields("ID").Value
25: End If
26:
27: If Err.NUMBER <> 0 Then
28: beforeSlipID = 0
29: Err.Clear
30: End If
31:
32: On Error GoTo ErrHandle
33: ' 削除する
34: Set objSlip = CreateObject("Business.Slip")
35: objSlip.DeleteSlip SlipID
36:
37: ' データグリッドの表示を更新
38: RefreshData
39:
40: On Error Resume Next
41:
42: ' カレント行を再設定する
43: g_objRec.MoveFirst
44: g_objRec.Find "ID=" & beforeSlipID, 0, adSearchForward
45:
46: Set objSlip = Nothing
47: End If
48:
49: Exit Sub
50:
51: ErrHandle:
52: ' ビジネスオブジェクトの呼び出しに失敗
53: MsgBox Err.Description, vbOKOnly, "伝票情報の削除"
54: Set objSlip = Nothing
55: End Sub