Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.visual.basic    |    MS Visual Basic discussions, NOT dot-net    |    10,840 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 9,928 of 10,840    |
|    Rick Rothstein [MVP - Visual Basic] to All    |
|    Re: viusal basic input validation intege    |
|    28 Feb 06 15:56:12    |
      XPost: comp.programming       From: rickNOSPAMnews@NOSPAMcomcast.net              > Visual Basic (not dot net)       > what is the best way to check the User has entered an integer into an       > InputBox?              Here are two functions that I have posted in the past for similar       questions..... one is for digits only and the other is for "regular"       numbers:               Function IsDigitsOnly(Value As String) As Boolean        IsDigitsOnly = Len(Value) > 0 And _        Not Value Like "*[!0-9]*"        End Function               Function IsNumber(ByVal Value As String) As Boolean        ' Leave the next statement out if you don't        ' want to provide for plus/minus signs        If Value Like "[+-]*" Then Value = Mid$(Value, 2)        IsNumber = Not Value Like "*[!0-9.]*" And _        Not Value Like "*.*.*" And _        Len(Value) > 0 And Value <> "." And _        Value <> vbNullString        End Function              Here are revisions to the above functions that deal with the local settings       for decimal points (and thousand's separators) that are different than used       in the US (this code works in the US too, of course).               Function IsNumber(ByVal Value As String) As Boolean        Dim DP As String        ' Get local setting for decimal point        DP = Format$(0, ".")        ' Leave the next statement out if you don't        ' want to provide for plus/minus signs        If Value Like "[+-]*" Then Value = Mid$(Value, 2)        IsNumber = Not Value Like "*[!0-9" & DP & "]*" And _        Not Value Like "*" & DP & "*" & DP & "*" And _        Len(Value) > 0 And Value <> DP And _        Value <> vbNullString        End Function              I'm not as concerned by the rejection of entries that include one or more       thousand's separators, but we can handle this if we don't insist on the       thousand's separator being located in the correct positions (in other words,       we'll allow the user to include them for their own purposes... we'll just       tolerate their presence).               Function IsNumber(ByVal Value As String) As Boolean        Dim DP As String        Dim TS As String        ' Get local setting for decimal point        DP = Format$(0, ".")        ' Get local setting for thousand's separator        ' and eliminate them. Remove the next two lines        ' if you don't want your users being able to        ' type in the thousands separator at all.        TS = Mid$(Format$(1000, "#,###"), 2, 1)        Value = Replace$(Value, TS, "")        ' Leave the next statement out if you don't        ' want to provide for plus/minus signs        If Value Like "[+-]*" Then Value = Mid$(Value, 2)        IsNumber = Not Value Like "*[!0-9" & DP & "]*" And _        Not Value Like "*" & DP & "*" & DP & "*" And _        Len(Value) > 0 And Value <> DP And _        Value <> vbNullString        End Function              Rick              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca