powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подвязывание запросов к комбобоксам
25 сообщений из 28, страница 1 из 2
Подвязывание запросов к комбобоксам
    #32593439
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуф-нуфдля Владимир Саныч:
>1. Если на форме много комбобоксов, то их RowSource'ы приходится хранить в виде сохраненных запросов, иначе форма работает намного медленнее.
Саныч, если честно, то в моей практике лишь несколько раз встречались формы, перегруженные комбобоксами ("перегруженные" в смысле "тормозящие открытие самой формы"). Бился по всякому – и сохраненные и в самом комбике – пофик, тормоза не исчезали. Решил за счет последовательного динамического подвязывания запросов к комбобоксам в момент, когда форма уже открывалась. Форма открывалась быстро и юзер практически не замечал, что… некоторые комбобоксы получают значения и позволяют себя "открыть" только по истечении десятка секунд %) Основные (в первую очередь необходимые юзеру) комбобоксы подключались как и обычно в режиме конструктора, при этом практически не тормозя открытие формы.

Подскажите как сделать
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593563
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я неправильно задал вопрос?
На какое событие в форме завязать обновление комбобоксов? так чтобы сначала форма открылась, а затем обновились комбобоксы.
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593570
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после открытия формы присвоиваешь RowSource списков содержательное значение и делаешь requery
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593577
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Видимо, на OnOpen:

Me!Combo116.RowSource = длинныйселект
Me!Combo117.RowSource = длинныйселект
Me!Combo118.RowSource = длинныйселект
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593579
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Requery вроде само делается, когда меняешь RowSource.
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593599
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычRequery вроде само делается, когда меняешь RowSource.
списки часто связанные с друг дружкой - requery
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593600
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычRequery вроде само делается, когда меняешь RowSource.
Нет. Проверено на XP
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593610
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажем так
Мой взгляд на проблему (естественно, без реализации)

- Все комбы в первоначальный момент времени заполнены только одним значение (которое и выбрано в комбе) - типа значение по умолчанию (что-то типа Select * From Table1 Where id = 1)
- Подменяем RowSource у комба в момент обращения к нему - по событию, т.е. заменяем серект с условием на селект без оного
ИМХО: Я бы этим ограничился, но чел. пишет еще и о дозаполнении комбов
Ну и пусть:
- имеем список комбов (массив №1) + массив №2 типа boolean (заполнены/нет)
- изначально второй массив сброшен
- я думаю, что еще надо иметь массив №3 с "подменками" (т.е. с текстами реальных запросов)
- по таймеру (например 1 раз в секунду) вызываем процедуру заполнения комбо
- процедура примерно следующая:
-- находим не заполненный комбо (массив №2)
-- подменяем ему запрос на реальный (массив №3)
-- метим комбо как заполненный (массив №2)
-- если все комбы заполнены, то отключаем таймер (хотя это и не обязательно)
- в расчете на то, что комбы могут быть заполнены при обращении к ним, делаем пометки в массиве №2 не только по таймеру

Э-э-э - вроде все :))
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593626
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikPМожет я неправильно задал вопрос?
На какое событие в форме завязать обновление комбобоксов? так чтобы сначала форма открылась, а затем обновились комбобоксы.

Ужасно извиняюсь неправильно выразился.
Как сделать следующее:
Открываешь форму с комбобоксами (форма открывается сразу без тормозов)
после того как форма открылась комбобоксы "обнавляются"
под обнавляются понимается следующее:
когда открываешь комбобокс, то первый раз он тормозит (выполняет запрос), а при втором открытии идет по накатанной (без тормозов)
так вот надо сделать, чтобы тормоза (выполнение запроса) происходило во время размышлений пользователя какой комбобокс ему открыть
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593642
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikP...
так вот надо сделать, чтобы тормоза (выполнение запроса) происходило во время размышлений пользователя какой комбобокс ему открыть
ИМХО, как я уже говорил, по таймеру

+
Может еще и эвристику написать, чтобы угадывать, какой это комбик собрался пользователь открыть
При этом обладая только информацией о настроении человека
Информация о настроении вычисляется по активности нажатий на кнопки мыши и клавиатуры
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593663
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparome NikP...
так вот надо сделать, чтобы тормоза (выполнение запроса) происходило во время размышлений пользователя какой комбобокс ему открыть
ИМХО, как я уже говорил, по таймеру

+
Может еще и эвристику написать, чтобы угадывать, какой это комбик собрался пользователь открыть
При этом обладая только информацией о настроении человека
Информация о настроении вычисляется по активности нажатий на кнопки мыши и клавиатуры

чё статистику собрать сложно ?
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593673
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparome+
Может еще и эвристику написать, чтобы угадывать, какой это комбик собрался пользователь открыть
При этом обладая только информацией о настроении человека
Информация о настроении вычисляется по активности нажатий на кнопки мыши и клавиатуры


Я так понимаю ты предлагаешь запуск select-а во время обращения к комбобоксу. Мне же нужно, чтобы первый запуск запроса в комбобоксе произошел сразу после открытия формы. Причем по всем комбобоксам
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593689
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, обновлять комбобокс в момент обращения к нему?
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593717
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RowSource у комбобоксов не меняется, меняются только параметры запроса исходя из данных на этой же форме
Обновление в моем случае это не просто обновление, а (Читай ниже жирным шрифтом)

Открываешь форму с комбобоксами (форма открывается сразу без тормозов)
после того как форма открылась комбобоксы "обнавляются"
под обнавляются понимается следующее:
когда открываешь комбобокс, то первый раз он тормозит (выполняет запрос), а при втором открытии идет по накатанной (без тормозов)

так вот надо сделать, чтобы тормоза (выполнение запроса) происходило во время размышлений пользователя какой комбобокс ему открыть
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593730
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Есть еще одно средство для ускорения. Правда, очень радикальное. Делать привязанной колонкой не скрытую, а тот текст, который показан. Это очень сильно ускоряет, хотя требует серьезных изменений во всей программе. В том числе надо позаботиться об отсутствии дублей в списке.
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593806
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычЕсть еще одно средство для ускорения. Правда, очень радикальное. Делать привязанной колонкой не скрытую, а тот текст, который показан. Это очень сильно ускоряет, хотя требует серьезных изменений во всей программе. В том числе надо позаботиться об отсутствии дублей в списке.

Честно говоря не хотелось бы применять данный способ

А вообще реально ли запустить первый раз запрос в комбобоксе програмно?
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593883
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА вообще реально ли запустить первый раз запрос в комбобоксе програмно?
Что-то мы не понимаем друг друга.
Цытата в первом топике как раз направлена на обратное, т.е. предотвратить полное заполнение комбиков в момент загрузки формы (что бы окно быстрей открылось)
И мне всегда казалось, что запрос на комбике выполняется сразу (при загрузке формы или при смене RowSource), а не при первом к нему обращении

Или я не прав
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593922
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparomeЧто-то мы не понимаем друг друга.
Цытата в первом топике как раз направлена на обратное, т.е. предотвратить полное заполнение комбиков в момент загрузки формы (что бы окно быстрей открылось)
Если в событие открытие формы ничего не засовываю, то открывается быстро
Отсюда возник вопрос куда засунуть данный код

paparomeИ мне всегда казалось, что запрос на комбике выполняется сразу (при загрузке формы или при смене RowSource), а не при первом к нему обращении

Или я не прав
получается, что не прав, т.к. при первом открытии комбика он долго грузится, а при втором открытии выпрыгивает сразу. (а возможно и прав, может быть если комбик не свободный объект (у меня свободный), событие и происходит сразу)
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593939
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может тогда не стоит такие "длинные" комбики делать?
т.е. (ИМХО - конечно), больше 100 записей в комбике - это уже многовато, и может стоит такие комбики бить на партии (части/группы)?
типа - первый комбик выбирает группу, второй уже состав этой группы?
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32593963
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparomeА может тогда не стоит такие "длинные" комбики делать?
т.е. (ИМХО - конечно), больше 100 записей в комбике - это уже многовато, и может стоит такие комбики бить на партии (части/группы)?
типа - первый комбик выбирает группу, второй уже состав этой группы?

Да они небольшие. сам запрос большое количество данных обрабатывает.
форма данная существует для установки параметров. Есть временной период (указан на форме). так вот исходя из этого периода комбик должен выдать те группы товаров, которые за этот период продавались. А данные по продажам сам понимаешь исчисляются тысячами строк.
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32594047
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите хотя бы как называется событие, когда список комбика открывается
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32594059
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
/topic/104140
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32594092
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Moжно еще ADO рекордсеты
асинхронно заполнять
и по событию комплит ADO конекшена
присоеденять их к контролу
у Гетца есть пример самый ИМХО верный способ.
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32594127
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч/topic/104140
Поискал, но почему то не нашел? Да название топика отражает мой вопрос, только решили они похоже проблему по другому. Или я чего не понял?
...
Рейтинг: 0 / 0
Подвязывание запросов к комбобоксам
    #32594134
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем асинхронные запросы не подходят?
По моему самое то
по открытию формы
откраваеш новый конекшн WithEvents
и на чинаеш асинхронно заполнять рекордсет через его Execute

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


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