Проблема даты доступа - dd/mm автоматически была изменена на mm/dd

Это Key не key

from pynput.keyboard import Key, Listener

Посмотрите документы здесь .

5
задан 4 revs, 3 users 67% 13 May 2014 в 11:37
поделиться

3 ответа

Доступ по умолчанию формат даты SQL, независимо от локали, является mm/dd/yyyy. При использовании неправильного формата даты он 'услужливо' попытается преобразовать это в допустимую дату Вас.

Так, при использовании '30/09/2008' он распознает, что Вы используете dd/mm/yyyy и преобразовываете его соответственно. Однако значение как '10/01/2008' является допустимым значением mm/dd/yyyy для начала, таким образом, это не будет преобразовано и сохранено неправильно в случае, если Вы на самом деле имели в виду dd/mm/yyyy....

Решение состоит в том, чтобы всегда преобразовывать Ваши значения даты в строку mm/dd/yyyy до использования их в SQL-операторах Доступа. Необходимо быть немного осторожными здесь, поскольку использующий маски формата даты VBA может не работать полностью, как Вы ожидали бы на неамериканских локалях (например, 'услужливо' интерпретирующий "mm/dd/yyyy" как "локализованный короткий формат даты"), поэтому протестируйте тщательно использование Вашей конкретной версии Access/VBA.

8
ответ дан 13 December 2019 в 05:44
поделиться

Доступ требует, чтобы дата была однозначна. Обычно рекомендуется использовать yyyy/mm/dd, независимо от локали. Например:

strSQL="SELECT SomeDate FROM tblT WHERE SomeDate=#" & Format(DateVar, "yyyy/mm/dd") & "#"
3
ответ дан 13 December 2019 в 05:44
поделиться

Я очень успешно использовал функцию datevalue (). При получении дат из несвязанных элементов управления кажется достаточно умен, чтобы правильно интерпретировать формат «дд / мм / гггг». Таким образом, запрос Jet SQL, например

«Выбрать * из DateTable, где StartDate = datevalue (" & me! TxtStartDate & ");"

, кажется, работает каждый раз.

0
ответ дан 13 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: