powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать ввод в поле определенный набор символов
12 сообщений из 12, страница 1 из 1
Как сделать ввод в поле определенный набор символов
    #32097859
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо занасить в поле определенный набор символов, скажем от 0 до 9 (одни цифры) и разделитель десятичных знаков сделать точку?
...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32097895
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы сделал через KeyCode хотя и не очень если чесно надоучитывать Shift и правые кнопки на клаве
Код: plaintext
1.
2.
Private Sub Text0_KeyDown(KeyCode As Integer, Shift As Integer)
...
End Sub
...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32097896
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитайте help по маске ввода поля.
...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32097904
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приношу извинения, наверное, не понял вопрос.
Присоединяюсь к Sfagnum, но ничего сложного не вижу, если использовать событие KeyPress - тогда всё обработает один case на 12 вариантов - 0-9,запятая, преобразуемая в точку и собственно точка, остальные - отменить.
...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32097936
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерчик не кините???
...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32097981
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub Pole_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode =  8  Then Me!Pole = left(Me!Pole, Len(Me!Pole) -  1 ) ' backspase '
End Sub

Private Sub Pole_KeyPress(KeyAscii As Integer)
    Select Case Chr(KeyAscii)
    Case  "0 "
        Me!Pole = Me!Pole +  "0 "
    Case  "1 "
        Me!Pole = Me!Pole +  "1 "
    Case  "2 "
        Me!Pole = Me!Pole +  "2 "
    Case  "." 
        Me!Pole = Me!Pole +  "." 
    Case  "," 
        Me!Pole = Me!Pole +  "." 
    Case Else
    End Select
    KeyAscii =  0 
End Sub

...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32098040
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня в поле ничего не печатается.
...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32098110
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KeyCode - возвращает не код символа, а код нажатой клавиши, т.е. надо определить все допустимые кода клавиш и только их и пропускать, а на остальные у присваивать значение 1 (например, у меня оно прошло)
а так же отслеживать нажатие шифта это для KeyDown
Но удобнее использовать KeyPress он проще

вполне возможно что у Вас ни чего не печатается потому что вы применили приведённые функции одновременно. Т.к. кнопка с KeyCode = 8, я более чем уверен, не являяется кнопкой с допустимым значением => до события KeyPress не "доходят" допустимые символы.

Извените за сумбурность.
...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32098161
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Sfagnum. я тебе на ящик кинул файлик, посмотри его (если не в ломы.)
...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32098284
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SergeyS
Извини, забыл указать:
В поле должен быть default = "", иначе NULL+"0"=NULL
...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32098343
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, все нормально....
...
Рейтинг: 0 / 0
Как сделать ввод в поле определенный набор символов
    #32321253
alex_pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 SergeyS
Извини, забыл указать:
В поле должен быть default = "", иначе NULL+"0"=NULL

можно его обрабатывать через нз:
Me!Pole = nz(Me!Pole,"0") + "0"
А вообще что-то этот метод по поему не очень - что делать если курсор не в конце а в середине? или выделен кусок текста? тут еще нужно учитывать selText & selLength. И зачем гейтс маски ввода писал, старался? И нужно ли делать поле текстовым если число вводится? если поле сложное типа 11,4 котелков, то это ненормально (атомарность данных-закон). Даже в этом случае маска ввода поможет не хуже (остается только конвертить точку в запятую). А то если дублировать встроеные фичи, то уж лучше на ассемблере писать :)
И еще - используя стандартные модели поведения контролов, меньше дезориентируешь юзера - он ведь не только одной программой по жизни пользуется.
Спасибо всем, все нормально.... жди сюрпризов.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать ввод в поле определенный набор символов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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