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

CCCCCCCCCC;_

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

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

с ошибкой "invalid procedure call or argument"
...
Рейтинг: 0 / 0
13.08.2004, 20:16:46
    #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
13.08.2004, 20:36:43
    #32649475
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
Вроде у текстбокса нет Requery?
...
Рейтинг: 0 / 0
13.08.2004, 21:03:22
    #32649484
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
Может и нету requery, но в 2003 во всяком случае работает
...
Рейтинг: 0 / 0
13.08.2004, 21:06:04
    #32649487
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
Владимир СанычВроде у текстбокса нет Requery?
Саныч уже в 97 есть.
...
Рейтинг: 0 / 0
13.08.2004, 21:19:05
    #32649490
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
Обоснование requery:

t0="абы что"
t1.requery
...
Рейтинг: 0 / 0
14.08.2004, 09:21:19
    #32649580
Shcegolev Anton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
Поле t1 существует!
Все равно выдается ошибка " invalid procedure call or argument ".
При чем ошибка выдается даже если тело процедуры оставить пустым...
???
...
Рейтинг: 0 / 0
14.08.2004, 11:24:30
    #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
14.08.2004, 11:58:47
    #32649621
Shcegolev Anton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
И здесь выдается та же ошибка.
При этом курсор выполнения программы (желтое выделение) в момент ошибки становится именно на строке:
Код: plaintext
Public Sub note_Change()
...
Рейтинг: 0 / 0
14.08.2004, 12:29:16
    #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
14.08.2004, 12:40:57
    #32649640
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
и подручными средствами
mdb Acc97
Код: plaintext
1.
2.
3.
Private Sub note_Change()
Me![t1] = Len(Nz(Me![note].Text,  0 ))
End Sub
...
Рейтинг: 0 / 0
14.08.2004, 16:54:50
    #32649750
Shcegolev Anton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?)
У меня получилось !!!
Но только после того, как я заново переделал всю базу "с чистого листа" (хорошо что она маленькая :-) ).
Та ошибка в прошлой базе так и не исчезла... Видимо я еще где-то напортачил.
Огромное всем спасибо за участие в моей проблеме !!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите ... (Как сделать чтобы при каждом вводе символа в поле где-то ниже писалась длина текста ?) / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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