Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как свезать два Combobox-a  (Прочитано 6234 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ulya
Гость
« : 04-08-2005 12:37 » new

У меня такая проблема, когда пишу программу для ListBox все в порядки, а ComboBox не работает. Суть программы показать в правой части список из БД, а при щелчке на одной из строк правого списка в левом должен выплать соответствующия строка из БД. C ListBox без проблем, щелкую на списки в правой стороне, в левом ListBox-e появляется соответствуещия строка. А с ComboBox ето не как не получается.Посылаю код, может кто поможет, найдет мою ошибку.Зарание блогодарю.(ето та часть программы которая должна вызвать строку)

void CUf2Dlg::OnSelchangeCombo1()
{
// TODO: Add your control notification handler code here
CString s;
char SQLbuff[256];
m_combobox.GetLBText(m_combobox.GetCurSel(),s);
for (int x=0; x<(m_combobox1.GetCount()+1);x++) m_combobox1.DeleteString(x);
CDaoQueryDef cf(cd);
CDaoRecordset cr;
cd->DeleteQueryDef("MFCtemp");
sprintf(SQLbuff,"SELECT*FROM zap WHERE [Last Name]='%s';",s);
cf.Create("MFCtemp",SQLbuff);
cf.Append();
cf.Close();
cf.Open("MFCtemp");
if(cf.IsOpen())
{
cr.Open(&cf);
if (cr.IsOpen())
{
while (!cr.IsEOF())
{
char buf [256];
COleVariant val;
cr.GetFieldValue("Now name");
sprintf(buf,"%s",val.bstrVal);
m_combobox1.AddString(buf);
cr.MoveNext();
}
}
}
cr.Close();
cf.Close();
}
 
 
« Последнее редактирование: 17-12-2007 16:54 от Алексей1153++ » Записан
sam_lunar
Гость
« Ответ #1 : 05-08-2005 13:20 » 

2 ulya...Я так понимаю список БД - это список m_combox1? Это по имени обработчика....OnSelChange....Но строку наименования БД ты берешь из m_combobox...Тогда непонятно...Посмотри внимательно, ты в коде не перепутала местами сами списки....Например, когда срабатывает OnSelChangeCombo1, ты выбираешь строку совершенно из другого списка...
Записан
ulya
Гость
« Ответ #2 : 06-08-2005 08:39 » 

Я сама нашла ошибку, просто упустила один параметр
cr.GetFieldValue("Now name");
тут нехватает val, то есть
cr.GetFieldValue("Now name",val);
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines