List 7-32 修正したFormCustomerフォームのForm_Loadプロシージャ(変更部分は赤色で示した)
1: Private Sub Form_Load()
2: ' フォームがロードされたときの処理
3: Dim objUtility As Business.Utility
4: Dim enableFlag As Boolean
5:
6: ' ユーザーの権限によって,一部のボタンを不可視にする
7: On Error GoTo ErrHandle
8:
9: Set objUtility = CreateObject("Business.Utility")
10:
11: ' ユーザーのロールを取得する
12: g_uRole = objUtility.GetUserInRole()
13:
14: If g_uRole And (ROLE_ALLADMIN Or ROLE_SALES Or _
ROLE_SALESADMIN Or ROLE_SALESMANAGER Or _
ROLE_ACCOUNTING Or ROLE_ACCOUNTINGADMIN) Then
15: ' 編集権限を持っている
16: enableFlag = True
17: Else
18: ' 編集権限がない
19: enableFlag = False
20: End If
21:
22: BTN_NEW.Visible = enableFlag
23: BTN_DELETE.Visible = enableFlag
24:
25: ' 編集ボタンを詳細というラベルに変更するかどうか
26: BTN_EDIT.Visible = True
27: If enableFlag Then
28: BTN_EDIT.Caption = "編集"
29: Else
30 BTN_EDIT.Caption = "詳細"
31: End If
32:
33: If g_uRole And (ROLE_ALLADMIN Or ROLE_SALESADMIN) Then
34: ' 復活権限を持っている
35: enableFlag = True
36: Else
37: ' 復活権限を持っていない
38: enableFlag = False
39: End If
40:
41: BTN_UNDELETE.Visible = enableFlag
42:
43: Set objUtility = Nothing
44:
45: ' データグリッドの中身を最新の情報に更新する
46: g_Order = "ID"
47: RefreshData
48: ' ComboBoxにデータグリッドコントロール内の列名を移す
49: SetFieldList
50: Exit Sub
51:
52: ErrHandle:
53: ' エラーが発生した
54: MsgBox Err.Description, vbOKOnly, "顧客情報の環境設定エラー"
55: Set objUtility = Nothing
56: End Sub