![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBComboBox [D5, Access]
Viktor © (2003-05-12 05:33:00)Привет мастерам!
Возникла такая проблема.
Необходимо выбрать из таблицы строку при помощи DBComboBox"a
его заполняю
while not Tab.Eof do
begin
DBComboBoxList.Items.Add(Tab.FieldByName("Name").Value);
Tab.Next;
end;
Проблема в том, что теперь я не знаю ID выбранного элемента
Как все это решить?
Заранее благодарен
Viktor (2003-05-13 17:08:00) [1]Спасибо всем - разобрался.
Не туда смотрел.
Leshiy (2003-05-13 07:58:00) [2]Возьми DBComboBoxEh из EhLib.
ЮЮ (2003-05-13 07:46:00) [3]>в выпадающем списке как и было только одна строка для выбора
объясните плиз подробнее
А где сканирование НД?
Tab.First;
While not Tab.EOF do begin
PickEdit.Items.AddObject(
Tab.FieldByName("Name").Value,
TObject(Tab.FieldByName(FieldName).asInteger)
);
Tab.Next;
end;
А чтобы этого не делать и используют DBLookupCombobox
И ещё раз повторяю, этот компонент для редактирования текущей записи набора данных
>Если в DBLookupCombobox не указывать DataSource и DataField,
то можно работать как с обычным List?
Ну не совсем обычным, но практически.
Viktor (2003-05-13 06:15:00) [4]Если в DBLookupCombobox не указывать DataSource и DataField,
то можно работать как с обычным List?
Viktor (2003-05-13 06:00:00) [5]Вот попробовал и опять ничего не понял
вызываю своюпроцедуру:
QSash.Open;
ComboBoxItemsAdd(QSash, "Id", PESash);
procedure TFrmSelectionAccessories.ComboBoxItemsAdd(Tab: TADOQuery; FieldName: String; PickEdit: TDBComboBox);
begin
PickEdit.Items.AddObject(Tab.FieldByName("Name").Value,TObject(Tab.FieldByName(FieldName).asInteger));
end;
в выпадающем списке как и было только одна строка для выбора
объясните плиз подробнее
ЮЮ (2003-05-13 02:51:00) [6]>DBLookupCombobox мне не нужен
Именно DBLookupCombobox позволяет показывать список, организованный на основании запроса и не надо самому бегать по НД и формировать список и при этом, если у него не указывать DataSource, то он уже не является DB-Aware компонентом а его св-во KeyValue содержит значение ключевого поля списка.
>Я не очень все понял. DBLookupCombobox мне не нужен.
Тогда по русски: используйте TDBComboBox, чтобы позволить пользователю изменять значение поля текущей записи набора данныхкак путём выбора элемента списка, так и непосредственным вводом в окно.
Т.е. тебе не нужен именно DBLookupCombobox, который предназначен именно для редактирования поля, а DBLookupCombobox кроме редактировния (но уже ключевого поля) можно использовать и просто для выбора записи из ListSource
Zacho (2003-05-13 01:41:00) [7]
> Viktor (13.05.03 01:35)
> Посоветуйте, что именно мне использовать в таком случае.
Что угодно. Зависит от задачи, твоих способностей и фантазии.
Собственно, ответ есть ЮЮ © (12.05.03 06:03)
" или обычный ComboBox
(ComboBox.Items.AddObject(Tab.FieldByName("Name").Value,TObject(Tab.FieldByName("ID").asInteger));"
Viktor (2003-05-13 01:35:00) [8]Я не очень все понял. DBLookupCombobox мне не нужен.
Нужен выпадающий список.
У меня есть запрос, который возвращает список комплектующих определенного типа (Id, Name, FullName).
мне необходимо выбрать из этого списка (по наименованию) строку
Пользователь видит только наименование.
Посоветуйте, что именно мне использовать в таком случае.
ЮЮ (2003-05-12 06:03:00) [9]DBComboBox предназначен совсем для другого "Use TDBComboBox to allow users to change the value of a field on the current record in a dataseteither by selecting an item from a list or by typing in the edit box part of the control."
Используй или DBLookupCombobox (см.KeyValue) или обычный ComboBox
(ComboBox.Items. AddObject(Tab.FieldByName("Name").Value,TObject(Tab.FieldByName("ID").asInteger));