Microsoft office Access " как " VS " регулярное выражение`
у меня возникли проблемы с термином ключа доступа LIKE
и это использовать. Я хочу использовать следующее регулярное выражение (регулярное выражение) в форме запроса как своего рода "правила верификации", где LIKE
оператор фильтрует мои результаты:
"^[0]{1}[0-9]{8,9}$"
как это сделать?
2 ответов
Я не думаю, что доступ позволяет регулярное выражение матчей (за исключением VBA, но это не то, что вы спрашиваете). The LIKE
оператор даже не поддерживает чередование.
поэтому вам нужно разделить его на два выражения.
... WHERE (Blah LIKE "0#########") OR (Blah LIKE "0########")
(#
означает "одна цифра" в Access).
Я знаю, что вы не спрашивали о VBA, но, возможно, вы дадите ему шанс
Если вы открываете проект VBA, вставьте новый модуль, затем выберите Инструменты -> Ссылки и добавить ссылку Регулярные Выражения Microsoft VBScript 5.5. Учитывая, что pate код ниже для вновь вставленного модуля.
Function my_regexp(ByRef sIn As String, ByVal mypattern As String) As String
Dim r As New RegExp
Dim colMatches As MatchCollection
With r
.Pattern = mypattern
.IgnoreCase = True
.Global = False
.MultiLine = False
Set colMatches = .Execute(sIn)
End With
If colMatches.Count > 0 Then
my_regexp = colMatches(0).Value
Else
my_regexp = ""
End If
End Function
теперь вы можете использовать эту функцию в свой среда SQL запросы. Таким образом, ваш вопрос будет теперь решен путем вызова
SELECT my_regexp(some_variable, "^[0]{1}[0-9]{8,9}$") FROM some_table
если вернет пустую строку, если ничего не совпало.
Надеюсь, вам понравилось.