Total Visual SourceBook

Total Visual SourceBook CD and Printed Manual

Microsoft Access/ Office 2016, 2013, 2010, and 2007 Version
is Shipping!

New features in Total Visual SourceBook for Access, Office 2007 and VB6

Supports Access/Office 2016, 2013, 2010 and 2007, and Visual Basic 6.0!

Separate version for Access/Office 2003, 2002, and 2000.

Separate version for:
Access 97/95

View all FMS products for Microsoft AccessAll Our Microsoft Access Products

SourceBook Info:

Why SourceBook?


"The code is exactly how I would like to write code and the algorithms used are very efficient and well-documented."

Van T. Dinh, Microsoft MVP




Microsoft Access, Office/VBA, VB6 Modules royalty-free source code libraryMicrosoft Access Modules royalty-free source code libraryMicrosoft Access VBA and VB6 Module Library Free trial of Total Visual SourceBook for Microsoft Access, Office, VB6 and VBA

Class: FuzzyStringSearch in Category General VBA/VB6 : Searching and Sorting from Total Visual SourceBook

Approximate text matching using fuzzy string searching in VBA and VB6.

Procedure List

Procedure Name



(Declarations) Declarations Declarations and private variables for the CFuzzyStringSearch class
CaseSensitive Property Determine whether or not the search is case sensitive. This property must be set before the FindText and Text properties.
FindText Property Get the search text
MaxCharacterDifference Property Get the maximum number of different characters allowed for a match
Text Property Get the text that is being searched
Class_Initialize Initialize Set initial values to defaults which may be overridden with property settings
FindNext Method Finds the next matching string. This function increments the index into the search buffer each time it is called. To begin searching from the beginning of the search buffer, call the Reset method.
Reset Method Reset the search

Example Code for Using Class: FuzzyStringSearch

' Example of CFuzzyStringSearch
' To use this example, create a new module and paste this code into it.
' Then run the procedure by putting the cursor in the procedure and pressing:
'    F5 to run it, or
'    F8 to step through it line-by-line (see the Debug menu for more options)

Public Sub Example_CFuzzyStringSearch()
  ' Comments: Example of using class CFuzzyStringSearch to perform fuzzy string searching in VBA and VB6.
  '           See the results in the Immediate Window.

  Const cstrText As String = "Apples apricots bananas blueberries cherries kiwi peaches pears pineapples raspberries strawberries"
  Dim clsFuzzyStringSearch As CFuzzyStringSearch
  Dim lngFindStart As Long
  Dim lngFindLength As Long
  Dim intDifferences As Integer
  Dim intLoop As Integer
  Dim strFind As String

  Set clsFuzzyStringSearch = New CFuzzyStringSearch

  With clsFuzzyStringSearch
    ' Set whether it's case sensitive or insensitive searching before loading the text
    .CaseSensitive = True
    .MaxCharacterDifference = 1

    ' Text to be searched
    .Text = cstrText

    ' Search for a different term in each loop
    For intLoop = 1 To 4
      ' Text to find
      Select Case intLoop
        Case 1
          strFind = "apples"
        Case 2
          strFind = "apple"
        Case 3
          strFind = "aple"
        Case 4
          strFind = "berry"
      End Select

      .FindText = strFind

      ' Keep searching the string for each occurrence
      Debug.Print "Search for: " & strFind
      Do While .FindNext(lngFindStart, lngFindLength, intDifferences)
        ' Show the character where it's found and the number of character differences
        Debug.Print lngFindStart, intDifferences, Mid$(cstrText, lngFindStart, lngFindLength)

      ' Reset for next search so it starts from the beginning
    Next intLoop
  End With

  Set clsFuzzyStringSearch = Nothing

End Sub

Microsoft Access Module LibraryOverview of Total Visual SourceBook

The source code in Total Visual SourceBook includes modules and classes for Microsoft Access, Visual Basic 6 (VB6), and Visual Basic for Applications (VBA) developers. Easily add this professionally written, tested, and documented royalty-free code into your applications to simplify your application development efforts.

Additional Resources