Regular Expressions in MS Access VBA?

28,785

Solution 1

You can use the VBScript Regex Object by adding a reference to the Microsoft VBScript Regular Expressions library.

Example usage:

Dim szLine As String  
Dim regex As New RegExp  
Dim colregmatch As MatchCollection  

With regex  
   .MultiLine = False  
   .Global = True  
   .IgnoreCase = False  
End With  

szLine = "Analyzed range (from-to)  10  100"  

regex.Pattern = "^Analyzed range"  
If regex.Test(szLine) Then  
   regex.Pattern = ".*?([0-9]+).*?([0-9]+)"  
   Set colregmatch = regex.Execute(szLine)  

   'From  
    Debug.Print colregmatch.Item(0).submatches.Item(0)  
    'To  
    Debug.Print colregmatch.Item(0).submatches.Item(1)  
End If  

Source: http://mark.biek.org/blog/2009/01/regular-expressions-in-vba/

Solution 2

You can use CreateObject("vbscript.regexp") or just reference the scripting library.

Share:
28,785
Benjamin Brauer
Author by

Benjamin Brauer

Professional Freelance Software Developer based in Berlin Area, Germany experienced mainly in Microsoft Technologies (.Net, SQL Server, Office VBA) and Fullstack Web Development on LAMP and ASP.Net

Updated on June 27, 2020

Comments

  • Benjamin Brauer
    Benjamin Brauer almost 4 years

    I definitely like MS Access as an RAD-Tool for small-scope data-driven applications. But one thing I really miss as a .Net-Developer is Regular Expressions. They really come in handy when validating user input. I really do not know why Microsoft did not put these in the standard VBA-Library.

    Is there a way to use Regular Expressions in MS Access VBA?