
September 15th 06, 10:18 PM
posted to microsoft.public.outlook.program_vba
|
|
Number only in a textbox
Yes, this looks easier. I'll give this a try.
Sue Mosher [MVP-Outlook] wrote:
Well, for one thing, you need 5, not 4, and another close parenthesis:
IsNumeric(Item.UserProperties("Year")) = False
That kind of complex If block is too hard to debug for my taste. The way you have it written, all three tests are conducted for every value. Instead, you should only need to conduct all three for entries with 1 to 4 characters. I'd organize it like this:
strYear = Item.UserProperties("Year")
blnIsBad = False
If Len(strYear) 4 Then
blnIsBad = True
ElseIf Len(strYear) 0 Then
If Not IsNumeric(strYear) Then
blnIsBad = True
End If
End If
If blnIsBad = True Then
msgbox "Invalid. Must be 4-digits and no letters"
End If
--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003
http://www.turtleflock.com/olconfig/index.htm
and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/jumpstart.aspx
wrote in message oups.com...
Has anyone done this?
I'm trying to make a textbox called, Year, and it should be the
following:
- Allow Null Values
- Must be 4-digits (numbers), no less or not greater.
I tried using this logic:
If Len(Item.UserProperties("Year").Value) 0 And
Len(Item.UserProperties("Year").Value) 4 And
IsNumeric(Item.UserProperties("Year") = False Then
msgbox("Invalid. Must be 4-digits and no letters")
End If
For some reason it doesn't go through the IsNumeric() part. So I tried
searching for a Key event method and it's seems like Outlook doesn't
have such a thing... or I could be wrong.
Also, I've tried using a Number field, but it keeps default the value
with 0 which I can't get rid of.
Any suggestions? Any thoughts would be much appreciated.
|