I'd add a .Repaint and a DoEvents
I'd also store Format(Percent, "0#%") to see if I needed to do anything since I wouldn't want to update for each of 10,000 records only when the % changes (i.e. 100 times), to avoid flicker, etc.
Dim PrevPercent as string
Private Sub UpdateProgress(Percent As Integer)
If Format(Percent, "0#%") = PrevPercent then Exit Sub
If Percent < 100 Then
frmProgressBar.Bar1.Width = Percent * 2
frmProgressBar.Caption = Percent & "% Complete"
frmProgressBar.Repaint
DoEvents
Endif
End Sub
If it'll help, this is an extract of the PB I use. I put it into a class (mostly because I wanted to) but it might give you ideas