|
|
|
| есть текстовое поле вида
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 | |
|
| |
|
|
|
| спасибо други - будем искать | |
|
| |