Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Вниз

DBComboBox   Найти похожие ветки 

 
Andrewtitoff ©   (2009-11-02 15:39) [0]

Здравствуйте!, подскажите пожалуйста как сделать что бы в DBComboBox работал выпадающий список?, не ручным заполнением, т.к. у меня в таблице 80 полей и 7тысяч записей, а при ручном заполнении получается приличная тормозня т.к. при ручном заполнении приходится еще и проверять на наличие уже такой записи в DBComboBox-е (в таблице только одно поле ключевое и уникальное, все остальные могут повторяться сколько угодно хоть все 7тыс одинаковые...), или может быть что то другое использовать, а не DBComboBox, но нужна возможность редактирования...


 
clickmaker ©   (2009-11-02 15:41) [1]

не вполне ясна задача... может, DBLookupComboBox?


 
Sergey13 ©   (2009-11-02 15:41) [2]

> [0] Andrewtitoff ©   (02.11.09 15:39)

Может тебе нужен ДБЛукапКомбобокс?
Хотя подозреваю, что для такого объема справочника лучше бу написать отдельную формочку модальную для поиска и выбора.


 
Andrewtitoff ©   (2009-11-02 15:52) [3]

2 clickmaker
Да чего то я на форумах порылся - там пишут что DBLookupComboBox используется для связанных таблиц, а мне нужно работать только с одной, да и чего то DBLookupComboBox нихочет отобразать ничего, да и еще на форумах вычитал что оно вроде как не поддерживает редактирования.... =(((((
2 Sergey13
У меня для поиска по ключевому полю одна форма, которая открывает вторую, где отображаются все поля записи и при необходимости любое из них должно иметь возможность редактирования, значения все однотипные и должны быть в выпадающем списке, там порядка 60-ти ComboBox-ов, я попробовал засунуть заполнение в загрузку программы, но учитывая объем данных, то что база сетевая и то- что нужно отсеивать посторяющиеся значения - получил огромные тормоза, прога заполняет все это дело околу 2-х минут...


 
clickmaker ©   (2009-11-02 15:54) [4]

> там порядка 60-ти ComboBox-ов, я попробовал засунуть заполнение
> в загрузку программы, но учитывая объем данных, то что база
> сетевая

а какая СУБД?
может, select distinct спасет отца русской демократии?


 
Andrewtitoff ©   (2009-11-02 15:56) [5]

В DBLookupComboBox выбираю DataSource, DataField, ListSourse, ListField, KeyField - а он выдает ошибку "Circular datalinks are not allowed"...


 
Anatoly Podgoretsky ©   (2009-11-02 15:58) [6]

> Andrewtitoff  (02.11.2009 15:52:03)  [3]

DBLookupComboBox это для выбора из справочника.


 
Sergey13 ©   (2009-11-02 16:01) [7]

> [3] Andrewtitoff ©   (02.11.09 15:52)
> значения все однотипные и должны быть в выпадающем списке

А что за значения? Откуда они берутся по жизни то?


 
Andrewtitoff ©   (2009-11-02 16:01) [8]

2 clickmaker
БД формата Access 2000
использую ADOConnection, DataSourse, ADOTable, ну и естественно DBGrid


 
Andrewtitoff ©   (2009-11-02 16:04) [9]

2 Sergey13
Это лифтовая база, т.е. первое поле - уникальное(ключевое) - там Регистрационный номер лифта, а дальше название улицы, номер дома, парадной, диаметры валов, размеры камины и прочие характеристики, причем большинство характеристик имеют 10-20 различных значений...


 
Dennis I. Komarov ©   (2009-11-02 16:05) [10]

Вобщем все как обычно...

Я так понял, в DBGrid пихается Table? Вопрос: На какого банана юзверю видеть все содержимое несчастной Table?


 
Andrewtitoff ©   (2009-11-02 16:13) [11]


> Dennis I. Komarov ©   (02.11.09 16:05) [10]
> Вобщем все как обычно...Я так понял, в DBGrid пихается Table?
>  Вопрос: На какого банана юзверю видеть все содержимое несчастной
> Table?

Не совсем, вернее он конечно пихается, только там то все нормально, а ComboBox-ы на отдельной форме и некоторые юзеры должен иметь возможность поменять любое значение.., например после реконструкции лифта к рег. номеру дописывается буковка "Б", а в остальные поля вводятся новые значения(но не совсем во все, некоторые остаются) и соответственно что бы юзену не держать в голове типовые значения диаметров канатоведущих валов т.к. они все есть в базе - ему нужно просто выбрать новое значение из выпадающего списка....


 
Сергей М. ©   (2009-11-02 16:14) [12]


> большинство характеристик имеют 10-20 различных значений


Ну так вынеси их в отдельныые справочники и читай-выбирай их оттуда ЛукапКомбоБоксами ..


 
Andrewtitoff ©   (2009-11-02 16:19) [13]


> Сергей М. ©   (02.11.09 16:14) [12]
> > большинство характеристик имеют 10-20 различных значенийНу
> так вынеси их в отдельныые справочники и читай-выбирай их
> оттуда ЛукапКомбоБоксами ..

Немогу, база написанна не мной и ей пользуются юзеры при помощи оболочки написанной на VB встроенном в Access..., поэтому я немогу менять структуру базы и вообще что - нибудь что повлияет на работу их оболочки...


 
Anatoly Podgoretsky ©   (2009-11-02 16:22) [14]

Ну тогда используй DBComboBox с отбором уникальных значений.
Но я так понял, что речь идет все таки о копирование старых полей.


 
Sergey13 ©   (2009-11-02 16:26) [15]

> [11] Andrewtitoff ©   (02.11.09 16:13)
> т.к. они все есть в базе

Ну так настрой лукапполя на эти справочники.


 
Andrewtitoff ©   (2009-11-02 16:27) [16]

2 Anatoly Podgoretsky
Ну в общем то примерно так и есть, а можно как нибудь это ускорить т.к. я это делаю так:

...
Form1.ADOTable4.First;
while not Form1.ADOTable4.Eof do
 begin

 if Form1.ADOTable4.Fields[1].Value<>null then
 begin
 c:=false;
 for I := 0 to Form2.ComboBox1.Items.Count  do if Form2.ComboBox1.items[I]=Form1.ADOTable4.Fields[1].Value then c:=true;
 if c=false then Form2.ComboBox1.Items.Add(Form1.ADOTable4.Fields[1].Value);
 end;

....

и так примерно для 60-ти полей и в итоге все это дело около 2-х минут заполняется...


 
Dennis I. Komarov ©   (2009-11-02 16:27) [17]


> Andrewtitoff ©   (02.11.09 16:13) [11]

А я про Combo ничего и не спрашивал...


 
Dennis I. Komarov ©   (2009-11-02 16:29) [18]


> then c:=true;
>  if c=false

А это что за пляски?


 
Andrewtitoff ©   (2009-11-02 16:29) [19]

2
> Sergey13 ©   (02.11.09 16:26) [15]
> > [11] Andrewtitoff ©   (02.11.09 16:13)> т.к. они все есть
> в базе Ну так настрой лукапполя на эти справочники.

Как?, там только одна таблица.., или я что то не понимаю?, а значения беруться из других записей, как выразился Anatoly Podgoretsky "что речь идет все таки о копирование старых полей"


 
Dennis I. Komarov ©   (2009-11-02 16:31) [20]


> Dennis I. Komarov ©   (02.11.09 16:29) [18]

Пардон... не пиши так все в строку, плохо читается...


 
Anatoly Podgoretsky ©   (2009-11-02 16:31) [21]

> Andrewtitoff  (02.11.2009 16:27:16)  [16]

Только тебе советовали запрос с отбором, а не таблица с позаписным сравнением.


 
Andrewtitoff ©   (2009-11-02 16:33) [22]

2 Dennis I. Komarov ©
1)Ну это я просто еще все ComboBox-ы на DBComboBox-ы не поменял....
2)А как?, я присваиваю с "ложь", потом перебираю ComboBox и если нахожу такое значение то с присваиваю "истина", и в итоге записываю в ComboBox значение только если с - "ложь" т.е. такой записи там еще нет


 
Dennis I. Komarov ©   (2009-11-02 16:33) [23]


> Andrewtitoff ©   (02.11.09 16:29) [19]

Приведи пример, что ты хочешь оттуда вытащить...


 
Anatoly Podgoretsky ©   (2009-11-02 16:35) [24]

> Andrewtitoff  (02.11.2009 16:33:22)  [22]

Что ты делаешь понятно, но так делать не нужно, как минимум это будет медленно.


 
Andrewtitoff ©   (2009-11-02 16:35) [25]


> Anatoly Podgoretsky ©   (02.11.09 16:31) [21]
> > Andrewtitoff  (02.11.2009 16:27:16)  [16]Только тебе советовали
> запрос с отбором, а не таблица с позаписным сравнением.

А как это сделать?, просто я с базами не буб-бум, можно сказать первый раз пришлось ковыряться.... =((((
Можно примерчик запроса?


 
Anatoly Podgoretsky ©   (2009-11-02 16:36) [26]


> Приведи пример, что ты хочешь оттуда вытащить...

Не что, а откуда, поскольку позиция несколько раз менялась.


 
Dennis I. Komarov ©   (2009-11-02 16:36) [27]

[4] + DBLookupComboBox на полученный DataSet


 
Anatoly Podgoretsky ©   (2009-11-02 16:37) [28]


> Можно примерчик запроса?

SELECT DISTINCT Fld FROM Tbl ORDER BY Fld


 
Andrewtitoff ©   (2009-11-02 16:37) [29]


> Dennis I. Komarov ©   (02.11.09 16:33) [23]
> > Andrewtitoff ©   (02.11.09 16:29) [19] Приведи пример,
>  что ты хочешь оттуда вытащить...

Как что?, ну допустим каждый лифт находится на какой то улице, так вот допустим на Ленинском проспекте 400 лифтов, а мне нужно что бы в ComboBox-е была только одна запись "Ленинский пр-т"


 
Dennis I. Komarov ©   (2009-11-02 16:38) [30]


> Anatoly Podgoretsky ©   (02.11.09 16:36) [26]

Ну я понял, что у него всего одна, но мега таблица...

И он не ответил, на какого банана ее всю показывать пользователю...


 
Anatoly Podgoretsky ©   (2009-11-02 16:39) [31]

А тут уже и ComboBox не нужен, он же для выбора, а из чего выбирать из одной записи что ли?


 
Сергей М. ©   (2009-11-02 16:40) [32]


> Немогу, база написанна не мной


Что, даже и подсмотреть нельзя, индексированы ли интересующие тебя поля ?


 
Andrewtitoff ©   (2009-11-02 16:40) [33]


> Dennis I. Komarov ©   (02.11.09 16:36) [27]
> [4] + DBLookupComboBox на полученный DataSet

В смысле?


> Anatoly Podgoretsky ©   (02.11.09 16:37) [28]
> > Можно примерчик запроса?SELECT DISTINCT Fld FROM Tbl ORDER
> BY Fld

Ой, А целеком можно, кужы это пихать то? =)))


 
Anatoly Podgoretsky ©   (2009-11-02 16:41) [34]

> Dennis I. Komarov  (02.11.2009 16:38:30)  [30]

Потому что таблица, а не набор данных.


 
clickmaker ©   (2009-11-02 16:41) [35]

> так вот допустим на Ленинском проспекте 400 лифтов, а мне
> нужно что бы в ComboBox-е была только одна запись "Ленинский
> пр-т"

там такая что-ли таблица
Лифт1  Ленинский пр-т
...
Лифт400  Ленинский пр-т

то есть текстом все адреса дублируются? Жесть.
Беги оттуда, пока не поздно


 
Anatoly Podgoretsky ©   (2009-11-02 16:42) [36]

Сейчас у него голова кругом пойдет от обилия информации, которую он к тому же не понимает. А ведь мы еще и говорить то по сути не начали.


 
Dennis I. Komarov ©   (2009-11-02 16:42) [37]


> Потому что таблица, а не набор данных.

???


 
Andrewtitoff ©   (2009-11-02 16:44) [38]


> Dennis I. Komarov ©   (02.11.09 16:38) [30]
> > Anatoly Podgoretsky ©   (02.11.09 16:36) [26] Ну я понял,
>  что у него всего одна, но мега таблица...И он не ответил,
>  на какого банана ее всю показывать пользователю...

Я писал, да и некоторые юзеры в режиме аблицы должны это видеть так что нужно...


> Anatoly Podgoretsky ©   (02.11.09 16:39) [31]
> А тут уже и ComboBox не нужен, он же для выбора, а из чего
> выбирать из одной записи что ли?

Млин, ну лифты же не только на Ленинском проспекте есть, я просто пример привел, а еще и на других улицах тоже по многу лифтов на улице...

> Сергей М. ©   (02.11.09 16:40) [32]
> > Немогу, база написанна не мнойЧто, даже и подсмотреть
> нельзя, индексированы ли интересующие тебя поля ?

Почему?, посмотреть можно, первое поле ключевое и по нему индексируется


 
Anatoly Podgoretsky ©   (2009-11-02 16:45) [39]

> Dennis I. Komarov  (02.11.2009 16:42:37)  [37]

AdoTable


 
Andrewtitoff ©   (2009-11-02 16:47) [40]


> clickmaker ©   (02.11.09 16:41) [35]
> > так вот допустим на Ленинском проспекте 400 лифтов, а
> мне > нужно что бы в ComboBox-е была только одна запись
> "Ленинский > пр-т"там такая что-ли таблицаЛифт1  Ленинский
> пр-т...Лифт400  Ленинский пр-тто есть текстом все адреса
> дублируются? Жесть.Беги оттуда, пока не поздно

Да!, именно так и есть, кстати на это есть свои причины, так же с номерами домов, а еще страшнее с парадными т.к. их как правило штук 5...
Но деваться мне пока что некуда отсюда.... =(((



Страницы: 1 2 3 4 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.012 c
2-1257871099
vtur
2009-11-10 19:38
2009.12.27
Создание приложений с использованием DLL


15-1256894913
ford
2009-10-30 12:28
2009.12.27
парсить web страницы посоветуйте


15-1256543859
Kerk
2009-10-26 10:57
2009.12.27
Заметки посла США в СССР (1937-1938 гг.)


1-1230592103
ivanoff
2008-12-30 02:08
2009.12.27
Форма MDIChild не разворачвается полностью


8-1201295650
kblc
2008-01-26 00:14
2009.12.27
GDI+ и изображения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский