Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Формат цифры (дата) в тексбоксе

3.1K
09 сентября 2003 года
ZABor
17 / / 09.09.2003
Надо вбить дату, но как в умных прогах, т.е. точки уже стоят и стоят всегда, а вбивается только дд мм гггг. без точек.

Спасибо!!!
459
10 сентября 2003 года
gacol
273 / / 12.02.2003
[QUOTE]Originally posted by ZABor
Надо вбить дату, но как в умных прогах, т.е. точки уже стоят и стоят всегда, а вбивается только дд мм гггг. без точек.


Вот пример упрощенный. Работает в режиме замещения и без проверки на инвалидность



Dim str0 As String, i As Integer, ii As Integer

Private Sub CommandButton1_Click()
str0 = " / / "
TextBox1.Text = " / / "
End Sub

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode < 48 Then Exit Sub
For i = 1 To 8
If Mid(str0, i, 1) <> Mid(TextBox1.Text, i, 1) Then
If i = 3 Then
Mid(str0, 5, 1) = Mid(str0, 4, 1)
Mid(str0, 4, 1) = Mid(TextBox1.Text, 3, 1)
TextBox1.Text = str0
i = i + 1
ElseIf i = 6 Then
Mid(str0, 8, 1) = Mid(str0, 7, 1)
Mid(str0, 7, 1) = Mid(TextBox1.Text, 6, 1)
TextBox1.Text = str0
i = i + 1
Else
str0 = TextBox1.Text
End If
SendKeys "{HOME}"
For ii = 1 To i
SendKeys "{RIGHT}"
Next ii
Exit For
End If
Next i
End Sub
4.2K
10 сентября 2003 года
PIGorS
11 / / 10.09.2003
Могу предложить свой вариант, если интересно:
(хоть текст на экране выглядит сумбурно, но ты его скопируй в текстовый редактор и будет все ОК)
'*************************************************************************************
'***************************** Обработка даты ****************************************
'*************************************************************************************
sub DateKeyUp(oDate, vType)
oDate.value = replace(oDate.value, ",", ".")
'если дозволено пустое значение и это оно и есть, то выходим
if (not vType and oDate.value = "") then
oDate.ClassName = "Normal"
exit sub
end if

'определяем количество точек
aDatePoints = split(oDate.value, ".")

vError = true
select case UBound(aDatePoints)
case 2 'точки
if isnumeric(aDatePoints(0)) and isnumeric(aDatePoints(1)) then
if isdate(oDate.value) and len(aDatePoints(2)) > 1 and aDatePoints(0) < 32 and aDatePoints(1) < 13 then
vError = false
end if
end if
case 1 'точка
if len(oDate.value) > 5 then
oDate.value = left(oDate.value, 5) & "." & right(oDate.value, len(oDate.value) - 5)
end if
case 0 'точкек
if len(oDate.value) > 2 then
oDate.value = left(oDate.value, 2) & "." & right(oDate.value, len(oDate.value) - 2)
end if
if len(oDate.value) > 5 then
oDate.value = left(oDate.value, 5) & "." & right(oDate.value, len(oDate.value) - 5)
end if
case else
oDate.ClassName = "ErrorValue"
end select

if vError then
oDate.ClassName = "ErrorValue"
else
oDate.ClassName = "Normal"
end if
end sub
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог