powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопросик по сортировке
9 сообщений из 9, страница 1 из 1
Вопросик по сортировке
    #32491997
dead1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблице имеется поле с номерами квартир. По этим номерам нужно красиво отсортировать, чтобы номера шли 1,2,3...,10,11... итд. Поле вообще-то текстовое. Особо одарённые умники придумали, а потом вписали туда всякий бред вроде
gar.378
gar.316A
gar. 316
g370
gar.314/315
и всякую другую лабуду. А нужно, чтобы отображались как
gar.314/315
gar. 316
gar.316A
g370
gar.378.
Подумал, что в ORDER BY надо вписать всякие функции, чтобы удалили всякую гадость до первых цифр, сразу после них оставляем один символ, всё что после так же удаляем. А вот как это сделать....
...
Рейтинг: 0 / 0
Вопросик по сортировке
    #32492012
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Function XXX(s As String)

Dim i As Integer, n As Long

For i =  1  To Len(s)
    n = Val(Mid(s, i))
    If n >=  1  Then Exit For
Next
XXX = n

End Function

Правда, для gar.333/334 и для gar.333A оно выдаст одинаково 333, но для сортировки это сойдет.
...
Рейтинг: 0 / 0
Вопросик по сортировке
    #32492035
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если возвращать строку то учтется
gar.333/334 и для gar.333A


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Function XXX(s As String)

Dim i As Integer, n As Long

For i =  1  To Len(s)
    n = Val(Mid(s, i))
    If n >=  1  Then Exit For
Next
XXX = Mid(s, i)

End Function
...
Рейтинг: 0 / 0
Вопросик по сортировке
    #32492059
dead1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гм... сорри за дурацкий вопрос, а где эта функция прописывается и как указать её в запросе?
...
Рейтинг: 0 / 0
Вопросик по сортировке
    #32492074
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в публичном модуле помещаешь функцию


select * from mytable oreder by XXX(kvartira)
...
Рейтинг: 0 / 0
Вопросик по сортировке
    #32492078
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function XXX(byval s As String)

do until s="" or val(s) >=  1 
    s = Mid(s,  2 )
loop
XXX = s

End Function

Так вроде короче. :^)
...
Рейтинг: 0 / 0
Вопросик по сортировке
    #32492079
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from mytable ORDER by XXX(kvartira)
...
Рейтинг: 0 / 0
Вопросик по сортировке
    #32492083
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч

краткость сестра таланта ))
...
Рейтинг: 0 / 0
Вопросик по сортировке
    #32492099
dead1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О-ба-на. А я её рядом в модуле формы вставил и думаю чего она не пашет :) Большое спасибо!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопросик по сортировке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]