| |
|
|
| | есть текстовое поле вида
1.1
1.2
1.20.1
1.7.1
нужно отсортировать "правильно", а не как текст.
1.1
1.2
1.7.1
1.20.1
срочно, запарка, а я похоже туплю  | |
| |
| |
| |
|
|
| | вчера с таким же вопросом приходили админы (им нужно ip адреса сортировать)
кроме как "разбить на триады" и преобразовать части в число ничего в голову не пришло.  | |
| |
| |
| |
|
|
| | да я и так же, но както хочется раз и на всегда  | |
| |
| |
| |
|
|
| | Еще можно привеси значения к виду:
01.01
01.02
01.07.01
01.20.01
Т.е. создать функцию, выполняющую преобразование, и сортировать запрос по ее результату. | |
| |
| |
| |
|
|
| |
Public Function StringToNum1(strParam As String) As Long
Dim i As Integer, k As Long
Dim c
Dim v
k = 0
v = Split(strParam, ".")
For i = 0 To UBound(v)
If IsNumeric(v(i)) Then
k = k * 1000 + CLng(v(i))
'Debug.Print i, "k=" & k
End If
Next
StringToNum1 = k
End Function
|
и запрос значение; StringToNum1(значение) as s
с сортировкой по s | |
| |
| |
| |
|
|
| | спасибо други - будем искать  | |
| |
| |