powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Считывание значения комбобокса "опаздывает" на один шаг
1 сообщений из 1, страница 1 из 1
Считывание значения комбобокса "опаздывает" на один шаг
    #35869271
Птица-Говорун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access 2003

Есть таблица со списком имен и фамили (три колонки, ID Name Surname)
Есть форма, на которую эта таблица выводится. На форме комбобокс - СВ.
Задача состоит в следующем:
в процессе набора текста в комбобксе искать имена, в которых введенные символы встречаются и раскрывать список с этими именами. Т.е. J - Jane, John, Jackson; Ja - Jane, Jackson; Jan - Jane

Сделано следующее:

Private Sub CB_Change()

Dim SearchChar As String
SearchChar = CB.Value

CB.RowSource = "" 'чистим список на случай, если поиск уже не первый

Me.Recordset.MoveFirst
While Not Me.Recordset.EOF 'Двигаемся по рекордсету таблицы, привязанной к форме
If InStr(Me.Recordset.Fields(1).Value, SearchChar) <> 0 Then 'если введенный символ входит в значение поля "Name"
CB.AddItem Me.Recordset.Fields("Name").Value 'то добавлем его в список
End If
Me.Recordset.MoveNext 'смотрим следующую строку таблицы
Wend

CB.Dropdown 'список сформирован, раскрываем

End Sub


Проблем две.
1. сабж. Каждый раз после введения нового символа в списке находятся значения, найденные для предыдущего введенного значения. Т.е., к примеру, первый раз раскрываем форму. В комбобоксе значение по умолчанию - "_", символ не входит ни в одно из имен в таблице. Вводим туда "J" - букву, встречающуюся в каждом имени таблицы. Список раскрывается пустой. Вводим другую букву, не встречающуюся ни в одном имени в таблице. Раскрывается список со всеми именами - результат поиска по предыдущей введенной букве.
Почему так происходит? Как сделать, чтобы искалось текущее значение, а не предыдущее?

2. В комбобокс не получается ввести больше одного символа. Как сделать, чтобы можно было вводить многобуквенные слова?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Считывание значения комбобокса "опаздывает" на один шаг
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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