如何连接两个可用作 Lazarus 过滤器的 DBLookUpComboboxes

How to connect two DBLookUpComboboxes that can be used as filter in Lazarus

我有 2 个 table:1.项目,2.Article_Weights。 Table Projects 连接到第一个 DBLookUpCombobox DBLkpCbo_Projects。 它有一列 Project,其中包含四位数字。 (1001, 1004, 1008,...)

Table Article_Weights 包含列 Project, Article_Number,Article_Weights等等。这个 table 与 DBLookUpCombobox DBLkpCbo_Articles.

连接

我想要实现的是当我从第一个组合框中选择某个项目时,第二个组合框将只显示属于该项目的文章编号。之后当我从第二个组合框中选择一些文章编号时,关于这篇文章的信息将显示在 DBGrid 中。

正在过滤。我坚持最后一点。当我选择一些商品编号时,出现错误 "Data types do not match in the expression criteria"

这是我的代码:

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 是文本字段还是(顾名思义)数字字段?如果它是一个数字 DBLkpCbo_Article.Text 实际上是数字(即包含有效数字的字符串)?如果正如我所怀疑的那样,Article_Number 是一个文本字段,则您省略了引号:

SQLQuery3.SQL.Text:='SELECT Article_Number FROM Article_Weights WHERE Article_Number='''+DBLkpCbo_Article.Text+'''';