Задать дату-время маской

dab2

Как сделать ввод даты-времени в поле через маску (желательно), чтобы вводить дату без времени (00:00) или с временем? Допустим, можно набрать 31.12.12 и нажать Enter или 31.12.12 01:20 Enter. Можно ли в маске подставлять не набранные значения по умолчанию? У меня при недоборе знакомест ругается форма, а хотелось бы упростить это дело.============================================================================================================"О, сколько нам открытий чудных готовит просвещения дух, и опыт - сын ошибок трудных, и гений - парадоксов друг, и случай - бог изобретатель" (Пушкин, однако).
13 ответов

dab2

Также и время хотелось бы вводить через маску в поле, но желательно, чтобы при вводе не высвечивалась дата. Пока маска поля времени "00\:00" (оно добавлено отдельно для лучшей наглядности) и формат "hh\:nn". В поле даты маска "00.00.##00\ ##\:##;0;0" а формат "Полный формат даты".


dab2

dab2,есликак в 1цену и пусть набирают как положено в 1цесо всеми пробелами, двоеточиями и тд...видимо мне до сих-пор везет - никогда не мучил юзеров масками - ...


dab2

чотне получатся файлик прицепить - видимо перепраздновал..)))пусть в в виде НГ-й шуткитам 3 три поля2-а с дефаултными -Дате()Тайм()3-еих конкатенация ч/з пробел..)))


dab2

Как сделать ввод даты-времени в поле через маску (желательно), чтобы вводить дату без времени (00:00) или с временем? Допустим, можно набрать 31.12.12 и нажать Enter или 31.12.12 01:20 Enter. Можно ли в маске подставлять не набранные значения по умолчанию?
00.00.00\ 99:00:00;0;_


dab2

00.00.00\ 99:00:00;0;_
сорричисто - лично - пужкай буду неправ зато от души любая маска -3ло ЮЗЕРУ и ваще....


dab2

00.00.00\ 99:00:00;0;_
С датой справились - на новой строке убираю маску и появляется встроенный календарь (если задать маску, то он не появляется). Но как быть теперь со временем - если войти в поле, то появляется дата и время сразу, а мне надо только время видеть.


dab2

dab2, вместо того, чтобы много описывать свои надобности и мужественно преодолевать созданные трудности, надо было просто изначально немножко подумать над формализацией задачи. И стало бы ясно, что на самом деле есть необходимость при вводе данных в ОДНО поле использовать ДВЕ независимые маски - маску даты и маску даты и времени. Да ещё чтобы форма ввода сама соображала, какую из двух масок желает применить оккупировавший консоль оператор.Аксесс этого не умеет. Лучше пойдите по пути использование двух датепикеров, связав их программно. А результат - кладите в скрытое (или не очень) поле, которое и используйте для занесения данных в таблицу.


dab2

Akina, зачем два датапикера? Одно поле для даты, второе вводим по маске. Я хочу обойтись без сторонних добавок, а использовать только встроенные средства.


dab2

dab2,немного не понял вопроса, если поле одно и надо вводить либо дату, либо время , либо и то и другое одновременно, то можно менять маску и формат , например через переключатели... примерчик прилагаю cкачать


dab2

guest_rusimport, примерчик класный, и м.б. единственный в своём роде на форуме. Одно неудобство пока осталось - надо вводить все знакоместа маски не зависимо от значений даты\времени. Допустим, когда я ввожу время 10:00 достаточно набрать "1", но нули все приходится вводить, не смотря на то, что они и так уже стоят в маске.


dab2

guest_rusimport, примерчик класный, и м.б. единственный в своём роде на форуме. Одно неудобство пока осталось - надо вводить все знакоместа маски не зависимо от значений даты\времени. Допустим, когда я ввожу время 10:00 достаточно набрать "1", но нули все приходится вводить, не смотря на то, что они и так уже стоят в маске.
теперь после ввода допустим "1" жмешь "Enter" и "все знакоместа маски" вводить не надо cкачать


dab2

Уважаемый guest_rusimport! С Новым Годом!Еще в прошлом году (т.е. вчера) немного "оптимизировал" Ваш примерчик (повторяющиеся операторы убрал в одно место).
Private Sub Группа5_Click()
Me.Выключатель8.ForeColor = 0
Me.Выключатель9.ForeColor = 0
Me.Выключатель10.ForeColor = 0
Me.дата_время_.Locked = False
Select Case Me.Группа5
 Case 1
 Me.Выключатель8.ForeColor = 255
 Me.дата_время_.Format = "dd\.mm\.yy"
 Me.дата_время_ = Null
 Me.дата_время_.InputMask = "00\.00\.00;0;0"
 Case 2
 Me.Выключатель9.ForeColor = 255
 Me.дата_время_.Format = "hh\:nn"
 Me.дата_время_ = Null
 Me.дата_время_.InputMask = "00\:00;0;0"
 Case 3
 Me.Выключатель10.ForeColor = 255
 Me.дата_время_.Format = "General Date"
 Me.дата_время_ = Null
 Me.дата_время_.InputMask = "00\.00\.00\ 00\:00;0;0"
End Select
Me.дата_время_.SetFocus
SendKeys "t"
End Sub
Хотел добиться того, что просил ТС. Идея совпала с Вашей, но не мог понять, на какое событие повесить этот код
Me.дата_время_ = Me.дата_время_.Text
и как привязать его к ENTERу. Оказывается, все просто. Еще раз с Новым Годом!!!!!


dab2

[quot ИВП]Уважаемый guest_rusimport! С Новым Годом!Еще в прошлом году (т.е. вчера) немного "оптимизировал" Ваш примерчик (повторяющиеся операторы убрал в одно место). +
Private Sub Группа5_Click()
Me.Выключатель8.ForeColor = 0
Me.Выключатель9.ForeColor = 0
Me.Выключатель10.ForeColor = 0
Me.дата_время_.Locked = False
Select Case Me.Группа5
 Case 1
 Me.Выключатель8.ForeColor = 255
 Me.дата_время_.Format = "dd\.mm\.yy"
 Me.дата_время_ = Null
 Me.дата_время_.InputMask = "00\.00\.00;0;0"
 Case 2
 Me.Выключатель9.ForeColor = 255
 Me.дата_время_.Format = "hh\:nn"
 Me.дата_время_ = Null
 Me.дата_время_.InputMask = "00\:00;0;0"
 Case 3
 Me.Выключатель10.ForeColor = 255
 Me.дата_время_.Format = "General Date"
 Me.дата_время_ = Null
 Me.дата_время_.InputMask = "00\.00\.00\ 00\:00;0;0"
End Select
Me.дата_время_.SetFocus
SendKeys "t"
End Sub
Да, так красивей... С Новым Годом!