List 6-124 DataObj.SlipDetailコンポーネントのGetSubTotalメソッド
1: Public Function GetSubTotal(ByVal SlipID As Long) As Currency
2: ' 指定された伝票の小計(税抜)を戻り値として返す
3: ' 【引数】
4: ' SlipID = 小計を計算したい伝票の伝票番号
5: ' 【戻り値】
6: ' 指定された伝票の小計
7: Dim objContext As ObjectContext
8: Dim objRec As ADODB.Recordset
9: Dim strSQL As String
10:
11: ' オブジェクトコンテキストの取得
12: Set objContext = GetObjectContext()
13:
14: ' エラーハンドラの設定
15: On Error GoTo ErrHandle
16:
17: ' データベースと接続して小計値を取得
18: Set objRec = CreateObject("ADODB.Recordset")
19: strSQL = "SELECT SUM(PRICE) As SUMTOTAL FROM 明細情報" & _
" WHERE SLIPID=" & SlipID & _
" AND DELETEDFLAG=0 GROUP BY PRICE"
20: objRec.Open strSQL, g_DBConnection, adOpenForwardOnly, _
adLockReadOnly, adCmdText
21:
22: If objRec.EOF Then
23: ' 明細がない
24: GetSubTotal = 0
25: Else
26: ' 明細がある
27: GetSubTotal = objRec.Fields("SUMTOTAL").Value
28: End If
29:
30: ' データベースとの接続を閉じてレコードセットを解放
31: objRec.Close
32: Set objRec = Nothing
33:
34: ' トランザクションをコミット
35: objContext.SetComplete
36:
37: ' オブジェクトコンテキストの解放
38: Set objContext = Nothing
39:
40: Exit Function
41:
42: ErrHandle:
43: ' エラーハンドラ
44: objContext.SetAbort
45:
46: Set objContext = Nothing
47: Set objRec = Nothing
48:
49: GetSubTotal = 0
50: ' エラーの再発行
51: Err.Raise Err.NUMBER, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
52: End Function