Solved

function to see if a word has a number in it

Posted on 2014-09-13
9
170 Views
Last Modified: 2014-09-14
I need to see if a word has any numerals in it:

"String!"= false
"string12" = true
"1245" =true
"1245six"=true
"str13str"=true

not sure how to do that part

I can grab the strings and split them and put them into an array

not sure how to achieve the function.
am in vba
0
Comment
Question by:PeterBaileyUk
  • 3
  • 3
  • 2
  • +1
9 Comments
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 40320928
? (" " & "asd1" & " ") like "*[1-9]*"
0
 

Author Comment

by:PeterBaileyUk
ID: 40320966
i need to test within a for loop in vba

for the second word in the wordarray(index)

check if word has numerals
if yes out true

next wordarray
0
 

Author Comment

by:PeterBaileyUk
ID: 40320967
hence need of a function
0
 
LVL 119

Assisted Solution

by:Rey Obrero
Rey Obrero earned 167 total points
ID: 40320996
dim j as integer
for j=1 to len(wordarray(index))
      if isnumeric(mid(wordarray(index),j,1)) then
         numberexists=true
         exit for
      end if
next
0
Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 
LVL 47

Assisted Solution

by:Dale Fye (Access MVP)
Dale Fye (Access MVP) earned 166 total points
ID: 40321003
Rey,

he didn't say he wanted to know whether it isNumeric() the OP stated "I need to see if a word has any numerals in it", with examples of:

"String!"= false
"string12" = true

Peter, since you done describe the for loop criteria, here is an example

For intloop = 1 to intSomething

   If WordArray(1) LIKE "*[0-9]*" Then
       'do something here
   Endif

Next
0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 40321008
Dale,
better read the codes I posted carefully..
0
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 40321023
My bad, thought you were looping through his array.

Still, way more cumbersome than a simple Like comparison.

Dale
0
 
LVL 27

Accepted Solution

by:
MacroShadow earned 167 total points
ID: 40321162
Or you can use regular expressions:
Sub Demo()
    Dim strArray() As String
    Dim i As Integer

    strArray = Split("String! string12 1245 1245six str13str", " ")

    For i = LBound(strArray) To UBound(strArray)
        If fContainsNumerals(strArray(i)) Then
            MsgBox "Array element " & i & ": " & strArray(i) & " contains numerals!"
        Else
            MsgBox "Array element " & i & ": " & strArray(i) & " doesn't contains numerals!"
        End If
    Next
End Sub

Function fContainsNumerals(ByVal strInput As String) As Variant

    With CreateObject("VbScript.RegExp")
        .Global = True
        .Pattern = "[^\D]"
        fContainsNumerals = .test(strInput)
    End With

End Function

Open in new window

0
 

Author Closing Comment

by:PeterBaileyUk
ID: 40321474
ok guys i have shared the points hope that remains acceptable.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Most if not all databases provide tools to filter data; even simple mail-merge programs might offer basic filtering capabilities. This is so important that, although Access has many built-in features to help the user in this task, developers often n…
Experts-Exchange is a great place to come for help with solutions for your database issues, and many problems are resolved within minutes of being posted.  Others take a little more time and effort and often providing a sample database is very helpf…
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

929 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now