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