有四个组件:comboboxA、comboboxB、comboboxC、comboboxD有一个数据表,有A、B、C、D、E等字段窗体一显示(OnShow事件)就把数据表中E字段值为‘T’的记录,A字段不同的值加到ComboboxA中。当ComboBoxA改变时(OnChange事件)就把数据表中E字段值为‘T’、A字段为ComboBoxA.text的记录,B字段不同的值加到ComboboxB中。当ComboBoxB改变时(OnChange事件)就把数据表中E字段值为‘T’、A字段为ComboBoxA.text、B字段为ComboBoxB.text的记录,C字段不同的值加到ComboboxC中。当ComboBoxC改变时(OnChange事件)就把数据表中E字段值为‘T’、A字段为ComboBoxA.text、B字段为ComboBoxB.text的记录、C字段为ComboBoxC.text的记录,D字段不同的值加到ComboboxD中。

解决方案 »

  1.   

    分别在事件里根据条件取得记录,再往cmb里添加呀。
      

  2.   

    有没有SQL语句可以一下子取出不同的记录,再赋值的
      

  3.   

    针对“当ComboBoxA改变时(OnChange事件)就把数据表中E字段值为‘T’、A字段为ComboBoxA.text的记录,B字段不同的值加到ComboboxB中。”举个例子,其他类似:with Query1 do
    try
      Close;
      SQL.Clear;
      SQL.Add('select Distinct B from [表名] where E=''T'' and A=' + QuotedStr(ComboBoxA.text));
      Open;
      First;
      while Not Eof do
      begin
        ComboBoxB.Items.Add(FieldByName('B').AsString);
        Next;
      end;
    except
      ...
    end;
      

  4.   

    不是很复杂啊,SQL查询语句没写好吧:)
      

  5.   

    with Query1 do
    try
      Close;
      SQL.Clear;
      SQL.Add('select Distinct B from [表名] where E=''T'' and A=' + QuotedStr(ComboBoxA.text));
      Open;
      First;
      while Not Eof do
      begin
        ComboBoxB.Items.Add(FieldByName('B').AsString);
        Next;
      end;
    except
      ...
    end;我爱用store procedure