Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
 Аватар для miss Pacman
47 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 19

Можно ли вводить данные в Textbox как в поле с маской

15.03.2012, 19:41. Показов 3037. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи!

Имеется форма, на ней Textbox. Как сделать, чтобы при вводе данных на самой форме данные отображались в формате x-xxx-xxx-xx-xx? (Чтобы после ввода первого знака автоматически появлялось "-", затем после трех знаков и т.д)

Во вложении пустая форма. На примере показано, что данные в таблице должны отображаться также - с разделителями. Для примера отобразить форму со знаком "-" не смогла
Вложения
Тип файла: rar Новая форма.rar (19.0 Кб, 30 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2012, 19:41
Ответы с готовыми решениями:

Как в форме в Access в текстовое поле вводить данные, отображающиеся в этом поле звездочками?
Люди добрые может кто знает, а то я заработался. Как в форме в Access в текстовое поле вводить данные, отображающиеся в этом поле...

Как правильно вводить данные в TextBox в цикле?
Добрый день, форумчане! У меня есть форма, на которой Multipage, у которой 5 страниц. Каждая страница одинакова: на странице по...

Как сделать такой TextBox, куда можно было бы вводить только определенные символы?
Как сделать такой TextBox, куда можно было бы вводитьтолько определенные символы? Например, только числа или только буквы? Спасибо

9
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
15.03.2012, 22:39
В первом приближении так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim bEsc As Boolean 'переменная модуля - перед первой процедурой
'...
Private Sub TextBox1_Change()
If bEsc Then Exit Sub
bEsc = True
Select Case Len(TextBox1)
Case 1, 5, 9, 12
    TextBox1 = TextBox1 & "-"
Case 2, 6, 10, 13
    TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
End Select
bEsc = False
End Sub
2
 Аватар для miss Pacman
47 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 19
16.03.2012, 05:39  [ТС]
Господин Казанский, а можно ли как-то предусмотреть автоматическое проставление символов "-"? Цифры, которые вводятся перед символом "-" - съедаются.. То есть, пользователь вводит 8-923..., первая девятка автоматически заменяется на "-", и получается, 8-23...
0
 Аватар для ironegg
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
16.03.2012, 07:03
когда-то делал для телефонных номеров подобную фичу. курсор в поле - дефисов нет, при уходе из поля - дефисы есть
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub TextBox1_Enter()
    TextBox1 = Replace(TextBox1, "-", "")
End Sub
 
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Set r = CreateObject("vbscript.regexp")
    r.Pattern = "^(\d)(\d\d\d)(\d\d\d)(\d\d)(\d\d)$"  ' ÿ òàê ïîíèìàþ - ýòî òåëåôîííûå íîìåðà? áðàòü â ñêîáêè âòîðóþ ãðóïïó öèôð íå íàäî?
    If Not r.test(TextBox1) Then MsgBox "íåïðàâèëüíûé ôîðìàò íîìåðà, äîëæíî áûòü 11 öèôð"
    TextBox1 = r.Replace(TextBox1, "$1-$2-$3-$4-$5")
End Sub
1
 Аватар для miss Pacman
47 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 19
16.03.2012, 08:39  [ТС]
ironegg, Протестировала.. Вижу, что разметка появляется, когда курсора в поле нет. Даже сообщение выводится о неверном формате Спасибо, большое


Казанский, спасибо, Вам большое
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
16.03.2012, 23:31
Из примера Казанского:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
'модуль
Public LtLast As Integer
 
Sub www()
LtLast = 0
UserForm1.Show
End Sub
 
'модуль формы
Private Sub TextBox1_Change()
Dim Lt As Integer
Lt = Len(TextBox1)
If LtLast = Lt Then Exit Sub
Select Case Lt
Case 1, 5, 9, 12
    If Lt > LtLast Then
        TextBox1 = TextBox1 & "-"
    Else
        TextBox1 = Left(TextBox1, Lt - 1)
    End If
End Select
LtLast = Len(TextBox1)
End Sub
 
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Len(TextBox1) <> 15 Then MsgBox "Неправильный формат номера: должно быть 11 цифр!"
End Sub
0
 Аватар для miss Pacman
47 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 19
17.03.2012, 10:47  [ТС]
Diskretor, а как правильно расположить следующее?

Visual Basic
1
2
3
4
5
6
7
'модуль
Public LtLast As Integer
 
Sub www()
LtLast = 0
UserForm1.Show
End Sub
А можно сделать на примере выложенной формы? Я не могу разобраться
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
17.03.2012, 11:00
В главном меню VBA пункт Insert(Вставить) -> Module(Модуль).
Туда скопировать указанный код.
По F5 запустить процедуру www
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
17.03.2012, 18:16
Да, или с листа Ексель - ALT+F8, {ENTER}.

Вот, надеюсь преобразование форматов нормально прошло, а то работал через Офис 2003.

Я изменил свойство кнопки ОК, теперь по нажатию ENTER с первого раза вводится.
Если что можете вернуть двойной ENTER - вызовите конструктор, нажмите ок, в свойствах Default поставьте False.

Я не знаю как у Вас вызывается форма поэтому разместил ее вызов в модуле. Можете разместить где-угодно, если по нажатию кнопки, тогда эту часть кода
Visual Basic
1
2
LtLast = 0
UserForm1.Show
повесьте на ее клик.

Да, и заумного там ничего нет, так что мышкой между уже введенных цифер в текстбоксе клацать не нужно, дефисы сами не переставятся.
Вложения
Тип файла: rar Новая форма.rar (17.8 Кб, 30 просмотров)
1
 Аватар для miss Pacman
47 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 19
18.03.2012, 16:47  [ТС]
Diskretor, преобразование форматов нормальное. Со свойством Default разобралась, я так поняла, что свойство cancel - аналогично, только уже для для нажатия Esc. Спасибо, Вы прям волшебник
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2012, 16:47
Помогаю со студенческими работами здесь

Как при переходе на поле, содержимое его выделялось, дабы легче было вводить новые данные?
может кто-нить подскажет - как при переходе на поле, содержимое его выделялось, дабы легче было вводить новые данные???

Данные с textbox, combobox и т.д. вводить в БД
У меня такая проблема не могу понять как зделать чтоб данные с textbox combobox и тд вводились в бд и не могу сделать фильтр на каждый...

Не хочет вводить данные в textBox
у меня есть текст бокс для вода адреса проживания и надо что бы в него вводились только цифры(от 0 до 9) ,буквы(большие и маленькие) и / ...

[UWP] Разрешить вводить только числа и одну точку в текстовом поле TextBox
Доброго времени суток уважаемые форумчане. В настоящее время я работаю над своим приложением UWP . Есть ли способ разрешить пользователям...

Как сделать так, что бы можно было вводить данные в форму и давал вывод в той же форме?
вот сам код! import javax.swing.*; import java.awt.*; import java.util.ArrayList; import java.util.Random; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru