if you are using a Form and the form is a Single Form, you can set the format on the current event of the
form (not tested):
Private Sub Form_Current()
Dim fmt As String
fmt="@"
SELECT CASE True
CASE [theTextbox] = 0
fmt="-"
Case [theTextbox] >=1 Or [theTextbox] <= -1
fmt= "#"
Case...