Буду мудрее сегодня
1 / 2 / 0
Регистрация: 16.11.2017
Сообщений: 43
|
|
1 | |
Авто коррекция ввода даты в TextBox07.02.2019, 13:58. Показов 15389. Ответов 15
Метки нет (Все метки)
Доброго
Помогите реализовать. В UserForm есть TextBox в который пользователь должен ввести дату. Идея заключается в том, когда человек ввел число, например 12 то сразу автоматом ставится точка, потом он вводит 10 и так же подставляется точка, дальше может быть два развития события либо человек написал 2019 и его курсор автоматический переводится на следующий TextBox или он просто пишет 19 и перейдя на следующий TextBox либо с помощью Tab или курсором 12.10.19 переделывается в 12.10.2019. Так же нужно что бы можно было писать только цифры и подчеркивание "_". Так же разместил такой вопрос тут но ответ не получил((
0
|
07.02.2019, 13:58 | |
Ответы с готовыми решениями:
15
Проверить правильность ввода в TextBox даты и времени Запрет ввода даты рождения и даты выдачи водительского удостоверения, меньше 18 лет Контроль ввода даты и выдача сообщения в случае ошибки неверного ввода Нужно сделать поле ввода для ввода даты по шаблону |
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 524
|
||||||
07.02.2019, 14:09 | 2 | |||||
Самое примитивное - у вашего текстбокса пропишите такой код
0
|
Буду мудрее сегодня
1 / 2 / 0
Регистрация: 16.11.2017
Сообщений: 43
|
|
07.02.2019, 14:15 [ТС] | 3 |
Примитивной это для меня))
А что насчет того что бы запретить в вод букв и оставить только ввод цирк и знака "_"? Добавлено через 55 секунд Я находил решения про ограничения ввода но когда пишешь букву программа выдает ош и бац а мн еп нужно что бы просто ничего не происходило
0
|
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 524
|
||||||
07.02.2019, 15:11 | 4 | |||||
1
|
oh my god
|
||||||
07.02.2019, 15:21 | 5 | |||||
0
|
Буду мудрее сегодня
1 / 2 / 0
Регистрация: 16.11.2017
Сообщений: 43
|
|
07.02.2019, 18:24 [ТС] | 6 |
Возникает проблема когда нужно подкорректировать дату. Точки удалить не получается)))
0
|
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 524
|
|
07.02.2019, 20:35 | 8 |
Вот так, значит, стараешься пишешь человеку программу, которая точки ставит, а он потом эти точки мечтает удалить
Если нужно поле, идеально подходящее для работы с датой или временем, то текстбокс уступает специальному контролу "DTPicker"
1
|
Буду мудрее сегодня
1 / 2 / 0
Регистрация: 16.11.2017
Сообщений: 43
|
||||||
07.02.2019, 20:38 [ТС] | 9 | |||||
Добавлено через 2 минуты Святой НякаЛайк, Спасибо попробую)))
0
|
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 524
|
|
07.02.2019, 21:02 | 10 |
Изначально писал - решение примитивное. Пока пишешь просто что-то типа "123456789" оно само разбивает результ на "12.34.5678" и табом перекидывает фокус в другой элемент.
А вкупе с "Private Sub TextBox1_KeyPress......." код ещё и буквы/символы отсеет. Юзай, тестируй!
0
|
Буду мудрее сегодня
1 / 2 / 0
Регистрация: 16.11.2017
Сообщений: 43
|
||||||||||||||||
08.02.2019, 01:30 [ТС] | 11 | |||||||||||||||
Решил проблему с точками таким образом)))
Application.SendKeys "{tab}" - не работает почему то у меня SendKeys - на этом момента ошибку дает поэтому написал - UserForm1.TextBox2.SetFocus Добавлено через 9 минут Такой функции у меня нет а Microsoft Access я устанавливать не хочу. Осталось решить момент с годом в конце... что бы если пишешь 19 и переходишь на новый Box то автоматический переделает 2019 и так далее. Заодно подскажите как сделать так что бы появлялась текущая дата при открытии UserForm))) Добавлено через 21 минуту Вот он рабочий результат))) Всем спасибо за помощь))) Возможно есть у кого предложения по оптимизации)) Я только учусь печатать на VBA и вообще программированию... может что то можно укоротить или на оборот дописать))
Не получается исправить сообщение((( так что так обновленный код добавлю
1
|
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 524
|
||||||
08.02.2019, 09:13 | 12 | |||||
При работе с формой жмём левой мышекнопкой по панельке с контролами, выбираем в появившемся меню пункт "Additional Controls"
Появляется окошко с выбором используемых контролов, в списке ищем Microsoft Date and time Picker Control После чего в тулбоксе должон появиться DTPicker! Предложение по оптимизации есть: вместо if KeyAscii= then KeyAscii= 8 пишем if KeyAscii<> 8 then...
1
|
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 524
|
||||||
08.02.2019, 09:16 | 13 | |||||
Но в коде выше текущая дата будет прописываться в текстбокс при инициализации формы. Если же нужно, чтобы при каждом повторном открытии, то надо писать в событие Activate
0
|
Буду мудрее сегодня
1 / 2 / 0
Регистрация: 16.11.2017
Сообщений: 43
|
|||||||||||
08.02.2019, 22:29 [ТС] | 14 | ||||||||||
а как заставить работать KeyAscii в TextBox1_Change?
хочу еще подсократить.... что бы не было функции дата...
Святой НякаЛайк, У меня еще вопрос... а для чего это?
0
|
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 524
|
||||||||||||||||
09.02.2019, 00:23 | 15 | |||||||||||||||
Не по теме: :D Это Immediate window Подробнее Ещё Добавлено через 43 минуты Самое время обратить внимание на те штуки, которые всегда на самом виду:
Поэтому эта процедура может использовать KeyAscii - потому что она получила её в качестве агрумента! А здесь:
В данном случае достаточно перетащить строки кода Change в код процедуры KeyPress, примерно так:
1
|
oh my god
|
|
09.02.2019, 18:16 | 16 |
Просто надо было объяснить человеку
что любое нажатие клавиши можно контролировать либо пропустить. либо нет, более того контролировать всю запись... тоесть немаловажно когда он ее введет, минуя все служебные припоны на это есть перепроверка даты Как это организовать ? догадайтесь... Добавлено через 11 минут Otradnoe_4D, это как раз тот случай, когда требуется решить сиюминутную проблему не вникая в корни этой проблемы. а чего напрягаться. нужно только спросить на киберфоруме у здешних старцев. Как , куда, чего и с чем. Давайте уже начнем мозгами думать...
1
|
09.02.2019, 18:16 | |
09.02.2019, 18:16 | |
Помогаю со студенческими работами здесь
16
Контроль ввода даты в MaskEdit и выдача сообщения в случае ошибки неверного ввода Авто подстановка даты MySQL Описать базовый класс автомобиль и от него наследуются классы: грузовые авто, уборочные авто, спортивные авто Авто-абзацы в textbox Авто заполнение textBox'ов из БД Авто форматирование TextBox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |