Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MySort() / 9 сообщений из 9, страница 1 из 1
25.07.2003, 12:48
    #32218074
dead1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySort()
Здрасти!
Понадобился интересный наворот и не знаю как к нему подойти.
У главной формы есть субформа. В с.форме покаываются некоторые поля и записи одна за другой (ленточная вроде по-научному). Одно из полей - номер дома. А номера домов бывают всякие. Смешные и не очень. "`55","59-60", "4а" итд. => строки (Text) с самыми разными вариациями пробелов, точек, типе букв и цифр. Нужно сгруппировать записи по цифрам (или вообще своим хитрым способом), но выводить на субформу значения как есть.
Вот примерно так :
4
4a
dz.5
31
`55
59-60
61
62
.
-
Как это можно выполнить, если вообще можно? Очистку и переработку таблицы на сервере не предлагать :) Низзя.
Что-то отдалённо слышал про конструкции, вроде "SELECT MySort(dom) FROM ...." Если такие имеют место быть, как их использовать и как они работают?

За любые напутствия премного буду благодарен.
...
Рейтинг: 0 / 0
25.07.2003, 12:51
    #32218080
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySort()
Ну, например, SELECT [№ дома] FROM дома WHERE [№ дома] like *5*
...
Рейтинг: 0 / 0
25.07.2003, 12:53
    #32218084
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySort()
ента конструкция создается в запросе (режим SQL)...
Вместо цифры 5 в выражении ... *5* можно подставить значение к\л поля (например, поле, в котором задаются параметры поиска)....
...
Рейтинг: 0 / 0
25.07.2003, 13:00
    #32218100
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySort()
типа можешь не благодарить...
...
Рейтинг: 0 / 0
25.07.2003, 13:03
    #32218103
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySort()
Мысль 1. SELECT должен быть как есть, т.е. без всяких функций, если действительно нужно показывать значения как есть.

Мысль 2. А вот зато ORDER BY (если речь о сортировке, как в примере, а не о группировке, как в тексте вопроса) можно сделать по Val(...). Функция Val берет начальную часть строки, которую можно рассматривать как число, и возвращает значение этого числа.

Мысль 3. Правда, если номер дома начинается не с цифры, то эта функция будет возвращать 0. Так что можно вместо нее написать другую функцию.

Мысль 4. Но при любой сортировке по функции (будь то функция стандартная или своя) работать оно будет медленно. Так что настоятельно советую завести дополнительное поле (что-то типа "числовое значение номера дома"), заполнять его программно одновременно с заполнением самого номера дома, проиндексировать его и сортировать по нему.
...
Рейтинг: 0 / 0
25.07.2003, 13:08
    #32218114
dead1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySort()
Гы-гы, как всегда решение оказывается до безобразия простым. Как всегда хочется изобрести велосипед, причём исключительно для поездок по бровке.
Спасибо.
...
Рейтинг: 0 / 0
25.07.2003, 13:14
    #32218122
dead1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySort()
Владимир Саныч, а если я к примеру хочу вставить свою функцию вместо Val(), то достаточно подставить её имя с параметрами и где-нибудь на VBA её наваять?

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


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