powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
16 сообщений из 16, страница 1 из 1
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649392
Shcegolev Anton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу на SQL Server 2k, но использую Access как клиент. Кода в Access не касался.
Возникла задача:
На форме пользователь заполняет текстом определенное поле, но при этом он должен контролировать длину текста (не более N).
Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649409
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть предложение (если конечно текст не длинный): задай для поля маску

CCCCCCCCCC;_

(С-латинское) Количество символов "C" - равно максимальному количеству символов.
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649410
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в поле ввода (назовём t0) в обработке события On Key Press написать t1.requery
в поле "счётчика" (назовём t1) Control Source задать =Len(t0.Text)
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649422
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее =Len(IIf(IsNull((T.Text));"";T0.Text))
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649435
Shcegolev Anton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему-то останавливается на:

Код: plaintext
1.
2.
Private Sub note_KeyPress(KeyAscii As Integer)
    t1.Requery
End Sub

с ошибкой "invalid procedure call or argument"
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649460
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shcegolev AntonПочему-то останавливается на:

Код: plaintext
1.
2.
Private Sub note_KeyPress(KeyAscii As Integer)
    t1.Requery
End Sub

с ошибкой "invalid procedure call or argument"

а поле t1 сделать не забыл ?
кстати можно и без requery и без Control Source
Код: plaintext
1.
2.
Private Sub note_KeyPress(KeyAscii As Integer)
t1=Len(IIf(IsNull((note.Text));"";note.Text))
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649475
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вроде у текстбокса нет Requery?
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649484
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может и нету requery, но в 2003 во всяком случае работает
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649487
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычВроде у текстбокса нет Requery?
Саныч уже в 97 есть.
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649490
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обоснование requery:

t0="абы что"
t1.requery
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649580
Shcegolev Anton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поле t1 существует!
Все равно выдается ошибка " invalid procedure call or argument ".
При чем ошибка выдается даже если тело процедуры оставить пустым...
???
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649609
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
Public Sub MySuperField_Change()
    msgbox len(Me!MySuperField.Text)
    Me!MySuperField.SelStart = len(Me!MySuperField.Text)
End Sub
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649621
Shcegolev Anton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И здесь выдается та же ошибка.
При этом курсор выполнения программы (желтое выделение) в момент ошибки становится именно на строке:
Код: plaintext
Public Sub note_Change()
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649633
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
держи земляк подарок от Гетца (купи книженку то):
Код: plaintext
1.
2.
3.
Private Sub поле1_Change()
Call adhLimitChars(поле1, N)
Me.Поле2.Requery
End Sub
здесь поле1 - где вводят юзера текст, N - максимальное количество знаков

в модуль вставь
Код: 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.
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

    hWnd = GetFocus()

    lngNewMax = Len(txt.Text)
    Forms![Form].Поле2 = lngNewMax
    If lngNewMax < lngLimit Then
        lngNewMax = lngLimit
    End If
    SendMessageLong hWnd, EM_SETLIMITTEXT, lngNewMax,  0 
End Sub
я просто вставил строку куда выводить длину текста Forms![Form].Поле2 = lngNewMax
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649640
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и подручными средствами
mdb Acc97
Код: plaintext
1.
2.
3.
Private Sub note_Change()
Me![t1] = Len(Nz(Me![note].Text,  0 ))
End Sub
...
Рейтинг: 0 / 0
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
    #32649750
Shcegolev Anton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня получилось !!!
Но только после того, как я заново переделал всю базу "с чистого листа" (хорошо что она маленькая :-) ).
Та ошибка в прошлой базе так и не исчезла... Видимо я еще где-то напортачил.
Огромное всем спасибо за участие в моей проблеме !!!
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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