Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Локализация формата даты в запросе / 14 сообщений из 14, страница 1 из 1
14.05.2004, 11:38
    #32517616
gorobets dima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
Есть запрос (фильтр по дате): "select .... where data = #" & mydata & "#;"
mydata - текстовое поле на форме. Запрос пишу в процедуре VBA.
Формат и маска ввода наши: 14.05.04 а понимает только американский: 05-14-04. В хелпе написано поменяй языки и стандарты в винде - пробовал не помогает.

Если создавать через конструктор запросов оно автоматом меняет. Может кто знает что делать, в падлу писать функцию конвертации.
...
Рейтинг: 0 / 0
14.05.2004, 11:40
    #32517623
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
mydata=format(mydata,"mm\/dd\/yy")
...
Рейтинг: 0 / 0
14.05.2004, 12:51
    #32517877
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
Если mydata - текстовое поле и при этом у него ControlSource отсутствует, то format(mydata,...) тоже может не сработать, потому что format форматирует только даты, но не стринги. Если заранее известно, что у стринга структура dd.mm.yyyy (то есть нам известно, а Аксесс-то этого не поймет), то надо писать что-то типа:

mid(mydata,4,2) & "/" & left(mydata,2) & "/" & right(mydata,4)
...
Рейтинг: 0 / 0
14.05.2004, 13:16
    #32517965
kedzo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Function MakeSQLDate(vDate As Variant) As String
' Format date for SQL-string
Dim s As String

  If Not IsDate(vDate) Then
    MakeSQLDate = ""
    Exit Function
  End If

  s = "#" & Month(vDate) & "/" & Day(vDate) & "/" & Year(vDate) & "#"

  MakeSQLDate = s

End Function
...
Рейтинг: 0 / 0
14.05.2004, 13:25
    #32517995
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
Вариант kedzo не будет работать по той же причине. Параметр функции описан как Variant, к нему применются функции, предназначенные для дат. Если вызвать эту функцию с параметром типа String, то он будет преобразован в дату самим Аксессом, и совершенно не факт, что Аксесс это сделает правильно.
...
Рейтинг: 0 / 0
14.05.2004, 13:26
    #32518003
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
...
Рейтинг: 0 / 0
14.05.2004, 13:29
    #32518013
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
автор топикаФормат и маска ввода наши: 14.05.04
Это говорит о том, что используется поле формы с форматом даты. А значит, никаких стрингов.
...
Рейтинг: 0 / 0
14.05.2004, 13:31
    #32518021
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
Если ControlSource пустой, то Аксесс рассматрвает это значение не как дату, а как стринг. Тут где-то недавно обсуждалась такая проблема.
...
Рейтинг: 0 / 0
14.05.2004, 13:31
    #32518022
kedzo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
хм....

Владимир Саныч, я не понял :(
...
Рейтинг: 0 / 0
14.05.2004, 13:36
    #32518044
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
2 kedzo:

Если передать в качестве параметра такой стринг:
"01/02/03"
то он может быть понят 6 разными способами в зависимости от региональных настроек Виндов:
1 февраля 2003
1 марта 2002
2 января 2003
2 марта 2001
3 января 2002
3 февраля 2001
...
Рейтинг: 0 / 0
14.05.2004, 13:41
    #32518064
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
Нашел я это обсуждение.

/topic/88682#644786
...
Рейтинг: 0 / 0
14.05.2004, 13:42
    #32518071
kedzo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
Ок. Спасибо.
А кстати, есть универсальное решение данной проблемы? Одно время я с этим мучился много-много.
Всех пришлось принуждать выставлять региональные настройки одинаковые :(
...
Рейтинг: 0 / 0
14.05.2004, 13:44
    #32518079
kedzo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
Прочел топик по ссылке и понял.
Спасибо.
...
Рейтинг: 0 / 0
14.05.2004, 14:06
    #32518175
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация формата даты в запросе
Универсальное решение - см. мой пост от 12:51. :^)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Локализация формата даты в запросе / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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