List 7-156 FormEditSlipDetailフォームのFillComboプロシージャ
1: Private g_objRec As ADODB.Recordset
2:
3: Private Sub FillCombo(SetFocusID As Long)
4: ' 製品名を格納するCOMBO_PRODUCTコンボボックスに
5: ' 現在登録されている製品一覧を登録する
6: ' 【引数】
7: ' SetFocusID = コンボボックスに入れたあと,この引数に指定した
8: ' レコードIDを持つものが選択状態になる
9: ' 【戻り値】
10: ' なし
11: Dim objProduct As Business.Product
12: Dim SelIndex As Long
13:
14: ' 製品名の一覧を得る
15: On Error GoTo ErrHandle
16:
17: Set objProduct = CreateObject("Business.Product")
18: Set g_objRec = objProduct.GetProducts()
19:
20: ' 取得した製品名の一覧をコンボボックスに加える
21: COMBO_PRODUCT.Clear
22:
23: SelIndex = -1
24: While Not g_objRec.EOF
25: If g_objRec.Fields("DELETEDFLAG").Value = False Then
26: ' 削除ずみでなければコンボボックスに追加する
27: COMBO_PRODUCT.AddItem g_objRec.Fields("PRODUCTNAME").Value
28: COMBO_PRODUCT.ItemData(COMBO_PRODUCT.NewIndex) = g_objRec.Fields("ID").Value
29:
30: ' 引数に指定されたのと同じ製品番号があれば,そのインデックスを記録しておく
31: If g_objRec.Fields("ID").Value = SetFocusID Then
32: SelIndex = COMBO_PRODUCT.NewIndex
33: End If
34: End If
35: g_objRec.MoveNext
36: Wend
37:
38: ' 引数で指定された製品番号を選択状態にする
39: COMBO_PRODUCT.listIndex = SelIndex
40:
41: Set objProduct = Nothing
42:
43: Exit Sub
44:
45: ErrHandle:
46: ' エラーハンドラ
47: MsgBox Err.Description, vbOKOnly, "明細情報の編集エラー"
48: Set objProduct = Nothing
49: Set g_objRec = Nothing
50: End Sub