powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Есть ли такая стандартная функция с датой?
14 сообщений из 14, страница 1 из 1
Есть ли такая стандартная функция с датой?
    #32364001
Maria K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно вывести дату в отчет на русском языке: 26 декабря 2003 года.
Все даты выводятся либо просто числами, либо на английском языке!!! Хелп!
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364002
Maria K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и на английском тоже нужно
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364005
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, так сложно написать функцию, которая заменяет feb на февраль и т.д.?

...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364006
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> либо на английском языке

Если бы твой Виндоус был китайским, то даты тоже были бы на китайском. Вот такая закономерность между языком виндоуса и форматированием дат.
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364011
Maria K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну сложно мне написать функцию, ну не умею я. в основном только стандартными пользоюсь. Ну подскажите, где, как и че написать, плз
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364012
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А использовать длинный формат даты не пробовали?
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364014
Maria K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужна сегодняшняя дата
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364016
Maria K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вот в отчете пишу =Now() или =Date(). А сейчас что надо?
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364018
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Date ()
А в свойствах, формат поля выбираете тот формат, который вам нравиться.
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364023
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно также
= Now()
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364044
Alex_2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim dateNow as String

dateNow=Format(Date,"dd mmmm yyyy")
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364056
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насоветовали блин кучу всего. И все равно, "если бы твой Виндоус был китайским, то даты тоже были бы на китайском"

Можно через API добраться до представления даты в любом (имеющимся в системе) NLS.
Можно воспользоваться советом Савика - принудительно менять названия месяцев.
Стандартой функции (форматирование даты под заданные Regional Settings) в аксесе нет.
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364065
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До API добраться совсем не сложно

Объявления:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Option Compare Database
Option Explicit
 
Public Const LANG_DEFAULT = &H400
Public Const LANG_ENGLISH_US = &H409
Public Const LANG_RUSSIAN = &H419
Public Const LANG_UKRAINIAN = &H422
 
Type SYSTEMTIME
 wYear As Integer
 wMonth As Integer
 wDayOfWeek As Integer
 wDay As Integer
 wHour As Integer
 wMinute As Integer
 wSecond As Integer
 wMilliseconds As Integer
End Type
 
Declare Function GetDateFormat Lib  "kernel32"  Alias  "GetDateFormatA"  _
(ByVal Locale As Long, ByVal dwFlags As Long, lpDate As SYSTEMTIME, _
ByVal lpFormat As String, ByVal lpDateStr As String, ByVal cchDate As Long) As Long
 
Public Function GetStringFromDate(lLangID As Long, dtDate As Date, strFormat As String) As String
 Dim stSysDate As SYSTEMTIME
 Dim strResult As String *  256 
 Dim lBufSize As Long, lRetVal As Long
 
 stSysDate.wDay = Day(dtDate)
 stSysDate.wMonth = Month(dtDate)
 stSysDate.wYear = Year(dtDate)
 
 lBufSize =  256 
 
 lRetVal = GetDateFormat(lLangID,  0 , stSysDate, strFormat, strResult, lBufSize)
 If lRetVal <>  0  Then GetStringFromDate = strResult
End Function

Это использование:
Код: plaintext
MsgBox GetStringFromDate(LANG_UKRAINIAN, date,  "dd MMMM yyyy" )


Это описание символов строки формата:

Use the following elements to construct a format picture string. If you use
spaces to separate the elements in the format string, these spaces will
appear in the same location in the output string. The letters must be in
uppercase or lowercase as shown in the table (for example, "MM" not "mm").
Characters in the format string that are enclosed in single quotation marks
will appear in the same location and unchanged in the output string.

d Day of month as digits with no leading zero for single-digit days.
dd Day of month as digits with leading zero for single-digit days.
ddd Day of week as a three-letter abbreviation.
dddd Day of week as its full name.
M Month as digits with no leading zero for single-digit months.
MM Month as digits with leading zero for single-digit months.
MMM Month as a three-letter abbreviation.
MMMM Month as its full name.
y Year as last two digits, but with no leading zero for years less than 10.
yy Year as last two digits, but with leading zero for years less than 10.
yyyy Year represented by full four digits.

For example, to get the date string

"Wed, Aug 31 94"
use the following picture string:

"ddd',' MMM dd yy"
...
Рейтинг: 0 / 0
Есть ли такая стандартная функция с датой?
    #32364218
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну. зачем вы мучаете женщину API, нехорошо.

Марина вставьте в стандартный модуль следующий код, просто скопируйте его в тело модуля

Public Function zaq(datNew As Date) As String
Dim dat As Date, dat1 As String, dat2 As String, dat3 As String
dat = Format(datNew, "dd mm yy")
dat3 = Right(dat, 2)
dat1 = Left(dat, 2)
dat2 = Left(Right(dat, 5), 2)
Select Case dat2
Case 1
zaq = dat1 & " " & "января" & " " & dat3
Case 2
zaq = dat1 & " " & "февраля" & " " & dat3
Case 3
zaq = dat1 & " " & "марта" & " " & dat3
Case 4
zaq = dat1 & " " & "апреля" & " " & dat3
Case 5
zaq = dat1 & " " & "мая" & " " & dat3
Case 6
zaq = dat1 & " " & "июня" & " " & dat3
Case 7
zaq = dat1 & " " & "июля" & " " & dat3
Case 8
zaq = dat1 & " " & "августа" & " " & dat3
Case 9
zaq = dat1 & " " & "сентября" & " " & dat3
Case 10
zaq = dat1 & " " & "октября" & " " & dat3
Case 11
zaq = dat1 & " " & "ноября" & " " & dat3
Case 12
zaq = dat1 & " " & "декабря" & " " & dat3
Case Else
End Select
End Function

Может переменных и слишком много, но я писал с налёту, главное, что это работает

В отчёте создайте поле с данными NOW(), затем создайте поле, где в качестве данных будет эта функция (вы её увидите не во встроенных функциях, а в функциях самой базы), а в качестве аргумента - значение поля с NOW(). Наверное Вы видите, что название месяцев в этом случае можно написать хоть на китайском, если Вы его знаете. Поле c NOW() можно сделать невидимым или оставить, как хотите.
Предвидя гневные обвинения в излишней усложнённости, скажу, что не старался оптимизировать задачу, просто хотел сделать понагляднее.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Есть ли такая стандартная функция с датой?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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