Solved

check each letter and remove

Posted on 2011-03-23
6
235 Views
Last Modified: 2012-05-11
str1: "CLIO EXTREME TOM TOM (75)"
str2: "CLIO EXTREME TOMTOM (75)"

I would like to traverse each character in str1 if i find it in str2 remove that character from str2

if what remains is a space then that remains the only difference in the strings so flag it as false

this will allow me to ignore strings that have done this TOM TOM vs TOMTOM and by doing this character by character it doesnt matter if they rearranged the words.

I am working in vba

0
Comment
Question by:PeterBaileyUk
  • 4
6 Comments
 
LVL 17

Expert Comment

by:JezWalters
ID: 35196951
Wouldn't removing all spaces from both strings, and then comparing the strings give you the same result?
0
 
LVL 84

Accepted Solution

by:
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 250 total points
ID: 35196960
Have you looked into Soundex algorithms (i.e. "fuzzy matches") for these operations? Soundex algorithms can determine if one set of characters very closely mimics another, which is (basically) what you're trying to do.

http://allenbrowne.com/vba-Soundex.html
0
 

Author Comment

by:PeterBaileyUk
ID: 35196964
botj interesting yes to Jez and i will look at the fuzzy logic
0
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.

 
LVL 17

Assisted Solution

by:JezWalters
JezWalters earned 250 total points
ID: 35197003
You can remove spaces like this:
Option Explicit        ' Force explicit variable declaration
Option Compare Binary  ' Perform case-sensitive comparisons

Public Function RemoveSpace(pvarStrOption Explicit        ' Force explicit variable declaration
Option Compare Binary  ' Perform case-sensitive comparisons

Public Function RemoveSpace(pvarString As Variant) As String

    ' Declare variables
    Dim lngCharacter As Long

    ' Process string
    RemoveSpace = Nz(pvarString)  ' Cope with Null
    For lngCharacter = 1 To Len(RemoveSpace)
        If Mid(RemoveSpace, lngCharacter, 1) = " " Then
            RemoveSpace = Left(RemoveSpace, lngCharacter - 1) & Mid(RemoveSpace, lngCharacter + 1)
        End If
    Next

End Function

Open in new window

0
 
LVL 17

Expert Comment

by:JezWalters
ID: 35197012
Once you've created this function, you can use it in a query like this:

SELECT *, RemoveSpace(YourField1) <> RemoveSpace(YourField2) As Different
FROM YourTable
0
 
LVL 17

Expert Comment

by:JezWalters
ID: 35197052
How do you want to handle different capitalisation between the two strings?
0

Featured Post

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.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
vba DCount with 2 criteria 3 34
Unrecognized Database Format 8 91
I need to be able to get MAX(date)-1 from table. 4 26
format date field on certain entries 8 28
In the article entitled Working with Objects – Part 1 (http://www.experts-exchange.com/Microsoft/Development/MS_Access/A_4942-Working-with-Objects-Part-1.html), you learned the basics of working with objects, properties, methods, and events. In Work…
A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
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 …

910 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