在DBLookupComboBox1,DBLookupComboBox2的change事件里对DBLookupComboBox3的数据源进行过滤!

解决方案 »

  1.   

    最好不要用DBLookupComboBox1 ,用ComboBox就行了
    显示窗口的时候,遍历数据库中的a.db和b.db表,把内容填到两个ComboBox里
    在Query1控件中添加SQL语句
    select c.age
    from "a.db" a, "b.db" b, "c.db" c                 //有可能是单引号
    where (a.name = :pname) and (b.type = :ptype)
    在前两个ComboBox的OnChange事件中执行查询
    Query1.ParamByName('pname').AsString := ComboBox1.Items[ComboBox1.ItemIndex];
    Query1.ParamByName('ptype').AsString := ComboBox2.Items[ComboBox1.ItemIndex];
    Query1.Open;
    然后再str1 := Query1.FieldByName('age').AsString;
    用str1跟ComboBox3.Items中的值比较,得到相应的ItemIndex
    最后,设置ComboBox3的ItemIndex
      

  2.   

    我是在onExit事件中些了一点代码,应该可以吧?
    procedure TMainWindow.DBLookupComboBox2Exit(Sender: TObject);
    begin
    types:=MainWindow.Table1.FieldByName('chanpinleixing').AsString;
    end;procedure TMainWindow.DBLookupComboBox3Exit(Sender: TObject);
    begin
    brand:=MainWindow.Table1.FieldByName('pinpai').AsString;
    end;我主要是过滤的代码不知道要怎么写。
    可以提供吗?
      

  3.   

    哦,我是用的TTalbe,对他有什么解决方法吗?
      

  4.   

    对啊
    就是在Onchange事件中过虑
      

  5.   

    用TTable可能只能用Filter了,Filter之后再遍历表,填到ComboBox里。