Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2014, 14:23   #1
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию Автозаполнение edit

Добрый день, Уважаемые Форумчане!
Подскажите, пожалуйста, как сделать следующее.
У меня на форме следующие элементы dbcombobox и 2 dbedit.
Таблица пользователи.
Строки таблицы: фамилия, имя и отчество и т.д.
Как сделать, чтобы при выборе в dbcombobox фамилии из таблицы пользователей, в dbedit1 автоматически появилось имя, а в dbedit2 -отчество.
Заранее спасибо!
Streb вне форума Ответить с цитированием
Старый 29.04.2014, 15:04   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Выставить в DataField соответствующие поля.
Streletz вне форума Ответить с цитированием
Старый 29.04.2014, 15:09   #3
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию

В DataField итак прописаны соответствующие поля, но они заполняются в БД если в них что-то написать.
А мне надо, чтобы само заполнялось!
Streb вне форума Ответить с цитированием
Старый 29.04.2014, 15:12   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Попробуйте заменить DBComboBox на DBLookUpCombobox.
Streletz вне форума Ответить с цитированием
Старый 29.04.2014, 15:18   #5
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию

Streletz, заменил, ничего не произошло.
Может я что-то плохо объяснил.
Пример: В таблице Пользователь много людей, один из них Иванов Сергей Игоревич.
Смотрите, я запускаю программу. В DBLookUpCombobox выбираю фамилию Иванов.
И в dbedit1 появляется Сергей, в dbedit2 появляется Игоревич.
Streb вне форума Ответить с цитированием
Старый 29.04.2014, 15:26   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Теперь понятно.
Можно сделать дополнительный Query или Table или т.д. смотря, через что идёт доступ к БД. И при выборе из DBLookUpComboBox'a делать выборку. А, её результаты отображать в DBEdit'ах.
DBLookUpComboBox, скорее всего, всё равно понадобится, т.к., в отличие от обычного DBCombobox, у него есть свойство для хранения ключа.
Streletz вне форума Ответить с цитированием
Старый 30.04.2014, 07:33   #7
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию

Streletz, а как сделать, чтобы при выборе в DBLookUpComboBox фамилии, происходил запрос, результаты которого выводились в edit.
Запрос написать могу, но как его результат вывести в edit?
Т.е. значение, выбранное в DBLookUpComboBox сравнивалось с существующим в БД, и выдавало результат в edit

Последний раз редактировалось Streb; 30.04.2014 в 07:42.
Streb вне форума Ответить с цитированием
Старый 30.04.2014, 08:08   #8
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Можно и без дополнительного запроса. Если правильно связать данные для выборки и настроить компоненты, всё будет работать даже без дополнительного кода на Delphi. В помощь:
Компоненты доступа и представления данных
Streletz вне форума Ответить с цитированием
Старый 30.04.2014, 08:28   #9
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию

Если честно, я не понял как это сделать!
Streb вне форума Ответить с цитированием
Старый 30.04.2014, 09:14   #10
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию

Подскажите, почему код не работает.
Я беру данные (фамилии) из DBLookupComboBox1 и вывожу в edit1 имя, соответствующее этой фамилии.

Код:
Var s1,s2:string;
procedure TForm11.btn5Click(Sender: TObject);
begin
  if DBLookupComboBox1.Text = '' then Exit;
s1:='%'+Unit11.Form11.DBLookupComboBox1.Text+'%';
s2:=QuotedStr(s1);
  with Unit5.Form5.qry1 do
  begin
Form5.qry1.SQL:='Select name from users where surname like ' + s2;
Form5.qry1.ExecSQL;
 Form5.qry1.Open;
dbedit1.Text := form5.Qry1.Fields.AsString;

end;
 end;
Streb вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пустой Edit. Парсер формулы из Edit Silverstone Общие вопросы Delphi 3 16.12.2012 03:07
Копирование строки из Edit в другой Edit. Ibanez Wizard Win Api 3 29.03.2011 02:46
Автозаполнение. Petronix Microsoft Office Excel 4 28.12.2010 22:19
Автозаполнение. ksu25 Microsoft Office Excel 3 06.10.2009 18:50
Автозаполнение! ANT35 Microsoft Office Access 1 30.10.2008 08:24