![]() |
If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
![]()
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. |
#2
|
|||
|
|||
![]()
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. |
#3
|
|||
|
|||
![]()
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. |
#4
|
|||
|
|||
![]()
Okay. So I did some tweaking to what you gave me and it seems to be
work correctly... At least I think it does. strYear = Item.UserProperties("Year").Value blnIsYear = False If Len(strYear) 0 and Len(StrYear) 4 Then blnIsYear = True ElseIf Len(strYear) 0 Then If Not IsNumeric(strYear) Then blnIsYear = True End If End If If blnIsYear = True Then msbox("Year must be 4-digits and no letters") End If Thanks for your input, Sue. 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. |
#5
|
|||
|
|||
![]()
You might want to rename your Boolean flag to something like blnIsNotAYear to make the code more readable.
-- 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 "nabeyaki-udon" wrote in message oups.com... Okay. So I did some tweaking to what you gave me and it seems to be work correctly... At least I think it does. strYear = Item.UserProperties("Year").Value blnIsYear = False If Len(strYear) 0 and Len(StrYear) 4 Then blnIsYear = True ElseIf Len(strYear) 0 Then If Not IsNumeric(strYear) Then blnIsYear = True End If End If If blnIsYear = True Then msbox("Year must be 4-digits and no letters") End If Thanks for your input, Sue. 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 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. |
#6
|
|||
|
|||
![]()
Yes. That will make it easier for someone else.
Thanks again! Sue Mosher [MVP-Outlook] wrote: You might want to rename your Boolean flag to something like blnIsNotAYear to make the code more readable. -- 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 "nabeyaki-udon" wrote in message oups.com... Okay. So I did some tweaking to what you gave me and it seems to be work correctly... At least I think it does. strYear = Item.UserProperties("Year").Value blnIsYear = False If Len(strYear) 0 and Len(StrYear) 4 Then blnIsYear = True ElseIf Len(strYear) 0 Then If Not IsNumeric(strYear) Then blnIsYear = True End If End If If blnIsYear = True Then msbox("Year must be 4-digits and no letters") End If Thanks for your input, Sue. 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 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. |
#7
|
|||
|
|||
![]()
Also, thanks helping me out with the logic. I didn't know you could do
nested if's in VBScript. 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. |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Populating one textbox using another? | Zer0 | Outlook - General Queries | 3 | August 4th 06 07:57 PM |
Enable Disable the To textbox | [email protected] | Outlook - Using Forms | 1 | May 23rd 06 09:54 PM |
cant overtype on custom form textbox | Sydney | Outlook - Using Forms | 18 | April 7th 06 05:58 AM |
Textbox in forms | Lorena | Outlook - Using Forms | 1 | April 7th 06 12:19 AM |
Textbox - Calculate Inititial Value | Sydney | Outlook - Using Forms | 2 | March 28th 06 01:26 AM |