запрос?

pensionnik
Дата: 23.11.2006 22:07:55
помогите сообразить запрос:
первый этап - имеется текстовое поле, необходимо выбрать записи, в которых присутствуют группы цифр (от 3 до 7)
этап второй - извлечь эти группы и занести в другое поле с преобразованием в числовое значение
спасибо
Karfaqen
Дата: 23.11.2006 23:08:33
pensionnik
имеется текстовое поле, необходимо выбрать записи, в которых присутствуют группы цифр (от 3 до 7)
В смысле там есть цифры от 3 до 7, или там от 3 до 7 разных групп цифр? Записи с цифрами в поле можно выбрать так, например:
SELECT * FROM [ИмяТаблицы] WHERE [ИмяПоля] LIKE "*[0-9]*"

pensionnik
извлечь эти группы и занести в другое поле с преобразованием в числовое значение
Тут, ИМХО, посимвольный разбор строки в VBA: см. Recordset, Mid(), Len(), Val().
Владимир Саныч
Дата: 23.11.2006 23:35:21
Насколько я понял, имеется в виду, что идут от 3 до 7 цифр подряд. Тогда я бы сделал функцию, которая для каждого стринга составляет другой стринг, в котором цифрам соответствуют (например) плюсы, а другим символам (например) пробелы, а потом ищет в этом новом стринге последовательности из 3 (или сколько надо) символов подряд.
pensionnik
Дата: 25.11.2006 18:09:15
Спасибо! Попытаюсь применить на практике. Что не получится, спрошу.
Владимир Саныч
Дата: 25.11.2006 18:29:34
Вот функция, которая работает чуть иначе, чем я сказал.

Sub x(ByVal s As String)
Dim i As Integer, v As Variant
For i = 1 To Len(s)
    If Not IsNumeric(Mid(s, i, 1)) Then Mid(s, i, 1) = " "
Next
For Each v In Split(s, " ")
    If Len(v) >= 3 And Len(v) <= 7 Then Debug.Print Val(v)
Next
End Sub

Вот пример ее запуска.

x("111xx22yyyyy88888z444444444444")
 111 
 88888