powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Маска ввода
19 сообщений из 19, страница 1 из 1
Маска ввода
    #33729031
almaz85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем приветик :)

Такая вот проблемка.
Есть форма на ней поля телефоны
В базе уже порядка 7000 записей с телефоном, естественно он забит по-разному.
варианты (888-8888, 0000000, 999-99-99, ну еще бывают всякие значки типа *, м., ф.,) вот, но теперь борьба с такими форматами пришла к тому, что хочется хранить одни цифры (8888888) а выдавать на форме такой вид 888-8888

я знаю что есть такой инструмент как маска ввода, но в мастеер маски ввода только маски на время, дату...
а как сделать без мастера... непонятно...
прошу помощи :)
как сделать ?
...
Рейтинг: 0 / 0
Маска ввода
    #33729068
Андрей74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нажать F1 не судьба ???
Там описано конкретно для ввода телефонного номера
...
Рейтинг: 0 / 0
Маска ввода
    #33729070
almaz85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей74А нажать F1 не судьба ???
Там описано конкретно для ввода телефонного номера
там все на английском, а перевод в переводчиках совсем не понятный :(
...
Рейтинг: 0 / 0
Маска ввода
    #33729073
Valery_Muhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Достаточно ввести в свойствах поля на закладке Данные в строке Маска ввода такую строку ###-####
И это позволит вводить только цифры и только в виде 123-4567
причем хранится они будут естественно без дефиса. Пробуйте !
...
Рейтинг: 0 / 0
Маска ввода
    #33729076
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увы, программирование все-таки предполагает постояное чтение встроенных подсказок. Часто советуют использовать русский хелп от 97 аксеса.
...
Рейтинг: 0 / 0
Маска ввода
    #33729103
Андрей74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
almaz85 Андрей74А нажать F1 не судьба ???
Там описано конкретно для ввода телефонного номера
там все на английском, а перевод в переводчиках совсем не понятный :(

Тогда приношу извинения :)
Для неимеющих руского хелпа:

Код: plaintext
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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
Свойство «Маска ввода» (InputMask)
Свойство Маска ввода (InputMask) облегчает ввод данных и определяет значения, которые можно ввести в элемент управления поле. String, чтение/запись.

выражение.InputMask

выражение   Обязательное. Выражение, возвращающее один из объектов в списке «Применение».

Заметки
Маски ввода удобно использовать для операций ввода данных, например маска ввода для поля «Телефоны», точно показывает, в каком формате вводить новый телефон: (___) ___-____. Чтобы задать данное свойство, обычно, проще использовать мастер по созданию масок.

Значение свойства Маска ввода (InputMask) может содержать до трех разделов, разделенных точкой с запятой (;).

Раздел Описание 
Первый Представляет саму маску ввода (например, !( 999 )  000 - 0000 ). Перечень знаков, используемых для определения масок ввода, приводится ниже в таблице. 
Второй Определяет режим занесения в таблицу текстовых констант, добавляемых к знакам, вводящимся пользователем.  0  в данном компоненте указывает, что текстовые константы (например, скобки и дефисы в маске ввода телефонных номеров) сохраняются вместе с введенными пользователем значениями; значение  1  или пустое значение данного раздела указывает, что сохраняются только знаки, введенные пользователем. 
Третий Определяет знак, используемый для изображения пустых позиций в маске ввода, в которые помещаются вводящиеся пользователем знаки. В этом разделе можно указать любой знак; чтобы отобразить пустую строку, введите пробел, заключенный в кавычки (" "). 


В программе Microsoft Visual Basic значение данного свойства задается при помощи строкового выражения. Например, следующая инструкция для поля определяет маску ввода для телефонных номеров:

Forms!Customers!Telephone.InputMask = "(###) ###-####"
При создании маски ввода можно использовать специальные знаки, показывающие что текущие данные нужно обязательно ввести (например, региональный код для телефонных номеров), а другие данные являются необязательными (например, добавочный номер телефона). Эти знаки определяют тип данных, например число или знак, которые необходимо ввести для каждого знака маски ввода.

С помощью следующих знаков можно определить маску ввода.

Символ Описание 
 0  Цифра ( 0 - 9 , обязательный знак; знаки (+) и (-) не разрешены). 
 9  Цифра или пробел (необязательный знак; знаки (+) и (-) не разрешены). 
# Цифра или пробел (необязательный знак; незаполненные позиции выводятся как пробелы в режиме редактирования, но удаляются при сохранении данных; знаки (+) и (-) не разрешены). 
L Буква (от А до Я, обязательный знак). 
? Буква (от А до Я, необязательный знак). 
A Буква или цифра (обязательный знак). 
a Буква или цифра (необязательный знак). 
& Любой знак или пробел (обязательный знак). 
C Любой знак или пробел (необязательный знак). 
. , : ; - / Десятичный разделитель, разделители групп разрядов, времени или даты. (Используемые знаки разделителей определяются настройками, выбранными на панели управления Microsoft Windows в диалоговом окне Язык и стандарты.) 
< Преобразует все знаки к нижнему регистру. 
> Преобразует все знаки к верхнему регистру. 
! Указывает заполнение маски ввода справа налево, а не слева направо. Заполнение маски знаками всегда происходит слева направо. Восклицательный знак в маске ввода можно помещать в любую позицию. 
\ Указывает, что следующий знак будет отображаться как текстовая константа (например, \A отображается как «A»). 

Примечание.   Значение «Пароль» свойства Маска ввода (InputMask) создает элемент управления, предназначенный для ввода пароля. Любые знаки, вводящиеся в этот элемент управления будут отображаться на экране звездочками (*). Подобная маска ввода используется для предотвращения вывода на экран вводящихся знаков.
Значение данного свойства элемента управления задается в его окне свойств. Для поля таблицы значение данного свойства задается в режиме конструктора таблицы (в области свойств поля) или в режиме конструктора окна запроса (в окне свойств поля).

Кроме того, значение свойства Маска ввода (InputMask) можно задать в макросе или в программе Microsoft Visual Basic.

При вводе данных в поле, для которого определена маска ввода, всегда используется режим замены. При удалении знака путем нажатия клавиши BACKSPACE знак заменяется на пробел.

При копировании или перемещении содержимого поля, для которого определена маска ввода, в буфер обмена текстовые константы маски копируются вне зависимости от режима их сохранения.

Примечание.   Маска ввода используется только при вводе знаков в элемент управления или в поле со списком с клавиатуры и игнорируется при всех остальных операциях. Например, при импорте данных, при выполнении запроса на изменение, а также при вводе знаков в элемент управления с помощью конструкции Microsoft Visual Basic, в которой задается значение свойства Text элемента управления, или при выполнении макрокоманды Задать значение (SetValue) в макросе.

Если определена маска ввода и одновременно задано для того же поля значение свойства Формат поля (Format), то при выводе данных приоритет имеет свойство Формат поля (Format). Это означает, что при форматировании данных сохраненная маска ввода игнорируется. Данные в базовой таблице при этом не изменяются; свойство Формат поля (Format) определяет только режим отображения данных.
...
Рейтинг: 0 / 0
Маска ввода
    #33729128
almaz85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо за понимание...

и за такой подробный хелп...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Маска ввода
    #38557075
Upgrader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неожиданная проблема.
Маска ввода 00.00.9999;0;_ (да и другие варианты, не суть важно)

При вводе 10.10.20, получаем: 10.10.2020 Нормально.
Внезапно!
При вводе 10.10.30 получаем: 10.10.1930
Можно ли сделать, чтобы было изначально не 19хх, а 20хх?
...
Рейтинг: 0 / 0
Маска ввода
    #38557113
Upgrader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался. Access ни при чём. Региональные настройки Windows: если год введен двумя цифрами, отображать как год между 1931 и 2030 (поставил 2050)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Маска ввода
    #39072597
Takaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите тоже с масками ввода. Есть форма, куда пользователи заполняют данные. Данные пишутся не вручную, а копируются из других источников. Пример: в источнике данные в наборе цифр, напримпер 123456, а хранить их надо в виде 1234х6.
Если задать маску 0000х0;0, то при вставки "123456" я буду получать такое: "1234х5". А надо "1234х6". Как можно решить данный вопрос?
...
Рейтинг: 0 / 0
Маска ввода
    #39072688
Например на событии Cange поля:
Код: vbnet
1.
2.
3.
s1 = Trim(Me![Поле].Text)
s2 = Left(s, Len(s)-2) & "x" & Right(s,1)
If s2 <> s1 Then Me![Поле].Value = s2
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Маска ввода
    #39672453
Фотография Rikozenit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
В таблице есть текстовое поле ОБОЗНАЧЕНИЕ.
Через одну из форм в это поле с помощью маски ввода "АБВГ."###\.###\-## вносятся данные: АБВГ.087.000-14, АБВГ.088.000-15 и т.п., а через другую форму в это поле с помощью маски ввода "ТТ."##\.##\-# вносятся данные в виде ТТ.33.12-5.
И могут быть ещё 2-3 формы с другими масками на это поле.
НО в таблице-то хранятся только цифры! Букв из маски в таблице нет(
А как же тогда по этой таблице строить отчёт?
Спасибо!
...
Рейтинг: 0 / 0
Маска ввода
    #39672607
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да как угодно....
хоть на поле отчета перед нужным полем надпись с нужным текстом поставить,
хоть при создании набора записей для отчета через SQL прилепить нужный текст к нужному полю......
...
Рейтинг: 0 / 0
Маска ввода
    #39672612
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А текст, который нужно вставить - определить через пользовательскую функцию - анализируя значение в коде как текстовую переменную...
...
Рейтинг: 0 / 0
Маска ввода
    #39672655
Фотография Rikozenit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311,
просто получается, что данные о буквенном префиксе вообще нигде не хранятся? Они в таблицу же не попадают! И только отображаются в формах.
...
Рейтинг: 0 / 0
Маска ввода
    #39672676
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RikozenitSerg197311,
просто получается, что данные о буквенном префиксе вообще нигде не хранятся? Они в таблицу же не попадают! И только отображаются в формах. Ну это как раз вам виднее- как они хранятся.... мы то это только с ваших слов знаем...
Если там и правда просто цифры, да еще одного порядка - то разделить их имхо никак не выйдет.... Если там все-таки текст, с точками или еще какими разделительными символами - то должно получится...
...
Рейтинг: 0 / 0
Маска ввода
    #39672728
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в маске литералы нужно обозначить обратным слэшем "\А\Б\В\Г...
...
Рейтинг: 0 / 0
Маска ввода
    #39672894
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RikozenitSerg197311,
просто получается, что данные о буквенном префиксе вообще нигде не хранятся? Они в таблицу же не попадают! И только отображаются в формах.Выше, в топике, который ты и продолжил

2667813
авторЗначение свойства Маска ввода (InputMask) может содержать до трех разделов, разделенных точкой с запятой (;).

Раздел Описание
Первый Представляет саму маску ввода (например, !(999) 000-0000). Перечень знаков, используемых для определения масок ввода, приводится ниже в таблице.
Второй Определяет режим занесения в таблицу текстовых констант, добавляемых к знакам, вводящимся пользователем. 0 в данном компоненте указывает, что текстовые константы (например, скобки и дефисы в маске ввода телефонных номеров) сохраняются вместе с введенными пользователем значениями ; значение 1 или пустое значение данного раздела указывает, что сохраняются только знаки, введенные пользователем.
Третий Определяет знак, используемый для изображения пустых позиций в маске ввода, в которые помещаются вводящиеся пользователем знаки. В этом разделе можно указать любой знак; чтобы отобразить пустую строку, введите пробел, заключенный в кавычки (" ").
...
Рейтинг: 0 / 0
Маска ввода
    #39674865
Фотография Rikozenit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
court, позор мне(( Проглядел( Спасибо большое! Теперь моя маска - что надо))
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Маска ввода
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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