?
Solved

Access 2003 chaeck field to see if it contains a certain pattern

Posted on 2011-03-02
5
Medium Priority
?
318 Views
Last Modified: 2012-05-11
Hi There,

I have a 12 digit field.
I want to be able to check if anywhere in that string it contains 4 consecutive non numeric characters.

eg

1BLT010001   No
2POLK1000    Yes
POL1000        NO
POLK9999      yes

Any Ideas
0
Comment
Question by:EWHTLC
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 120

Assisted Solution

by:Rey Obrero (Capricorn1)
Rey Obrero (Capricorn1) earned 1000 total points
ID: 35017059
you will need a function to do that, place this codes in a regular module
is there a possibility to have more than 4 consecutive Alpha characters


function count4Alpha(str) as boolean
count4Alpha=false
if len(str) < 4 then count4Alpha=False: exit function

dim j, strA as string, xCnt as integer
strA="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for j=1 to len(str)
      if  instr(strA,mid(str,j,1))>0 then
         xCnt=xcnt +1
         if xcnt>=4 then
             count4Alpha=true
             exit function
         end if
         else
         xCnt=0
     end if
next

end function



you can use the function in a query like this

select [field], count4Alpha([field])
fro tableName
0
 
LVL 11

Accepted Solution

by:
LambertHeenan earned 1000 total points
ID: 35018166
Here is an alternative function that checks for any desired number of alpha characters in a row...


function strNStringAlpha(strInput, nConsecutive) as string
' Checks it there is any string of nConsecutive Alpha characters
' (A-Z, a-z) and returns the string if found
dim nLen as Long
dim n as Long
dim c as String 
dim strResult as string 
dim nAlpha
	nLen = Len(strInput)
	For n = 1 to nLen
		c = Ucase(mid(strInput,n,1))
		If c >="A" and c <= "Z" then
			nAlpha = nAlpha + 1
			strResult = strResult & mid(strInput,n,1)
			if nAlpha = nConsecutive then
				Exit For
			End If
		Else
			nAlpha = 0
			strResult = ""
		End If
	Next N
	strNStringAlpha = strResult
End Function

Open in new window

0
 

Author Comment

by:EWHTLC
ID: 35019666
Both Solutions worked a treat.
2nd one slightly better in that it looked for 4 consecutives.

Brilliant response.

Thanks you for your time

Will split the points.
0
 

Author Closing Comment

by:EWHTLC
ID: 35019676
thanks
0
 
LVL 11

Expert Comment

by:LambertHeenan
ID: 35019912
My pleasure.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

Phishing attempts can come in all forms, shapes and sizes. No matter how familiar you think you are with them, always remember to take extra precaution when opening an email with attachments or links.
Did you know that more than 4 billion data records have been recorded as lost or stolen since 2013? It was a staggering number brought to our attention during last week’s ManageEngine webinar, where attendees received a comprehensive look at the ma…
In Microsoft Access, learn the trick to repeating sub-report headings at the top of each page. The problem with sub-reports and headings: Add a dummy group to the sub report using the expression =1: Set the “Repeat Section” property of the dummy…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Suggested Courses

800 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