List 7-101 FormStockフォームのBTN_DELETE_Clickプロシージャ


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