The former one (Function Bug_FieldCanChange(FieldName, NewValue)) is called before a change to a bug field value is made persistent. In this function, you have the possibility to check whether the change should be accepted or not. If you assign
Bug_FieldCanChange = False
the change is rejected.
The latter one (Sub Bug_FieldChange(FieldName)) is called after a change to a bug field value is made persistent. In this procedure, you may change other fields according to the new value of the changed field.
hth,
Armin