powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поле со списком... Опять!
11 сообщений из 11, страница 1 из 1
Поле со списком... Опять!
    #32760816
Фотография ДАВИД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги !
Суть вопроса...
Есть поле со списком на базе SQL-запроса. При вводе в это поле выпадает список.
Хотелось бы, чтобы при вводе на список накладывался как бы фильтр по введенному выражению, то-есть из всего списка отбирались те позиции, которые соответсвуют введенному (хоть и частично) в поле выражению.
Как это сделать - понятно, НО будет очень медленно работать (если после ввода каждого символа в свойстве KeyPreview , делать
Код: plaintext
.RowSource.requery
Можно ли вообще , чтобы подобная функция работала быстро (хотя бы относительно быстро)

Давид

P.S.
Кажется изложил не очень внятно, извиняюсь.
...
Рейтинг: 0 / 0
Поле со списком... Опять!
    #32760822
Фотография ДАВИД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.P.S.
Access 97, 2000, базы mdb.
...
Рейтинг: 0 / 0
Поле со списком... Опять!
    #32760833
scoritt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем что-то придумывать? В поле со списком работает автозаполнение! Ввёл первую буковку и появилось первое подходящее :))
...
Рейтинг: 0 / 0
Поле со списком... Опять!
    #32760874
Фотография ДАВИД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scorittА зачем что-то придумывать? В поле со списком работает автозаполнение! Ввёл первую буковку и появилось первое подходящее :))
УТОЧНЯЮ...
Допустим весь список 500 строк
Вы ввели первую буква "Ф" и у Вас сисок - 100 строк,где все строки начинаются с "Ф". Ввели "Фп" - сисок 20 строк, все начинаются с "Фп" и т.д.
Тоесть фильтр на список.
Ну а автозаполнение ... это тоже хорошо.
...
Рейтинг: 0 / 0
Поле со списком... Опять!
    #32760936
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub Подрядчик_KeyPress(Cancel As Integer)
 Dim tblT As Variant, dbT As Variant
   Dim fldKod As Variant, fldName As Variant
   Dim strPoisk As String
   Dim strRS As String
   Dim ctlSpisok As Variant
   Set dbT = CurrentDb()
   Set tblT = dbT.TableDefs("Подрядчики")
   Set fldKod = tblT.Fields("КодП")
   Set fldName = tblT.Fields("Наименование подрядчика")
   Set ctlSpisok = Me![подрядчик]
   If Not IsNull(strPoisk) Then
       strRS = "SELECT   " & tblT.Name & "." & fldKod.Name & ",  " & tblT.Name & ".[" & fldName.Name & "] " _
       & "FROM " & tblT.Name & " " _
       & "WHERE ((( " & tblT.Name & ".[" & fldName.Name & "]) Like '*" & Me![подрядчик].Text & "*'));"

ctlSpisok.RowSource = strRS
SendKeys "%{DOWN}", True
 End If

End Sub
Пример работы
Отбор производится с любой частью поля
...
Рейтинг: 0 / 0
Поле со списком... Опять!
    #32760963
Фотография ДАВИД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый(ая) Ирча!
1. Тот же .recordsorce.requery - только в профиль.
2. В том поле уже есть recordsorce - с "SELECT ..." на 4 строчки из 4-х таблиц с кучей условий по WHERE и HAING ( , а так же большим order...)
При первом входе в поле список отбирается и выпадае за 1,5-2 сек !

Вот такой ПЕРДЕМОНОКЛЬ ...
...
Рейтинг: 0 / 0
Поле со списком... Опять!
    #32760978
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во временную табличку результаты сложите...
Первые сорок записей выводите, а не 500..
Если Ваш запрос долго считается, то я не могу сказать крекс-пекс-фэкс и ускорить его расчет:-)
...
Рейтинг: 0 / 0
Поле со списком... Опять!
    #32760979
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, звиняйте, бананьев нема

Просто у меня тоже очень большой список, а отбирается в лет...
...
Рейтинг: 0 / 0
Поле со списком... Опять!
    #32761027
Фотография ДАВИД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НАРОД! не ругайте меня !!!
Дело только в том, чтобы ограничивать выбор из списка для стерто операторов! О!!!
(...извините.)
...
Рейтинг: 0 / 0
Поле со списком... Опять!
    #32761062
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДАВИДУважаемый(ая) Ирча!
1. Тот же .recordsorce.requery - только в профиль.
2. В том поле уже есть recordsorce - с "SELECT ..." на 4 строчки из 4-х таблиц с кучей условий по WHERE и HAING ( , а так же большим order...)
При первом входе в поле список отбирается и выпадае за 1,5-2 сек !

Вот такой ПЕРДЕМОНОКЛЬ ...
Шарк прав - нужна промежуточная таблица - справочник
...
Рейтинг: 0 / 0
Поле со списком... Опять!
    #32761485
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фильтрация формы

работает в улетно

почти как у Ирчи, но сложнее критерий.


при первом входе список.RowSource="" , и не надо тратить время на ожидание - всё равно полный список не нужен.

а ежели like поставить где-нить в первоначальных отборах дак вообще должно быстро быть.

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


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