Помещает ли формат даты в поле даты разницу в vba? - PullRequest
0 голосов
/ 04 марта 2020

Я смотрел, как люди пишут код, и мне было интересно, имеет ли значение форматирование в поле даты. Например, я видел это Format(EndDate, "mm/dd/yyyy") в запросе, но EndDate определяется как поле даты в таблице.

Какие преимущества и проблемы могут возникнуть при этом?

strEDate = "#" & Format(EndDate, "mm/dd/yyyy") & "#"

strHSurg = "SELECT TOP 1 [Health Surcharge]FROM tblTax WHERE [Effective Date] <= strEDate " ORDER BY [Effective Date] DESC;"

Если EndDate является полем даты, вы не можете получить запрос, подобный этому

strHSurg = "SELECT TOP 1 [Health Surcharge]FROM tblTax WHERE [Effective Date] <= " & EDate & " ORDER BY [Effective Date] DESC;"

Это имеет значение? Или это делается для того, чтобы при переносе базы данных на компьютер в формате дд / мм / гггг формулы не затрагивались?

Ответы [ 2 ]

2 голосов
/ 04 марта 2020

Формат принимает переменную / поле Date и преобразует ее в String. Разница между ними гораздо больше, чем визуальные эффекты. Вы не можете выполнять функции типа даты (например, DateAdd) для функций String или String (например, Replace) для Date.

. Обычно я использую функцию форматирования, когда добавляю дату в строка. Это может быть строка, которую увидит пользователь (например, в заголовке отчета могут быть разные выходные данные, такие как «Общий объем продаж за 01.01.2020» или «Общий объем продаж за 1 января 2020 года») или при генерации SQL Строка запроса, чтобы убедиться, что ожидаемый формат даты соответствует ожидаемому в Access, и избежать проблем с локализацией.

В каждом случае данные хранятся как тип данных Date. Я никогда не храню данные даты как String.

1 голос
/ 04 марта 2020

Мне нравится форматировать мои даты, используя VBA, потому что вы никогда не знаете, какое может быть форматирование поля. Если в поле, в которое вы пишете, указан определенный формат даты c, то формат поля переопределяет формат, назначенный VBA. Так же, как печатать в поле. Вы можете вводить данные в любом формате, форматирование поля объединит данные в заявленный формат.

Для обеспечения безопасности используйте тот же формат в VBA, что и для поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...