powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Снова о дате.
15 сообщений из 15, страница 1 из 1
Снова о дате.
    #32389789
ThuG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите, пожалуйста, как, вводя в InputBox дату в виде "dd.mm.yyyy", получить из нее дату в виде "mm/dd/yy"?

Format почему-то выводит дату в том же виде. Может, как-то нужно задать вводимый в InputBox формат даты, а потом уже форматировать под свои нужды? InputBox - не текстовое поле, свойства не выставишь.

----
Dim D1 As Date
Dim D2 As Date
D1 = InputBox("Дата:")
MsgBox D1
D2 = Format(D1, "mm\/dd\/yy")
MsgBox D2
----
...
Рейтинг: 0 / 0
Снова о дате.
    #32389798
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторD1 = InputBox("Дата:")
D2 = Format(D1, "mm\/dd\/yy")
Обе строки нехороши, потому что нельзя заносить строковое значение в переменную типа Date. Я бы вводил дату по частям и обращался к DateSerial.
...
Рейтинг: 0 / 0
Снова о дате.
    #32389799
Гостья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim D1 As Date
Dim D2 As String
D1 = InputBox("Дата:")
MsgBox D1

D2 = DatePart("d", D1) & "/" & DatePart("m", D1) & "/" & DatePart("yyyy", D1)
MsgBox D2
...
Рейтинг: 0 / 0
Снова о дате.
    #32389806
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Гостья:
В этом случае могут перепутаться день и месяц.
...
Рейтинг: 0 / 0
Снова о дате.
    #32389810
ThuG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч, а как тогда правильно?
...
Рейтинг: 0 / 0
Снова о дате.
    #32389813
ThuG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч, сорри, проглядел ответ. А пример можно?
...
Рейтинг: 0 / 0
Снова о дате.
    #32389815
Гостья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D2 = day(D1) & "/" & month(D1) & "/" & year(D1)
...
Рейтинг: 0 / 0
Снова о дате.
    #32389818
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
D2 = dateserial(y,m,d)

2 Гостья:
А так они и подавно перепутаются.
...
Рейтинг: 0 / 0
Снова о дате.
    #32389820
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
D2=dateserial(val(inputbox("year")),val(inputbox("month")),val(inputbox("day")))
...
Рейтинг: 0 / 0
Снова о дате.
    #32389823
Гостья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА так они и подавно перепутаются.

А у меня не путаются...
Ни так, ни так.

Вот...
...
Рейтинг: 0 / 0
Снова о дате.
    #32389827
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А если у кого-то другие настройки Windows?
...
Рейтинг: 0 / 0
Снова о дате.
    #32389830
Гостья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА если у кого-то другие настройки Windows?

Семён Семёныч!... ;))

Кстати, по крайней мере в моих настройках, если всё так и оставить, как в первоначальном коде, только D2 исправить String, то получается как раз такой формат, какой нужен...
...
Рейтинг: 0 / 0
Снова о дате.
    #32389832
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВС, ничего, если я побуду твоим "голосом"? :)

Владимир Саныч имел в виду, что cdate и ей подобные, воспримут, к примеру, строку "1,13,3", полученную от инпутбокса, как 13 января 2003 года, тогда как пользователь мог банально ошибиться при вводе.

Чтобы избежать подобных казусов, можно
- вводить дату тремя инпутбоксами для дня, месяца и года соответственно;
- вводить дату через предназначенную для этого форму с полем с "маской ввода";
- самостоятельно программно вычленять из строки соответстующие подстроки в нужном порядке
и т.д., вариантов много.

А для преобразования даты в формате date в строку вида "mm/dd/yy" (очевидно, для запроса), действительно, подойдет Format(MyDateVar, "mm\/dd\/yy"). Кстати, акцессы "кушают" и Format(MyDateVar, "mm-dd-yy") - писать чуть короче и не перепутаешь \/ c /\
...
Рейтинг: 0 / 0
Снова о дате.
    #32389837
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу ты, не понял я вопроса.

2Автор

dim d as date
d = чтото
msgbox d

Что бы ты не положил в d, будет предварительно преобразовано к типу date. Или даст ошибку, если это невозможно. Когда ты передаешь переменной типа date (в памяти она предстваляет собой число с плавающей запятой) строку, она (строка) преобразовывается согласно региональным настройкам и погодным условиям.

Когда ты делаешь msgbox, его аргумент, опять же по погоде, преобразуется в строку или генерит ошибку при этом преобразовании, как в случае, например с

dim r as recorset
set r = чтото
msgbox r

dim d as date
- это число с плавающей запятой, вне зависимости от того, в каком городе ты находишься, и с какой ноги встаешь.

Читай faq по запросам.
...
Рейтинг: 0 / 0
Снова о дате.
    #32389846
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Geo, у тебя хорошо получается мой голос!!!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Снова о дате.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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