powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сделать маску ввода???
16 сообщений из 16, страница 1 из 1
Как сделать маску ввода???
    #34838692
R@maN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть Msgbox в который вводится дата, всё работает, нормально. Вопрос вот в чём - можно ли ограничить пользователя вводом даты по маске. К примеру, что-бы в строке ввода было ##/##/#### и пользователь мог ввести только восемь цыфр которые заняли бы места решёток а слеши остались. Такое вообще можна сделать с помощью VBA, если да то может кто-то подскажет или кинет ссылочку на лит-ру в которой этот момент описан. Пасиба.
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34838723
Мимо шел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MS Masked Edit Control
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34838745
Mons
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такой контрол: MaskEdBox
вот код чтобы установить маску:

With Me.MaskEdBox
'This box will hold date information.
.Mask = "##/##/####"
.Text = "01.01.2007"
.FontName = "Arial"
.FontBold = False
End With

но это в VB6, я думаю в VBA он тоже есть!
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34838749
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы можете позволять пользователю вводить дату в MsgBox? Вы часом не Гудини?
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34839246
R@maN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladConnВы можете позволять пользователю вводить дату в MsgBox? Вы часом не Гудини?
:-) Да не Гудини, а - тормоз :-) Просто за компом долго сижу вот и запарился, хорошо что другие поняли о чем я спрашиваю. Вобщем при нажатии кнопки появляется форма в которой у пользователя запрашивается дата, потом эта дата передаётся в основную форму. Всё нормально но пользователь может ввести не дату, а любой текст, для этого и хотел сделать маску ввода. Вот код этой формочкиЖ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub DButCancel_Click()
GetDate.Hide
ThisWorkbook.Sheets("Main_list").Activate
End Sub

Private Sub DButOK_Click()
   Dim ans As Integer
    If NewDate.Value = "" Then
    ans = MsgBox("Ââåä³òü äàòó!!!", vbCritical, "ERROR")
  Else
  With Dayly_report
     .Datebox.Text = GetDate.NewDate.Value
  End With
 GetDate.Hide
 Identification.Show
 End If
End Sub

...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34839362
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я заметил навскидку три вещи:

1. У вас переменная ans не используется.
2. И если ее будете таки использовать, то тип у ans должен быть тогда не Integer, а VbMsgBoxResult.
3. Проверять на дату можно еще через IsDate, т.к. маска еще не есть гарантия. Проверять можно в событии Validate.
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34840803
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2R@maN
Есть еще datetimepicker и monthviewer от M$.
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34841190
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по хорошему - лучше чтобы дата вводилась без маски.

Так как удобно вводить, например:

2 (месяц и год подстваятся текущие)
2.10 (год подставится текущий)
2.10.7

а не 2.10.2007.

Само-собой потом это надо обработать и показывать в нормальном виде.
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34841326
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я при всем понимании этого предложения никак не могу с ним согласиться. Хотя бы потому, что после 2000 года общепринятым международным стандартом представления года стал его 4 цифровой номер. Да и в разных странах месяц и день могут меняться местами, это зависит от системной locale и автоматически поддерживается (если не путаю) такими контролями как Masked Edit. В целом, жестко определенный формат введения даты, автоматически завязанный на locale, значительно уменьшает количество необходимого кода, уменьшает вероятность ошибки в его написании, затраты на его поддержку и облегчает его понимание другими. На противоположной чаше весов - не столь важное увеличение удобства (впрочем, какого?), почти блажь. Это всего лишь мое частное мнение, правда основанное на личном опыте. Если кто-то с ним не согласен, ради Б-га, пусть пишет свои контроли и классы с учетом сказанного выше.
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34841602
R@maN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё конечно класно, но я не программист, к сожалению. Просто сначала поставили одну задачу, сделал, потом вторую ... , и т.д. и т.п.. Почти всё делал по примерам с книг, а вот как сделать єтот прикол с маской или её єквивалентом не нашёл. Если может кто-то написать пример формы буду благодарен, хотя и на этом спасиба может и сам допру :-)
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34842055
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто выберите в списке компонентов Microsoft Masked Edit Control 6.0 (SP3). Обычно его можно найти здесь:

C:\Windows\System32\MSMASK32.OCX, но это знать необязательно.

В свойстве Mask контроля проставьте ##/##/####
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34842144
R@maN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может я туплю, или что-то не то спрашиваю Вы меня исправьте или не отвечайте, но как оно отобразится в моей форме???
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34844291
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если prompt character "_", то как обычный текст бокс, а внутри него будет маска __/__/____
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #34846341
R@maN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladConnЕсли prompt character "_", то как обычный текст бокс, а внутри него будет маска __/__/____

Пасиба за помощь!!!
...
Рейтинг: 0 / 0
Как сделать маску ввода???
    #35248716
Mons
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите, а как сделать следующее в MaskEdBox

допустим там уже есть какая-то дата, а как не удаляя её
сделать так чтобы можно было заменять это дату при вводе...

т.е. вводить дату и сразу заменять ту которая есть....

спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как сделать маску ввода???
    #36639040
valdemar_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обойтись можно, без MaskEdBox ? чтобы сделать маску ввода
___-___-___ __ (111-111-111 11)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сделать маску ввода???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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