When you need the supplier_number to be a text field in your table, then you have to write OnLostFocus event for text box
Code:
Private Sub Text0_LostFocus()
Me.supplier_number = Right("000000000" & Me.supplier_number, 9)
End Sub
or
Code:
Private Sub Text0_LostFocus()
Me.supplier_number = Format(Me.supplier_number, "000000000")
End Sub
But you have to remember, that the field is now a text. E.g. to calculate a numeric value bigger on 1 you have to use the formula
Code:
=CInt([supplier_number])+1
And for text string like supplier_number, but bigger on 1
Code:
=Format(CInt([supplier_number])+1,"000000000")
Btw, with Format function you can have various delimiters for grouping numbers in text field. And when you use only spaces for delimiters, you can convert those strings to numbers - CInt() works without problems (for me, I'm not sure about US settings - maybe with them it works with commas only in such way).
So when you use format "00 000000 0" and enter 12345, you get the string "00 001234 5", and CInt(([supplier_number]) returns 12345.
When you use format "000 000-000" and enter 123245, you get the string "000 012-345", and CInt(([supplier_number]) returns an error.