List 6-56 DataObj.ProductコンポーネントのGetRecordメソッド
1: Public Sub GetRecord(ByVal ProductID As Long, _
ByRef PRODUCTNAME As Variant, ByRef YOMIGANA As Variant, _
ByRef PRICE As Variant, ByRef STOCK As Variant, _
ByRef MEMO As Variant, ByRef BACKORDER As Variant, _
ByRef MADEUSER As Variant, ByRef MADEDATE As Variant, _
ByRef LASTUSER As Variant, ByRef LASTDATE As Variant)
2: ' 製品情報テーブル内の指定された製品番号の製品情報を返す
3: ' 【引数】
4: ' ProductID = 読み出したい製品を特定する製品番号を指定する
5: ' PRODUCTNAME = 指定された製品の製品名が格納される
6: ' YOMIGANA = 指定された製品の製品名のよみがなが格納される
7: ' PRICE = 指定された製品の価格が格納される
8: ' STOCK = 指定された製品の在庫数が格納される
9: ' MEMO = 指定された製品の摘要が格納される
10: ' BACKORDER = 指定された製品の予約数が格納される
11: ' MADEUSER = 指定された製品を登録したユーザー名が格納される
12: ' MADEDATE = 指定された製品が登録された日時が格納される
13: ' LASTUSER = 指定された製品の最終更新ユーザー名が格納される
14: ' LASTDATE = 指定された製品の最終更新日時が格納される
15: ' 【戻り値】
16: ' なし
17: Dim objContext As ObjectContext
18: Dim objRec As ADODB.Recordset
19:
20: ' オブジェクトコンテキストの取得
21: Set objContext = GetObjectContext()
22:
23: ' エラーハンドラの設定
24: On Error GoTo ErrHandle
25:
26: ' 指定された製品番号の製品情報を得る
27: Set objRec = CreateObject("ADODB.Recordset")
28: objRec.Open "SELECT * FROM 製品情報 WHERE ID=" & ProductID, _
g_DBConnection, adOpenForwardOnly, adLockReadOnly, adCmdText
29:
30: If objRec.EOF Then
31: Err.Raise Errorcode.Err_NotFound, App.Title, _
"指定された製品番号を持つ製品が見つかりません"
32: End If
33:
34: ' 取得したデータを戻り値に設定
35: PRODUCTNAME = objRec.Fields("PRODUCTNAME").Value
36: YOMIGANA = objRec.Fields("YOMIGANA").Value
37: PRICE = objRec.Fields("PRICE").Value
38: STOCK = objRec.Fields("STOCK").Value
39: MEMO = objRec.Fields("MEMO").Value
40: BACKORDER = objRec.Fields("BACKORDER").Value
41: MADEUSER = objRec.Fields("MADEUSER").Value
42: MADEDATE = objRec.Fields("MADEDATE").Value
43: LASTUSER = objRec.Fields("LASTUSER").Value
44: LASTDATE = objRec.Fields("LASTDATE").Value
45:
46: ' データベースとの接続を閉じてレコードセットを解放
47: objRec.Close
48: Set objRec = Nothing
49:
50: ' コミットする
51: objContext.SetComplete
52:
53: ' オブジェクトコンテキストの解放
54: Set objContext = Nothing
55:
56: Exit Sub
57:
58: ErrHandle:
59: ' エラーハンドラ
60: objContext.SetAbort
61: Set objContext = Nothing
62: Set objRec = Nothing
63:
64: ' エラーの再発行
65: Err.Raise Err.Number, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
66: End Sub