powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ограничение на длину вводимого текста.
3 сообщений из 3, страница 1 из 1
Ограничение на длину вводимого текста.
    #32417654
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поле Строка (свободное!) для ввода текста, Поле5 - длина текста. Нужно ограничить текст 50-ю знаками. Пишу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
If Len(Строка.Text) =>  50  Then
Строка.Text = Left(Строка.Text,  50 )
Поле5.ForeColor =  255 
MsgBox  "Длина текста - 50  знаков!"
Else
Поле5.ForeColor =  0 
End If
Поле5= Len(Строка.Text)

Программа затыкается на выводе сообщения. Если строку с сообщением убрать - работает, но так: при достижении предельной длины курсор перескакивает в начало поля Строка, т.е. 51-ый знак затирает 1-ый и т.д.
Можно сделать, чтоб и сообщение было, и курсор бы "уперся" в конец поля Строка?
...
Рейтинг: 0 / 0
Ограничение на длину вводимого текста.
    #32417680
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из Гетца:

txtTest - имя текстбокса

Код: plaintext
1.
2.
3.
Private Sub txtTest_Change()
   
     Call adhLimitChars(txtTest, Val(txtValue))
End Sub


Cкопируй это в модуль:
Код: 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.
Option Compare Database
Option Explicit

' From Access 2002 Desktop Developer's Handbook
' by Litwin, Getz, and Gunderloy. (Sybex)
' Copyright  2001 .  All rights reserved.

Private Declare Function SendMessageLong _
 Lib  "user32"  Alias  "SendMessageA"  _
 (ByVal hWnd As Long, ByVal wMsg As Long, _
 ByVal wParam As Long, lngValue As Long) As Long

Private Declare Function GetFocus _
 Lib  "user32"  () As Long

Private Const EM_SETLIMITTEXT As Long = &HC5

Public Sub adhLimitChars(txt As TextBox, lngLimit As Long)
 
    Dim hWnd As Long
    Dim lngResult As Long
    Dim lngNewMax As Long
    
    ' Get the window handle for the current window.
    hWnd = GetFocus()
    
    ' Hey, what if there's ALREADY too much text in
    ' there?  Limiting the text would make it
    ' impossible to type in there at all.  You want
    ' to set the limit to be the max of the amount
    ' you want and the amount that's in there!
    lngNewMax = Len(txt.Text)
    If lngNewMax < lngLimit Then
        lngNewMax = lngLimit
    End If
    
    ' Send the message to the current text box
    ' to limit itself to lngNewMax characters.
    SendMessageLong hWnd, EM_SETLIMITTEXT, lngNewMax,  0 
End Sub



Удачи :)
...
Рейтинг: 0 / 0
Ограничение на длину вводимого текста.
    #32417684
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Input Mask = CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

ну вообщем "C" - 50 раз

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ограничение на длину вводимого текста.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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