例:フィールドの検証

この例では、単一フィールド値を検証する方法を例示します。たとえば、次のコード・セグメントは、特定グループに属すユーザが不具合の優先度を下げられないようする方法を示します。

この例では、ユーザが QATester グループに属していて、[BG_PRIORITY]フィールドを変更する場合、[BG_PRIORITY]フィールドの新しい値を現在の値よりも下げることはできません。

この例では、プロジェクトの[優先度]フィールド・リストが、値を昇順にソートしたときに小さい優先度が先頭になることを前提としています。たとえば、次の要素であれば、リストはこの要件を満たします。1 - 低い、2 - 普通、3 - 高い

Bug_FieldCanChange イベント・プロシージャにコードを追加して、ユーザが不具合のフィールド値を変更しようとするとトリガされるようにします。

Function Bug_FieldCanChange(FieldName, NewValue)
        ' 関数の戻り値を初期化して、
	' 予期しない動作を防ぎます。
        Bug_FieldCanChange = True
        On Error Resume Next
        If User.IsInGroup("QATester") and FieldName ="BG_PRIORITY" _
	 Then
            If NewValue < Bug_Fields("BG_PRIORITY").Value then
                Bug_FieldCanChange = False
                msgbox "不具合の優先度" _
		 & "を下げるアクセス許可がありません。"
            Else
                Bug_FieldCanChange = True
            End If
        Else
            ' コードをここに入力します
        End If
        PrintError "Bug_FieldCanChange"
        On Error GoTo 0
End Function