Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как избавится от кнопки в поле со списком / 25 сообщений из 32, страница 1 из 2
17.09.2003, 16:03
    #32268030
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от кнопки в поле со списком
AccessXPADP+MSSQL2K

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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