Solved

Follow Up ? -> 2 Tables Comparison

Posted on 2004-08-03
9
339 Views
Last Modified: 2009-12-16
Please See:
http://www.experts-exchange.com/Databases/MS_Access/Q_21059341.html
http://www.experts-exchange.com/Databases/MS_Access/Q_21054826.html
http://www.experts-exchange.com/Databases/MS_Access/Q_21054509.html
------------------------------------------------------------------------------------------

Last time i promiss, I want to change the new code (See Below) to select 3 characters (instead of 2) to compare after the numbers... again ignoring spaces and caps...
Please see the previous questions to understand what it is I am trying to accomplish here...
Thanks In advance
-BassKozz

<<<START CODE>>>
Function Val1Char(strInput As String) As String
Dim i As Integer
Dim StrLenght As Integer
strInput = Replace(strInput, " ", "")
For i = 1 To Len(strInput)
    If Not IsNumeric(Mid(strInput, i, 1)) Then
         StrLenght = i + 1
         Exit For    'exit after finding the first number from left
    End If
Next i

Val1Char = IIf(StrLenght = 0, "na", Left(strInput, StrLenght))

End Function
<<<END CODE>>>
0
Comment
Question by:basskozz
  • 5
  • 4
9 Comments
 
LVL 33

Expert Comment

by:Mike Eghtebas
ID: 11711474
For three characters after first number use:

Function Val1Char(strInput As String) As String
Dim i As Integer
Dim StrLenght As Integer
strInput = Replace(strInput, " ", "")
For i = 1 To Len(strInput)
    If IsNumeric(Mid(strInput, i, 1)) Then
         StrLenght = i + 1
         Exit For    'exit after finding the first number from left
    End If
Next i

Val1Char = IIf(StrLenght = 0, "na", Mid(strInput, StrLenght , 3))

End Function
0
 
LVL 33

Expert Comment

by:Mike Eghtebas
ID: 11711506
Last example will pick:

3RTUX     first number is 3, therefor will return RTU

356RTUX     first number is 3, therefor will return 56R

----------------------------
To select RTU  form both examples, I guess what you are asking for, try:

Function Val1Char(strInput As String) As String
Dim i As Integer
Dim StrLenght As Integer
strInput = Replace(strInput, " ", "")
For i = 1 To Len(strInput)
    If Not IsNumeric(Mid(strInput, i, 1)) Then
         StrLenght = i
         Exit For    'exit after finding the first number from left
    End If
Next i

Val1Char = IIf(StrLenght = 0, "na", Mid(strInput, StrLenght , 3))

End Function
------------
Provided that your string never starts with text characters.  

Mike
0
 
LVL 33

Expert Comment

by:Mike Eghtebas
ID: 11711525
Well, if it start with string, like:

RTUX   you will get RTU using second post.
----------
If you are looking to extrach RUT from say:

ABC12RUTX

Meaning, there is going to be some numbers always, a third code is required to do that.  I will wait for your response.

Mike
0
 

Author Comment

by:basskozz
ID: 11711683
Example of what I would like it to do...

123east = 123 easxtern (123eas=123eas)
123 east = 123easxtern (123eas=123eas)
222 Smith = 222 Smitty (222smi=222smi)


Examples of what NOT to collect or match....

111 east =/ 123 east  (because numbers don't match)
111 east =/ 111 eat   (because "eas" doesn't equal "eat")

0
Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

 
LVL 33

Accepted Solution

by:
Mike Eghtebas earned 500 total points
ID: 11712152
Function Val1Char(strInput As String) As String
Dim i As Integer
Dim StrLenght As Integer
strInput = Replace(strInput, " ", "")
For i = 1 To Len(strInput)
    If Not IsNumeric(Mid(strInput, i, 1)) Then
         StrLenght = i
         Exit For    'exit after finding the first number from left
    End If
Next i

Val1Char = IIf(StrLenght = 0, "na", Left(strInput, (StrLenght , 2)))

End Function

Above function will return:

123east = 123 easxtern (123eas=123eas)
123 east = 123easxtern (123eas=123eas)
222 Smith = 222 Smitty (222smi=222smi)


Examples of what NOT to collect or match....

111 east  ---------> 111eas
111east   ---------> 111eas
123 east  ---------> 123eas
123east   ---------> 123eas
111 eat   ---------> 111eat
111eat    ---------> 111eat

Comparing them is a different story.  It ought to be handled with a the query.

Mike
0
 

Author Comment

by:basskozz
ID: 11715305
Mike,

Syntax Error :
Val1Char = IIf(StrLenght = 0, "na", Left(strInput, (StrLenght , 2)))

0
 

Author Comment

by:basskozz
ID: 11715513
It might be easier to see what the code does in my Database... so I have put up links to the database...

http://home.earthlink.net/~chrisrutter/

<<<OR>>>

http://home.earthlink.net/~chrisrutter/MLS%20Active%20Search.mdb
http://home.earthlink.net/~chrisrutter/MLS%20Active%20Search.rar


*.mdb file = 2056kb
*.rar file   = 276kb

0
 
LVL 33

Assisted Solution

by:Mike Eghtebas
Mike Eghtebas earned 500 total points
ID: 11717069
change , with + in

Val1Char = IIf(StrLenght = 0, "na", Left(strInput, (StrLenght + 2)))
0
 

Author Comment

by:basskozz
ID: 11717465
It works,
Thanks Mike

-BassKozz
0

Featured Post

Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

Question has a verified solution.

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

Today's users almost expect this to happen in all search boxes. After all, if their favourite search engine juggles with tens of thousand keywords while they type, and suggests matching phrases on the fly, why shouldn't they expect the same from you…
QuickBooks® has a great invoice interface that we were happy with for a while but that changed in 2001 through no fault of Intuit®. Our industry's unit names are dictated by RUS: the Rural Utilities Services division of USDA. Contracts contain un…
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…

867 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

21 Experts available now in Live!

Get 1:1 Help Now