IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Access & C++(Rad studio 2010), запросы
Nike0
сообщение 26.03.2011 17:05
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


Доброго времени суток, появился вопрос при написании курсовой: есть база данных Прикрепленное изображение, имеется форма Прикрепленное изображение, в первый комбобокс я записываю все значения столбца Отделение таблицы Отделения (идентификатор Id_отделения я хотел использовать для дальнейших целей):
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ADOTable1->Open();
DBGrid3->Visible = False;
DBComboBox1->Clear();
for (ADOTable1->First(); !ADOTable1->Eof; ADOTable1->Next())
{
DBComboBox1->Items->Add(ADOTable1->FieldValues["Id_отделения","Отделение"]);
}
}

затем я хочу, чтобы при выборе определенного отделения у меня из таблицы Группы записывались значения столбца Группа в комбобокс2, я пытался все это счастье сделать так:
void __fastcall TForm1::DBComboBox1Change(TObject *Sender)
{
try
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
DBComboBox2->Enabled = True;
ADOTable2->Open();
DBComboBox2->Clear();
ADOQuery1->SQL->Add("SELECT Группы.Группа FROM Отделения INNER JOIN Группы ON Отделения.Id_отделения = Группы.Id_отделения WHERE Отделения.Отделение='"+DBComboBox1->Text+"'");
ADOQuery1->ExecSQL();
for (ADOTable2->First(); !ADOTable2->Eof; ADOTable2->Next())
{
DBComboBox2->Items->Add(ADOTable2->FieldValues["Id_группы","Группа"]);
}
DBComboBox2->Enabled = True;
}
catch(...)
{
//MessageBox(0,"Такая таблица не существует, сначала создайте её!","Ошибка!",MB_OK);
}
}

но почему-то он игнорирует сравнение идентификаторов и записывает все значения таблицы Группы.
Подскажите мб как это делать, просто на C# чтобы все это сделать надо 4 раза мышкой щелкнуть, зато никак там с добавлением данных в таблицу разобраться не могу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 2.04.2011 20:36
Сообщение #2


Гость






Добавляю в Access-базу Query следующего вида:
Прикрепленное изображение
, добавляю на форму еще одну AdoTable3 и DataSource3, связываю AdoTable3 с q2, и DBGrid - с этой самой Adotable3, так, что у меня сразу в гриде появляется вся статистика, независимо от группы:
Прикрепленное изображение
, а потом, по какому-то событию (например, по изменению DBLookupCombobox2, не зря ж на него навешивалось отображение групп, правда?), точно так же, как и выше, делаю фильтрацию:
void __fastcall TForm1::DBLookupComboBox2Click(TObject *Sender)
{
if(DBLookupComboBox2->Text.Length() > 0)
{
ADOTable3->Filtered = false;
ADOTable3->Filter = "[group] = " + QuotedStr(DBLookupComboBox2->Text);
ADOTable3->Filtered = true;
}
}
, после чего запускаю программу, выбираю в первом Lookup-е отделение, во втором - группу, и ...
Прикрепленное изображение
Что я делаю не так? smile.gif
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 2:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"