powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему числа экспортируются в ексель как текст?
5 сообщений из 5, страница 1 из 1
Почему числа экспортируются в ексель как текст?
    #32498579
Strukov Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть перекрестный запрос:
TRANSFORM First(Switch((Года.Год<>Year([Начало договора]) Or Месяцы.Месяц<>Month([Начало договора])) And (Года.Год<>Year([срок окончания]) Or Месяцы.Месяц<>Month([срок окончания])),Round([Договоры аренды].[Цена по договору за месяц],2),(Года.Год=Year([Начало договора]) And Месяцы.Месяц=Month([Начало договора])),Round(([Договоры аренды].[Цена по договору за месяц]/Месяцы.Дни*(Месяцы.Дни-Day([Начало договора])+1)),2),(Года.Год=Year([срок окончания]) And Месяцы.Месяц=Month([срок окончания])),Round(([Договоры аренды].[Цена по договору за месяц]/Месяцы.Дни*Day([срок окончания])),2))) AS [First_Цена по договору за месяц]
SELECT [Договоры арендыВыборка].Код, [Договоры арендыВыборка].Арендатор, ЛицаСправочник.Наименвание, [Договоры арендыВыборка].Арендодатель, [Договоры арендыВыборка].[реквизиты договора], ЛицаСправочник_1.Наименвание, [Договоры арендыВыборка].[Начало договора], [Договоры арендыВыборка].[срок окончания], [Договоры арендыВыборка].[Арендуемый объект], [Договоры арендыВыборка].[Арендуемые помещения], Объекты.[Наименование по БТИ], Объекты.[Место расположения], [Договоры арендыВыборка].[Арендуемая в объекте площадь], [Договоры арендыВыборка].[Действует/недействует], Round(Sum([First_Цена по договору за месяц]),2) AS [Всего за период по договору]
FROM Года, Месяцы, (([Договоры арендыВыборка] INNER JOIN ЛицаСправочник ON [Договоры арендыВыборка].Арендатор = ЛицаСправочник.КодЛица) INNER JOIN ЛицаСправочник AS ЛицаСправочник_1 ON [Договоры арендыВыборка].Арендодатель = ЛицаСправочник_1.КодЛица) INNER JOIN Объекты ON [Договоры арендыВыборка].[Арендуемый объект] = Объекты.Счетчик
WHERE ((([Год]*12+[Месяц]) Between (Year([Договоры арендыВыборка]![Начало договора])*12+Month([Договоры арендыВыборка]![Начало договора])) And (Year([Договоры арендыВыборка]![срок окончания])*12+Month([Договоры арендыВыборка]![срок окончания])) And ([Год]*12+[Месяц]) Between (Year([Forms]![ВыборДоговоровАренды]![СДаты])*12+Month([Forms]![ВыборДоговоровАренды]![СДаты])) And (Year([Forms]![ВыборДоговоровАренды]![ПоДату])*12+Month([Forms]![ВыборДоговоровАренды]![ПоДату]))))
GROUP BY [Договоры арендыВыборка].Код, [Договоры арендыВыборка].Арендатор, ЛицаСправочник.Наименвание, [Договоры арендыВыборка].Арендодатель, [Договоры арендыВыборка].[реквизиты договора], ЛицаСправочник_1.Наименвание, [Договоры арендыВыборка].[Начало договора], [Договоры арендыВыборка].[срок окончания], [Договоры арендыВыборка].[Арендуемый объект], [Договоры арендыВыборка].[Арендуемые помещения], Объекты.[Наименование по БТИ], Объекты.[Место расположения], [Договоры арендыВыборка].[Арендуемая в объекте площадь], [Договоры арендыВыборка].[Действует/недействует]
ORDER BY [Договоры арендыВыборка].Арендатор DESC , [Договоры арендыВыборка].[Начало договора], Format([Год],"0000") & "-" & Format([Месяц],"00")
PIVOT Format([Год],"0000") & "-" & Format([Месяц],"00");
После выполнения он экспортируется в ексель:
DoCmd.OutputTo acOutputQuery, "ÎïëàòàÏîìåñÿ÷íîÀðåíäû", acFormatXLS, "c:\Íåäâèæèìîñòü\ÀðåíäàÇàÏåðèîä.xls", False
Почему результаты запроса - [First_Цена по договору за месяц] - экспортируются как текст? (Пока не было swetch() - экспортировалось как цифры)
...
Рейтинг: 0 / 0
Почему числа экспортируются в ексель как текст?
    #32498608
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй First * на 1

Т.е. (начало)
TRANSFORM 1*First(Switch((Года.Год<>Year([Начало договора]) ...
...
Рейтинг: 0 / 0
Почему числа экспортируются в ексель как текст?
    #32498622
Strukov Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Упс!!! Чудо!!! Получилось!!!!!!
А почему это так происходит?
...
Рейтинг: 0 / 0
Почему числа экспортируются в ексель как текст?
    #32498653
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Некоторые функции Access, такие как Switch, nz и др. по непонятной причине могут насильно переводить число в текст, в таких случаях может помочь указанный способ.
...
Рейтинг: 0 / 0
Почему числа экспортируются в ексель как текст?
    #32498680
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причина вполне понятна.
Switch (а так же IIf, Nz и др.) возвращают значение типа Variant
Аксес, при отсутствии явных преобразований этого Variant'а к другому типу, отображает его в запросе как текст. И экспортирует соответственно как текст.
Вместо 1*Switch можно было написать, например, CDbl(Switch(....))
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему числа экспортируются в ексель как текст?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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