16

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?

Benjamin Brauer
  • 368
  • 1
  • 5
  • 19

2 Answers2

27

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/

BenV
  • 12,052
  • 13
  • 64
  • 92
4

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

MarredCheese
  • 17,541
  • 8
  • 92
  • 91
Fionnuala
  • 90,370
  • 7
  • 114
  • 152