![]() |
![]() |
||
Поиск и вывод Даты внутри текстаПо материалам: http://www.cyberforum.ru/ms-access/thread2449876.html В таблице MS Access есть текстовое поле (столбец) строки которого внутри текста содержат даты или даже несколько дат в одной строке в текстовом же формате, например: Public Function OnlyDate(stroka) Dim objRegExp As Object, oMatches Dim i, s, k Set objRegExp = CreateObject("VBScript.RegExp") objRegExp.Global = True objRegExp.Pattern = "\d{1,2}[\.,/-]\d{1,2}[\.,/-]\d{2,4}" Set oMatches = objRegExp.Execute(stroka) For i = 0 To oMatches.Count - 1 k = Trim(oMatches(i)) If Left(k, 1) = "(" Then k = k & ")" s = s & "," & k Next OnlyDate = Mid(s, 2) End Function Пробуем в Immediate ?OnlyDate("... фкур птапч... 12.04.2019 или 12.04.19 ... увр ап прона...") 12.04.2019,12.04.19 ?OnlyDate("... фкур птапч... 12.04.2019 . увр ап прона...") 12.04.2019 \d{1,2} - цифры до 2 знаков ?OnlyDate("... фкур птапч... 12-04,24 ап прона...") 12-04,24
Public Function CountDates(vStroka) As Integer
'Подсчёт дат в строке
'----------------------------------------------------------------
Dim objRegExp As Object, oMatches As Object
On Error GoTo CountDates_Err
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Global = True
objRegExp.Pattern = "\d{1,2}[./-]\d{1,2}[./-]\d{2,4}"
Set oMatches = objRegExp.Execute(vStroka)
CountDates = oMatches.Count
CountDates_End:
On Error Resume Next
Set objRegExp = Nothing
Set oMatches = Nothing
Err.Clear
Exit Function
CountDates_Err:
CountDates = -1
Err.Clear
Resume CountDates_End
End Function
|
![]() ![]() |
||
L.E. 23.12.2022 |