Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Формат даты то dd/mm/yy , то mm/dd/yy / 5 сообщений из 5, страница 1 из 1
05.07.2007, 08:29:47
    #34639728
Stok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат даты то dd/mm/yy , то mm/dd/yy
Хранимая процедура MS SQL возвращает таблицу с датами типа
Код: plaintext
 2007 - 07 - 05   08 : 48 : 12 . 360 
Если ее перенести в лист Excel через буфер обмена, то прекрасно работает формат даты dd/mm/yy
Решил автоматизировать процесс и сваял макрос, где данные в ячейки записываются из
Recordset-а, типа того:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
       Dim TempStr As String, RangA As String, rst As ADODB.Recordset
         fc = rst.Fields.Count -  1 
         Do Until rst.EOF
           k = k +  1 
           For j =  0  To fc
             If Not IsNull(rst.Fields(j)) Then
              TempStr = rst.Fields(j)
              RangA = Chr$(l + j) & k
              Range(RangA).Value = TempStr
             End If
           Next j
           rst.MoveNext
         Loop
Получаю же для июньских дат
то 06/01/07 14:06 , то 27/06/07 16:05:46
Т.е. даты после 12 числа обрабатываются верно, а в датах до 12 - переставляются месяц и день.
Дорогие гуру, поправьте кодик рукой маэстро.
На всех компьютерах формат даты dd/mm/yy , но оффисы разные - от 97 и выше
...
Рейтинг: 0 / 0
05.07.2007, 09:17:21
    #34639842
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат даты то dd/mm/yy , то mm/dd/yy
Код: plaintext
format(..., "dd/mm/yy") ?

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
05.07.2007, 11:06:12
    #34640209
Stok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат даты то dd/mm/yy , то mm/dd/yy
Да нет, Format(.Fields(j), "dd/mm/yy") без толку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
            If IsDate(.Fields(j)) Then
                TempStr = Format(.Fields(j), "dd/mm/yy")
       '   Отображается в ячейке          06/10/07       28/06/07
                TempStr = Format(.Fields(j), "yyyymmdd")
      '   Отображается в ячейке            20070610    20070628
              Else
                 TempStr = .Fields(j)
              End If
   
...
Рейтинг: 0 / 0
05.07.2007, 11:13:47
    #34640245
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат даты то dd/mm/yy , то mm/dd/yy
А так не пойдёт
Код: plaintext
format(..., "dd/mmmm/yy")
или
Код: plaintext
format(..., "dd/mmm/yy")
???
...
Рейтинг: 0 / 0
05.07.2007, 11:40:18
    #34640360
Stok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат даты то dd/mm/yy , то mm/dd/yy
Спасибо, разобрался. Если Преобразователю Екселя подсовывать строку, то он ее конвертирует как бог на душу положит, по каким-то своим законам. Но если подсунуть переменную типа Date, то все оК.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
       Dim TempStr As String, TempDate As Date
....
              RangA = Chr$(l + j) & k
              If IsDate(.Fields(j)) Then
                TempDate = CDate(.Fields(j))
                Range(RangA).Value = TempDate
              Else
                TempStr = .Fields(j)
                Range(RangA).Value = TempStr
              End If
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Формат даты то dd/mm/yy , то mm/dd/yy / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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