У меня есть 2 таблицы: 1. проекты, 2. Article_Weights. Таблица Проекты подключен к первому DBLookUpCombobox DBLkpCbo_Projects. Он имеет одну колонку Проект который содержит четырехзначные числа. (1001, 1004, 1008, ...)Как соединить два DBLookUpComboboxes, которые могут быть использованы в качестве фильтра в Lazarus
Таблица Article_Weights, содержащие столбцы Project, Article_Number, Article_Weights т.д. Эта таблица связана с DBLookUpCombobox DBLkpCbo_Articles.
Что я хочу достичь, когда я выбираю из первого комбобокса какой-то проект, второй combobox покажет только номера статей, принадлежащие этим проектам. После этого, когда я выберу номер статьи из второго списка со списком, информация об этой статье будет показана в DBGrid.
Фильтрация работает. Я застрял в последней точке. Когда я выбираю какой номер статьи я получаю ошибку «Типы данных не совпадают в критериях экспрессии»
Это мой код:
procedure TMainForm.DBLkpCbo_ProjectSelect(Sender: TObject);
begin
if DBLkpCbo_Project.ItemIndex <> -1 then begin
SQLQuery2.Active:=true;
//SQLQuery1.ApplyUpdates();
SQLTransaction1.Commit();
SQLQuery2.Close;
SQLQuery2.SQL.Text:='SELECT Article_Number FROM Article_Weights WHERE Project = '+DBLkpCbo_Project.Text+'';
SQLQuery2.Open;
end;
end;
procedure TMainForm.DBLkpCbo_ArticleChange(Sender: TObject);
begin
if DBLkpCbo_Article.ItemIndex <> -1 then begin
//DBGrid1.Enabled:=true;
SQLQuery3.Active:=true;
//SQLQuery1.ApplyUpdates();
SQLTransaction1.Commit();
SQLQuery3.Close;
SQLQuery3.SQL.Text:='SELECT Article_Number FROM Article_Weights WHERE Article_Number='+DBLkpCbo_Article.Text+'';
SQLQuery3.Open;
end;
end;
Спасибо за любой ответ
Article_Number установлен в MS Access в качестве краткого текста и примера выглядит следующим образом: 1004.001.0020. Я попробовал ваше предложение, но появляется сообщение об ошибке: «Убедитесь, что не содержит недопустимых символов или знаков препинания». Когда я попытался переименовать его в «10040010020», я получил ошибку «Слишком мало параметров». – Revan31
Извините - я использовал двойные кавычки вместо одного - было некоторое время, так как я использовал SQL. Исправлено сейчас. – Dsm
Его действительно работает! :) Я потратил столько времени на решение этой проблемы. Большое спасибо. – Revan31