home bbs files messages ]

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