powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как избавится от кнопки в поле со списком
32 сообщений из 32, показаны все 2 страниц
Как избавится от кнопки в поле со списком
    #32268030
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AccessXPADP+MSSQL2K

Есть справочник ID int,Name varchar(50)

Есть запрос для ленточной формы, выводящий Name
Запрос приходится оптимизировать по размеру протаскиваемых через сеть данных.
Пошел таким путем:
Засасываю весь справочник в рекордсет при запуске программы.
Вместо Name в запросе передаю ID .
На форме вместо текстового поля делаю поле со списком
и присоеденяю к нему заранее закачанный рекордсет.

Все отлично размер передаваемых данных значительно сокращается ,
но для достижения того же , что и с текстовым полем вида надо избавится от
кнопки развертывания в углу поля со списком.
Наехал на нее соседним полем , но когда фокус переходит
в поле кнопка всплывает наверх.
Как от этого избавится?
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268037
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Проще всего заменить поле со списком на поле без списка. Тогда и данных будет меньше качаться.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268040
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Засасываю весь справочник в рекордсет при запуске программы.
А если его засасывать при запуске в локальную табличку - не проще ли будет?
И используй себе нормальный текстбокс, не надо мучаться...
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268046
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воистину странная оптимизиция
Хотя... может смысл в этом и есть...
Типа вместо того чтобы на каждую запись качать текстовое поле хрен пойми какого размера - закачать ID и один раз список значений..
Надо подумать...
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268054
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во! Придумал!
Делаешь невидимое поле со списком, и текстбокс, у которого в данных пишешь "=[HiddenListBoxName].Column(1)"
Авось прокатит
Если только для всех строк ленточной формы не получится одно и то же значение текстбокса - в зависимости от текущей записи.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268072
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я несколько другим путем пошел (хотя в проге и есть сохраненые рекодсеты)

Я на хрен снес поля со списками (там где они больше 100 строк (100 - это так пока от балды - в будущем станет 2 - лень-матушка :) ), оставив только поле с текстовым значением и скрытое поле с ID) - все готовиться на сервере в ХП. Стало достаточно быстро работать (особенно подчененые формы).
Рядом с полем поставил кнопки: редактировать/добавить, очистить значение (если нужно). Доступ к полю закрыл. Указал однозначную таблицу.
Подобное решение есть где-то у Гетца (или Литвина?)
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268075
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Делаешь невидимое поле со списком, и текстбокс
Так я делал , но тогда получается вычисляемое поле ,
и пользователи не могут по нему делать фильтры и сортировку,
а без этого им никак.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268084
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Geo
У меня же ADP-ник
Чтоб локальную таблицу завести надо отдельный конект заводить и таскать за собой MDB
Да еще потом геморой с гетерогенными запросами.
В общем с рекордсетом гораздо проще.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268086
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Latuk
Скажи пожалуйста, коль скоро ты все равно при запуске программы закачиваешь все в рекордсет при запуске программы, почему бы тебе не закачивать все во временную таблицу? И подцепляй потом эту таблицу. И работай с текстовым полем.
Причем запрос на добавление записей в таблицу (ЛП не даст соврать) можно даже (!) сделать асинхронным. :)
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268088
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опоздал. И сорри тогда.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268094
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>не могут по нему делать фильтры и сортировку, а без этого им никак.

По моему "рецепту" было бы можно
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268108
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Сенин Виктор
Ты, по-моему, немного не понял что человеку надоть.
Его не ListBox большой напрягает, а как раз много текстбоксов (Latuk, правильно я понял?).
В каждый текстбокс по сети качается его значение (может быть большим), а в случае с листбоксом - только идентификаторы и один раз список значений (может содержать мало элементов).
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268123
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Senin Viktor
Тут оптимизация еще немного дальше.
У меня получается слишком большой объем данных при передаче подготовленных на сервере значений.
Форма только для просмотра.
Поэтому я один раз закачиваю справочник а вовсех остальных формах стараюсь передавать маленький ID вместо большого Name
и расшифровывать его с помощью готового рекордсета на клиенте.

PS Геморой из-за медленного канала(2Мб/с) c другим офисом.
В принципе все работает , но некоторые формы тормозят
Во их таким образом получилось подстегнуть.
Но хочется чтоб внешне все осталось по прежнему.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268133
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП

Аааа.Теперь понял. Это вы про часы, а про репу :)

Тогда, постояно открытый рекодсет на основе сохраненого (при загрузке проги).
При событии ТекущаяЗапись поиск значений по ID полей в этих рекодсетах. Тока не ясно что по-времени будет больше (уж по размерам данных - точно меньше). Правда, теперь не со всем понятно как сортировать/фильтровать.
Как еще один вариант (глюпый): вставлять в поле со списком в момент загрузки формы СписокЗначений всего сохраненого набора.
==
А почему бы поля с большим кол-вом инфы не вынести в отдельно вызываемые формы?
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268134
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Latuk
Немного не в тему, но
Вариант с терминальными подключениями не рассматривали? С adp не пробовал, но mdb терминалу точно проигрывает (по объему качаемых данных).
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268143
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Сенин Виктор
Как еще один вариант (глюпый): вставлять в поле со списком в момент загрузки формы СписокЗначений всего сохраненого набора
Дык стрелочка то останется

А почему бы поля с большим кол-вом инфы не вынести в отдельно вызываемые формы?
Есть у тебя набор из двух значений. Каждое из которых длинной в 255 символов. Качать количество записей * 255 байт - плохо. Но делать отдельную форму для просмотра одного поля - видимо тоже не хорошо

И вообще, чего это я за автора топика отвечаю
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268152
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лох Позорный
Все правильно понял.

Ну так что насчет совета ?

Чтобы и сортировать можно было, и кнопка не маячила.

Пока в голову приходит , только вручную наколбасить рекордсет для формы.
Но это медленно на вялых клиентах работать будет.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268157
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо стрелочку закрыть каким нибудь другим контролом
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268161
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока в голову приходит , только вручную наколбасить рекордсет для формы.
Но это медленно на вялых клиентах работать будет.

Проверялось или только предположение?
Какое количество записей? Ну, порядок хотя бы..
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268174
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как еще один вариант (глюпый): вставлять в поле со списком в момент загрузки формы СписокЗначений всего сохраненого набора
Я так и делаю.
Private Sub Form_Open(Cancel As Integer)

Set cboTech_ID.Recordset = rstCboSourse(7, Me)
..........................................................................

Function rstCboSourse(bytType As Byte, frm As Form, Optional blnRequery As Boolean = False) As ADODB.Recordset
'Значения bytType
'1-Все работники для не редактируемых документов
'2-Неуволенные работники для редактирумых документов
'3-Все КА для не редактируемых документов
'4-КА клиент для редактируемых документов
'5-Выбор валюты
'6-Выбор курса для не редактируемых документов
'7-Вся техника для не редактируемых документов
'8-Все агрегаты для не редактируемых документов
'9-Адреса


Static rstSourse(9) As ADODB.Recordset

If rstSourse(bytType) Is Nothing Or blnRequery Then
If rstSourse(bytType) Is Nothing Then
Set rstSourse(bytType) = New ADODB.Recordset
Else
rstSourse(bytType).Close
Set rstSourse(bytType) = Nothing
End If
Select Case bytType
Case 1
Set rstSourse(bytType) = CNN.Execute("dbo.RBT_AllVibor @dtData_prm='',@bytStatus_prm=0")
' Case 2
' Set rstSourse(bytType) = cnn.Execute("RBT_Vibor @dtData_prm='" & frm!dtData_prm & "',@bytStatus_prm=1") 'bytStatus_prm cboDp_ID_B dtData_prm
Case 3
Set rstSourse(bytType) = CNN.Execute("dbo.KA_Vibor @bytStatus_prm=0")
' Case 4
' rstKASourse(bytType) = cnn.Execute("exec dbo.KA_Vibor 2," & bytStatus_prm & "," & cboDp_ID_B) 'Плательщик клиент
Case 5
Set rstSourse(bytType) = CNN.Execute("dbo.Vlt_Vibor")
Case 6
Set rstSourse(bytType) = CNN.Execute("dbo.KV_Vibor @bytStatus_prm=0,@Vlt_ID=0,@dtData_prm=''")
Case 7
Set rstSourse(bytType) = CNN.Execute("dbo.Tech_Vibor @bytStatus_prm=0,@bytFir_ID_prm=0")
Case 8
Set rstSourse(bytType) = CNN.Execute("dbo.AG_Vibor @bytStatus_prm=0,@Tech_ID_prm=0")
Case 9
Set rstSourse(bytType) = CNN.Execute("dbo.ADR_Vibor")
End Select
End If
Set rstCboSourse = rstSourse(bytType)
End Function



Все отлично, куча форм расслабилась насчет заполнения списков ,
но при замене текстовых полей на ID+Поле со списком + рекордсет
эстетическая заковыка.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268180
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо использовать не стандартный комбобокс, а ActivX ComboBox из КоммонКонтролс. В нем есть свойство (забыл как зовется), позволяющее либо отказаться от этой "питички" вообще, либо выводить ее только при фокусе, либо как в Аксе - всегда.
//Geo, блин, и это тебе я чуть было не отдал(а) лучшие годы свой жизни! (на счет реплики на лестнице)
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268186
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2fedd
Читай первый пост.
>Проверялось или только предположение?
Предположение.
Просто чтоб проверить , надо много писать .
А я ленивый :)
Гдебы активикс достать чтоб как поле со списком и без стрелочки.
или накрыть ее так чтоб не всплывала.
или размер этой стрелочки сделать чтоба невидима стала.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268192
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> ActivX ComboBox из КоммонКонтролс
Вот это уже интересно.
Если получится прям даже на другой бок не надо переворачиватся.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268210
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, в КоммонКонтролс Databound контролы появились?
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268226
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставил Microsoft Forms 2.0 ComboBox

Там действительно есть свойство позволяющее избавится от кнопки.
Но там нет свойства recordset
и выглядит он по другому (выделяется на фоне других контролов)

или я не там ищу?
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268237
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП, не ворчи :)
Ну хорошо, если быть точнее, то из библиотеки Microsoft Forms 2.0 Object Library (FM20.DLL)
Свойство зовется "ShowDropButtonWhen" и должно оно быть равным "Never"
Так луче? :)
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268261
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как к нему рекордсет присобачить?
И еще ругатся стала , что форма содержащая активикс не может быть по умолчанию ленточной.
И на рабочем столе с двумя мониторами глючит(но это я переживу).
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268308
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот млин, точно нету :(
Но я то ведь им пользовался! Иначе откуда знал бы про эту фичу? И именно из-за этой стрелочки и пользовался!
На счет ленточной проблем быть не должно. Во всяком случае у меня сейчас нету.
Вообщем, поищу по своим архивам, а ты, если инет "казенный" заглянь на MSDN или... извиняй за отнятое время :(
//но пользовался ведь! Тока хде? Как? Ничегонепонимаю...
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268329
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подстава... Я с ним программно работал, т.е. заполнял его программно через АддИтем, вот и знал про такое чудо...
Сорри за ложное направление.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268341
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не такое уж оно и ложное.
Можно прошариться по инету и найти нормальные контролы. В которых и стрелочка скрывается, и рекордесет подставляется, и которые Databound впридачу.
Только на ленточную форму их все равно не запихнуть.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32268351
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да придется видимо ручками рекордсет для формы сделать
Авось не так уж медленно получится.
...
Рейтинг: 0 / 0
Как избавится от кнопки в поле со списком
    #32269664
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по смыслу получается , что поле не редактируемое...
тогда делаем поле id невидимым , делаем поле где в данных пишем =ххх(id)
пишем функцию ххх()
в поле встать можно, скопировать данные можно - редактировать нельзя.
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как избавится от кнопки в поле со списком
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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