Why are you
protecting the document before updating the fields fields, then
unprotecting it afterwards? That shouldn't be necessary and seems a strange way to go about things. Try:
Code:
Sub UpdateFields()
Application.ScreenUpdating = False
With ActiveDocument
.Fields.Update
.PrintPreview
.ClosePrintPreview
End With
Application.ScreenUpdating = True
End Sub