Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c