Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.08;
Скачать: CL | DM;

Вниз

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

 
Ral'f   (2007-06-13 19:57) [0]

Мастера, прошу вашей помощи, не нашёл хорошего описания компонента TDBComboBox! Работаю с MS Access, нужно, чтобы в одном из компонентов можно было выбрать одну из имеющихся в колонке записей (причём в колонке записи могут повторяться, а в ComboBox это, конечно, не желательно), или добавить свою. Как подключить TDBComboBox к своей таблице? Или лучше для этого использовать обычный TComboBox?


 
ЮЮ ©   (2007-06-14 04:12) [1]

> причём в колонке записи могут повторяться, а в ComboBox
> это, конечно, не желательно),


запросом выбрать неповторяющиеся значения и заполнить ими Items.


> или добавить свою

TDBComboBox позволяет вводить любое значение, не только из списка. В AfterPost, например, можно убедиться есть ли значение поля в Items, если нет - добавить в Items.


 
ЮЮ ©   (2007-06-14 06:25) [2]

>не нашёл хорошего описания компонента TDBComboBox!

А чего там описывать? Обычный TDBЕdit, у которого есть выпадающий список для облегчения ввода длинных строк. Выпадающий список должен формироваться программно, компонент им не управляет.


 
ASoft   (2007-06-14 07:34) [3]


> Ral"f   (13.06.07 19:57)

TDBLookUpComboBox мож, лучше подойдет?


 
ЮЮ ©   (2007-06-14 08:13) [4]

> TDBLookUpComboBox мож, лучше подойдет?


TDBLookUpComboBox хорош, когда имеем дело с справочной таблицей.


 
Ral'f   (2007-06-14 09:58) [5]

> ЮЮ ©   (14.06.07 04:12) [1]
>запросом выбрать неповторяющиеся значения и заполнить ими Items.


я предполагал сделать так:
TADOTable(Tabl).First;
TDBComboBox(Sender).Items.Clear;
while not TADOTable(Tabl).Eof do
begin
s:=TADOTable(Tabl).Fields[Nom].AsString;
if (TDBComboBox(Sender).Items.IndexOf(s)<0) and (s<>"")
 then TDBComboBox(Sender).Items.Add(s);
TADOTable(Tabl).Next;
end;
TADOTable(Tabl).First;


А как это сделать с помощью запроса?


 
ЮЮ ©   (2007-06-14 10:18) [6]

> А как это сделать с помощью запроса?


adoQuery.Text := "SELECT DISTINCT <Имя поля> FROM <имя таблицы> WHERE <Имя поля> IS NOT NULL";
adoQuery.Open;
while not adoQuery.EOF do begin
 TDBComboBox(Sender).Items.Add(adoQuery.Fields[0].asString);
 adoQuery.Next;
end;


На худой конец, сойдет и твое [5] :)


 
Ral'f   (2007-06-14 10:22) [7]

Огромное спа"си"бо"!!!


 
ЮЮ ©   (2007-06-14 10:29) [8]

p.s. adoQuery.Text := "SELECT DISTINCT <Имя поля> FROM <имя таблицы> WHERE <Имя поля> IS NOT NULL ORDER BY 1";


 
Anatoly Podgoretsky ©   (2007-06-14 12:43) [9]

Для начала забудь про это TADOTable, а потом про это TAdoQuery и используй TAdoDataset



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

Текущий архив: 2007.07.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
5-1156826464
nstur
2006-08-29 08:41
2007.07.08
Font не пишется в *.DFM


15-1181299079
zz 5
2007-06-08 14:37
2007.07.08
Delphi 6 и Turbo Delphi (Delphi 2006) на одной машине


8-1161149592
e_u_
2006-10-18 09:33
2007.07.08
задержка


15-1181293433
G_M_S
2007-06-08 13:03
2007.07.08
TD2006 для Linux?


1-1178550696
Виктор007
2007-05-07 19:11
2007.07.08
Как узнать высоту документа загруженного в TWebBrowser