powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / задать название столбца в запросе
16 сообщений из 16, страница 1 из 1
задать название столбца в запросе
    #32380671
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос может показаться идиотским, но все же рискну...
Киньте ссылочку и/или подскажите кто-нибудь решал такую задачу:
в таблицах и запросах используются в названии поля типа Mon01, Mon02, Mon03 (янв03, фев03, март03 соответственно) и т.д., означающие месяца года. Причем от месяца к месяцу они сдвигаются, т.е. Mon01 (был янв03) в следующем месяце становиться фев03, соответственно и все сдвигаются. Все было хорошо, пока не назрела необходимость, чтобы в запросе при его выполнении название столбца отражалось не как Mon1, а как месяц, который участвует на данный момент в расчете (как я уже упоминал выше, напр. фев03). Подскажите, плз, как можно извратиться и написать в запросе или SQL.
СПАСИБО
Stepler (щёлк-щёлк!!)
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32380680
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
select mon1 as фев03, ...
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32380686
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, а в следующем месяце писать: select mon1 as мар03,.... ?
Хотелось бы, чтоб автоматом, и... забыть.
Stepler (щёлк-щёлк!!)
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32380697
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тогда надо написать программу, которая будет сочинять этот селект. А потом забыть.
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32380700
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.Е. в запросе просто так никак незя !? Жаль...
Stepler (щёлк-щёлк!!)
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32380702
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Именно в запросе.

Только я не понял, зачем это надо. Юзеры открывают на экране запрос??? А не форму???
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32380713
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне кажется В.С. предложил хорошее решение.....
т.е. делаешь эту sql строку динамически в вба
как я понял Mon01- это текущий месяц...
т.е. из функции date() ... (не помню как выделить месяц числом.)
Mon01 as date(...)
Mon02 as date(...)+1
и т.д....
ну как то так...
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32380728
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По мне лучше через DAO сменить свойство Description поля перед выполнением запроса, но лучше использовать формы/отчеты все-таки
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32380730
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А вот так Mon02 as date(...)+1 не получится. Надо так:

"Mon02 as " & format(date, "mmmyy")
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32380731
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это надо не юзерам, а мне для периодических добавлений/изменений.
vlad_707 посоветовал... т.е. делаешь эту sql строку динамически в вба
как я понял Mon01- это текущий месяц...
т.е. из функции date() ... (не помню как выделить месяц числом.)
Mon01 as date(...)
Mon02 as date(...)+1
и т.д....
ну как то так...
Это-то я понимаю.... Но куда это вставить!? (Начало такое: SELECT РазницаИнвест.Fcount AS [Счетчик по базе], РазницаИнвест.ComboDeptCode AS [Центр затрат], РазницаИнвест.ComboDepRusName AS [Наимен Подразделения], РазницаИнвест.Comments AS Примечания, РазницаИнвест.Примечание , РазницаИнвест.Mon13 AS [11/03], РазницаИнвест.Mon14 AS [12/03], ... )
Stepler (щёлк-щёлк!!)
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32380846
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можешь менять системное время т.е. в системном времени менять месяц и тогда моя система заработает..... хм... только нужно ли так делать......

GetSystemTime
This function retrieves the current system date and time. The system time is expressed in Coordinated Universal Time (UTC).

void GetSystemTime(
LPSYSTEMTIME lpSystemTime );
Parameters
lpSystemTime
[out] Pointer to a SYSTEMTIME structure to receive the current system date and time.
Return Values
None.

Requirements

Runs on Versions Defined in Include Link to
Windows CE OS 1.0 and later Winbase.h



Note This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

SYSTEMTIME
This structure represents a date and time using individual members for the month, day, year, weekday, hour, minute, second, and millisecond.

typedef struct _SYSTEMTIME { // st
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;
Members
wYear
Specifies the current year.
wMonth
Specifies the current month; January = 1, February = 2, and so on.
wDayOfWeek
Specifies the current day of the week; Sunday = 0, Monday = 1, and so on.
wDay
Specifies the current day of the month.
wHour
Specifies the current hour.
wMinute
Specifies the current minute.
wSecond
Specifies the current second.
wMilliseconds
Specifies the current millisecond.
Remarks
It is not recommended that you add and subtract values from the SYSTEMTIME structure to obtain relative times. Instead, you should

Convert the SYSTEMTIME structure to a FILETIME structure.
Copy the resulting FILETIME structure to a ULARGE_INTEGER structure.
Use normal 64-bit arithmetic on the ULARGE_INTEGER value.
Requirements

хм.... но я бы так не заморачивался....
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32381121
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Классно!!! (я о системном времени)
Так же можно не только себе помочь - НО, ГЛАВНОЕ - ВСЕМ ПОДГАДИТЬ,,,

Stepler (щёлк-щёлк!!)
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32381227
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тебе ещё...

Шаг 10 - Инструкция Date
Устанавливает текущую системную дату:

Date = дата

Параметры
дата
Для компьютеров, работающих под управлением Microsoft Windows 95, аргумент дата должен задавать дату в интервале от 1 января 1980 года до 31 декабря 2099 года. Для компьютеров, работающих под управлением Microsoft Windows NT, дата в интервале от 1 января 1980 года до 31 декабря 2079 года.

Пример
В данном примере инструкция Date используется для установки системной даты. В среде разработчика дата изображается в кратком формате с использованием текущих национальных настроек.

Dim MyDate
MyDate = #February 12, 1985# ' Присваивает дату.
Date = MyDate ' Изменяет системную дату.
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32386554
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бился, бился - получил... (табл "Месяцы" содержит данные типа 01/04)
TRANSFORM IIf(Format(Date(),"mm\/yy")=Месяцы!NameForForms,РаИ!Mon13,
IIf(Format(Date()+31,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon14,
IIf(Format(Date()+62,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon15,
IIf(Format(Date()+93,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon16,
IIf(Format(Date()+124,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon17,
IIf(Format(Date()+155,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon18,
IIf(Format(Date()+186,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon19,
IIf(Format(Date()+217,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon20,
IIf(Format(Date()+248,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon21,
IIf(Format(Date()+279,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon22,
IIf(Format(Date()+310,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon23,
IIf(Format(Date()+340,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon24,
IIf(Format(Date()+360,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon25,999999999))))))))))))) AS Выражение1
SELECT РаИ.Fcount AS [Счетчик по базе], РаИ.Comments AS Примечание, РаИ.Примечание AS [Примечание Операций], РаИ.ComboDeptCode AS [Центр затрат], РаИ.ComboDepRusName AS [Наимен Подразделения]
FROM РаИ, Месяцы
WHERE (((РаИ.Примечание) Is Not Null))
GROUP BY РаИ.Fcount, РаИ.Comments, РаИ.Примечание, РаИ.ComboDeptCode, РаИ.ComboDepRusName, РаИ.Mon13, РаИ.Mon14, РаИ.Mon15, РаИ.Mon16, РаИ.Mon17, РаИ.Mon18, РаИ.Mon19, РаИ.Mon20, РаИ.Mon21, РаИ.Mon22, РаИ.Mon23, РаИ.Mon24, РаИ.Mon25
ORDER BY РаИ.Fcount, РаИ.Примечание, РаИ.ComboDeptCode
PIVOT Месяцы.NameForForms
WITH OWNERACCESS OPTION;

Всё работает, при изменении времени в ПК - происходит сдвиг месяцев и т.п.
НОООО!
Непонятно почему одна строка всё время выдаёт ошибку, т.е. заносит в исполнение запроса значение "999999999". Я проверял форматы, пути, формулы... Нашел зависимость - стоит из запроса убрать в GROUP BY РаИ.Mon13, РаИ.Mon14 (соответственно и в TRANSFORM IIf(Format(Date(),"mm\/yy")=Месяцы!NameForForms,РаИ!Mon13,IIf(Format(Date()+31,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon14 ), как из двенадцати полей в десяти полях наблюдаются нужные значения, а не "9999999999".
ПЛЗ, подскажите, в чем может быть заковыка? Мне нужны данные по всем 12 полям.
Прошу прощения за вид запроса - проще придумать не смог...
Stepler (щёлк-щёлк!!)
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32386756
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Если этот запрос написан руками, то надо его исправить.
Если есть какая-то программа, которая его сочиняет, то надо искать в ней ошибку.
Правда, содержательный ответ?
...
Рейтинг: 0 / 0
задать название столбца в запросе
    #32387317
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч Очень точно подметил.. Если этот запрос написан руками, то надо его исправить....

Спасибо ему за краткий и помогающий (ободряющий, укрепляющий и т.д. и т.п.) ответ....

Stepler (щёлк-щёлк!!)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / задать название столбца в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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