Dblookupkombobox сделать активным

  • Автор темы Inbox
  • Дата начала
Статус
Закрыто для дальнейших ответов.
I

Inbox

Гость
#1
Как DBLookupkombobox сделать активным
Я его связал: Datasurse такойто feild такой то, вроде все нормально, но он не активный.
Либо в свойствах (не могу найти где активировать) либо.........???? :)
 
S

SNike

Гость
#2
1. Установи DataSource - где находится ключевое поле
2. Назначь DataField - имя поля по которому происходит связывание данных
3. Установи ListSource - где находятся данные для отображения
4. Назначь ListField - поле для отображения
5. Назначь KeyField - поле по которому связываются данные (связка DataField - KeyField )
6. Открой наборы данных
7. Готово :)
 
I

Inbox

Гость
#3
У меня нет связных таблиц,
Я создал в Access базу, в ней несколько одинаковых таблиц
Первое поле ключевое, далее пару текстовых и одно integer.
На одной форме у меня BDGrid на другой (DataModul) DataSource, AdoConect.....,AdoTable.
На третей форме DBLookupkombobox........
Юниты я подключил (Файл-Использовать юнит.....)
В DataSource выставлен DataModule1.datasours1
В DataFeild Наименование поля
В ListSource выставлен DataModule1.datasours1
B ListField Выбирать не дает я так понимаю что нужно номер поставить? (Номер поля)??
В KeyField Назначать ничего не дает что вписывать надо??
Открыть набор данных!!?? Это как???


Может я с ключами что то не доделал??
 
E

etc

Гость
#4
<!--QuoteBegin-Inbox+13:06:2007, 18:27 -->
<span class="vbquote">(Inbox @ 13:06:2007, 18:27 )</span><!--QuoteEBegin-->В ListSource выставлен DataModule1.datasours1[/quote]
неправильно, тут надо не тот что в DataSource
<!--QuoteBegin-Inbox+13:06:2007, 18:27 -->
<span class="vbquote">(Inbox @ 13:06:2007, 18:27 )</span><!--QuoteEBegin-->Открыть набор данных!!?? Это как???[/quote]
DataSet.Open() or DataSet.Active = true;

а ваще см хелп, там все четко расписанно
 
I

Inbox

Гость
#5
То что DataSet.Active = true; это я в курсе,
Я чувствую что для моей задачи я не те компоненты использую, мне вот как надо:-
У меня в базе (в одной таблице) наименование продуктов (например).
На форме Несколько выпадающих списков привязаны к этой таблице.
К одной и тойже.
Пользователь собирает из этих продуктов праздничный набор....
(Выбирает из комбобоксов), а потом "интер" и все О.К.
(А в БДедитах отабражвется цена из других полей) во как нада)))
А БДкомбо делает связь как бы обратную, не ту что нжно.....
Какой мне в этом случае компонент использовать??
 
S

SNike

Гость
#6
Сформулируй свой вопрос без всего лишнего, более точно.
Опиши имена таблиц и полей, которые тебе нужны, а так же как все это должно выглядеть (ввод пользователем данных)
 
E

etc

Гость
#7
<!--QuoteBegin-Inbox+13:06:2007, 18:42 -->
<span class="vbquote">(Inbox @ 13:06:2007, 18:42 )</span><!--QuoteEBegin-->Открыть набор данных!!?? Это как???[/quote]
<!--QuoteBegin-Inbox+13:06:2007, 20:25 -->
<span class="vbquote">(Inbox @ 13:06:2007, 20:25 )</span><!--QuoteEBegin-->То что DataSet.Active = true; это я в курсе[/quote]
странно .....
 
I

Inbox

Гость
#8
Сформулируй свой вопрос без всего лишнего, более точно.
Имеется база Access, таблица-Tovar-Feild: Key, Name,Price.
В проекте: ADOTable1-DataSours1: DBLookupCombobox или DBCombobox.

Мне необходимо: DBCombobox.Items:=ADOTAble1.Feild.Name;


Как?? получилось у меня без всего лишнего??
 
I

Inbox

Гость
#9
В этом файле (Exel-2003) Наглядно видно что необходимо сделать
 

Вложения

S

SNike

Гость
#10
Все ясно :)
Используй TDBComboBox. Только учти, что стандартный TDBComboBox сам значения выпадающего списка не вносит. Вообще этот контрол обычно используется для того чтоб можно было вводить только определенные, заложенные в списке, данные. Например, варианты ответов: например [Да, Нет, Не знаю] :) Конечно, можно и разрешить ввод новых данных в список, но...

ИМХО, не самый лучший вариант хранить повторяющиеся строковые данные в таблице. Лучше сделать две таблицы и использовать TDBComboBox. И список сам заполняться будет, и избыточность меньше
 
I

Inbox

Гость
#11
И список сам заполняться будет, и избыточность меньше
Мне не надо заплнять,только отображать и я разобрался как:
Ставим DBLookupKombobox,
В свойствах:
Listsours=datasours
Keyfeild =feild какое нам необходимо.
Всё!!!)))
 
I

Inbox

Гость
#12
Появилась проблема.......
Мне необходимо нескаолько выпадающих списков, а так как я сделал, работает только один из них.
Пример в файле..........
 

Вложения

S

SNike

Гость
#13
<!--QuoteBegin-Inbox+15:06:2007, 19:18 -->
<span class="vbquote">(Inbox @ 15:06:2007, 19:18 )</span><!--QuoteEBegin-->В свойствах:
Listsours=datasours
Keyfeild =feild какое нам необходимо.
Всё!!!)))
[snapback]69554" rel="nofollow" target="_blank[/snapback]​
[/quote]

Забыл ListField.
DBLookupComboBox используешь не совсем по назначению.

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

Для того чтобы в одном списке показывались только апельсины, в другом - мандарины, а в третьем - сорта яблок, скажем, нужно использовать Master-Detail. На мой взгляд, не совсем корректно организована база данных, оттуда и проблемы.
 
I

Inbox

Гость
#14
ListField я не использую, оно и так работает......

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

сделать отдельную таблицу
Если это будет классно конечно сделаю.........

Подскажите какие компоненты использовать.......и буду кумекать
Спасибо!




А что это за Master-Detail?
 
S

SNike

Гость
#15
Почитай о реляционных базах данных, о нормализации баз данных, о главной и подчиненной таблицах (в интернете полно информации, да и в книгах тоже). На практике все зависит от того какую базу данных реально используешь.
А дальше чем сможем тем поможем :)
 
Статус
Закрыто для дальнейших ответов.