|
|
|
Почему числа экспортируются в ексель как текст?
|
|||
|---|---|---|---|
|
#18+
Есть перекрестный запрос: 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() - экспортировалось как цифры) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 13:35 |
|
||
|
Почему числа экспортируются в ексель как текст?
|
|||
|---|---|---|---|
|
#18+
Попробуй First * на 1 Т.е. (начало) TRANSFORM 1*First(Switch((Года.Год<>Year([Начало договора]) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 13:45 |
|
||
|
Почему числа экспортируются в ексель как текст?
|
|||
|---|---|---|---|
|
#18+
Упс!!! Чудо!!! Получилось!!!!!! А почему это так происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 13:51 |
|
||
|
Почему числа экспортируются в ексель как текст?
|
|||
|---|---|---|---|
|
#18+
Некоторые функции Access, такие как Switch, nz и др. по непонятной причине могут насильно переводить число в текст, в таких случаях может помочь указанный способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 14:03 |
|
||
|
Почему числа экспортируются в ексель как текст?
|
|||
|---|---|---|---|
|
#18+
Причина вполне понятна. Switch (а так же IIf, Nz и др.) возвращают значение типа Variant Аксес, при отсутствии явных преобразований этого Variant'а к другому типу, отображает его в запросе как текст. И экспортирует соответственно как текст. Вместо 1*Switch можно было написать, например, CDbl(Switch(....)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 14:12 |
|
||
|
|

start [/forum/search_topic.php?author=vanoha&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 710ms |
| total: | 865ms |

| 0 / 0 |
