Форум: "Начинающим";
Текущий архив: 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