Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Если кратко, то: Нужен алгоритм сортировки записей по дате (по месяцу и году). Есть БД на акцессе, есть форма на VB. На форме 2 комбобокса 1- выбор месяца, 2-выбор года и кнопка "Сортировка". Подробное описание вопроса: Есть БД на акцессе, в ней поле "дата", ну тоесть во время работы проги создаётся запись в бд и в поле "дата" проставляется дата создания записи в формате ХХ.ХХ.ХХХХ. После запуска проги в работу для сортировки этих записей по датам использовал корявую, но всё-таки рабочую функцию: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Заранее благодарен!!! ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 10:06 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
1) Кажется вы путаете сортировку с фильтром, будьте внимательнее в терминах 2) Прежде, чем рассматривать ваше [censored] решение, cкажите на милость, почему нельзя в базе сделать поле типа "дата" и отбирать записи как положено. К тому же сделать на этом поле индекс и ускорить работу на несколько порядков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 10:41 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro1) Кажется вы путаете сортировку с фильтром, будьте внимательнее в терминах 2) Прежде, чем рассматривать ваше [censored] решение, cкажите на милость, почему нельзя в базе сделать поле типа "дата" и отбирать записи как положено. К тому же сделать на этом поле индекс и ускорить работу на несколько порядков мм, возможно и перепутал термины, строго не судите! ))) В общем таблица акцесовская (журнал учёта документов в комиссионном магазине), в ней поля: Номер договора, продавец, покупатель, Транспортное средство, дата оформления. Раз в месяц отчёт делаю об оформленных договорах за месяц, ну так вот прога выбирает договора в нужный мне месяц, но за ВСЕ годы работы, за прошлый и так далее, естественно не удобно, нужно чтоб выбирались договора только нужного месяца нужного года (например за январь 2010, март 2008 и т.д и т.п.) Вот так. Поле "Дата оформление" в формате дата. Причём краткий отчёт (по конкретному числу) выводиться коректно, тоесть выводятся все записи, относящиеся только к выбранной дате, а вот с месячной сортировкой (фильтром) нифига (((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 15:34 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Mazai-XZПоле "Дата оформление" в формате дата. Так как вы даете противоречивую информацию, я дополнительно хочу уточнить тип поля "Дата оформление" - ДАТА А не текст, правильно? Потому что тогда утверждение "проставляется дата создания записи в формате ХХ.ХХ.ХХХХ." является бредом, так данные типа "дата" хранятся не в виде текста, а в виде 8-мибайтного числа и с ней нельзя работать так, как вы работаете. Если подтверждаете, что это дата - напишу, как должен выглядеть ваш запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 17:17 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Да, сейчас проверил в самой бд формат этого поля, там стоит Дата/время. Как я писал выше вормат xx.xx.xxxx, этоя имел в виду дд.мм.гггг в смысле например если текущее число 1 января 2010 года, то в базу заностится 01.01.2010, а не 01.1.10 ну или как-либо иначе, точнее если число до 10го, то записывается 2 символами 01, 02 и так дклее, также месяц до 10 записывается 01, 02 и т.д. вот. При фильтрации в ДатаГриде остаются только нужные (найденые) записи, которые можно либо на форме просмотреть, либо вывести на печать. Вот. Благодарю за внимание ) p.s. Может это и полнейшее программерское невежество, но форматы полей я изначально создал в акцессе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 18:02 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Mazai-XZp.s. Может это и полнейшее программерское невежество, но форматы полей я изначально создал в акцессе Совершенно верно. Вы не только не отличаете сортировку от фильтра, но и формат данных от типа поля. Отсюда не можете написать правильный запрос. Конечно, стоит почитать хоть какую-нить книжку по аксессу. Еще раз обращаю ваше внимание - в поле ТИПА ДАТА хранится ЧИСЛО ДНЕЙ, а как вы его видите, в виде дд-мм-гггг или гггг-мм зависит исключительно от той программы, через которую вы смотрите на это поле. ща освобожусь, напишу запрос.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 18:10 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
В общем, самым простым решением в вашем случае будет такое: Код: plaintext Где Y - числовая переменная, содержащая год, M - числовая переменная, содержащая месяц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 18:40 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Shocker.ProВ общем, самым простым решением в вашем случае будет такое: При таком запросе будет использоваться индекс по полю Data (а я надеюсь, что он есть), запрос будет выполняться сильно быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 18:43 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro При таком запросе будет использоваться индекс по полю Data (а я надеюсь, что он есть), запрос будет выполняться сильно быстрее. Вообще-то чтобы использовался индекс - уберите функции из условия! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 20:32 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
AndrFВообще-то чтобы использовался индекс - уберите функции из условия! Функции в условии нет! Точнее так: само поле не участвует в функции, поэтому индекс может быть использован, а значение функции будет вычислена ДО выборки. Так что все ок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 20:35 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Shocker.ProAndrFВообще-то чтобы использовался индекс - уберите функции из условия! Функции в условии нет! Точнее так: само поле не участвует в функции, поэтому индекс может быть использован, а значение функции будет вычислена ДО выборки. Так что все ок. Рассчитывать на сильную разумность Access-a я бы не стал. Тем более в тех случаях когда функция прекрасно выкидывается из условия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 20:44 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
AndrFРассчитывать на сильную разумность Access-a я бы не стал. А как правильно представить дату для аксесса, чтобы ИЗБЕЖАТЬ явного или неявного преобразования (что опять же будет ничем не лучше DateSerial)? Так? #mm/dd/yyyy# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 20:48 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
AndrFРассчитывать на сильную разумность Access-a я бы не стал. Ню-ню... - Сэр, Вы эстет? - Нет, я гомосексуалист, но зато какие краски! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 21:19 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
mds_world, как спец рассуди нас! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 21:19 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, то, что ты предложил, это так называемый "динамический" запрос, или динамическая сборка запроса. Все переменные/функции подставляются на этапе сборки и компиляции строки. Запрос выполняется с уже подставленными строковыми/числовыми/датными константами. Разумется, все индексы работают. Могу еще добавить, что эта операция настолько часта, тривиальна и эффективна одновременно, что попала в ФАК акцесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 21:34 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
mds_world, AndrF, насколько я понимаю, смутило именно то, что я выполнил DateSerial на стороне сервера, а не на стороне клиента. Я бы выполнил ее на стороне клиента, то вдруг осознал, что не знаю, как правильно передавать дату аксессу, чтобы избежать неявного преобразования. Когда-то давно, когда работал еще с аксессом, передавал, как указал выше, в решетках, но, честно говоря, не знаю, правильно ли это. Просвети тогда уж... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 22:05 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, да, не обратил внимания на Dateserial. Действитено, нужно вытащить все приваивания из строки и серверу передавать готовые даты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 22:45 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
mds_worldShocker.Pro, да, не обратил внимания на Dateserial. Действитено, нужно вытащить все приваивания из строки и серверу передавать готовые даты. И в третий раз спрошу. Так как передавать дату серверу, чтобы избежать неявного преобразования? В формате #mm/dd/yyyy#? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 22:49 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Черт, отвлекают бесконечно Сервер Jet аксовский? Если формировать строку, то надо в американском формате #mm/dd/yyyy#. Иначе могут быть ошибки при вхождении данных, подготовленных в другой локализации. Но DateSerial даст правильный результат в любом случае. Дата ведь число типа Double. И DateSerial готовит дату однозначно, вне зависимости от локализации. Другой способ подать дату в строку (когда нет готового разбиения на элементы даты) это сформировать дату с помощью функции Format и придать ей решетки для указания типа данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 23:10 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Другими словами, твой вариант вполне рабочий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 23:13 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
mds_worldДругими словами, твой вариант вполне рабочий Ну слеплю тогда еще и клиентский вариант, чтобы снять вопросы Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 00:08 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Наноупрощение (чтоб не лепить решетки отдельно) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 00:24 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
mds_worldНаноупрощение (чтоб не лепить решетки отдельно) Код: plaintext Пикоупрощение: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 00:32 |
|
||
|
Сортировка записей по дате (по месяцу и году)
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro Код: plaintext 1. 2. виноват: hh:nn:ss ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 00:33 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36739335&tid=2159563]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 380ms |

| 0 / 0 |
