比如 歌手表与歌曲表是主从表关系 现在要求用一个下拉组合框显示所有歌手列表,当选择某位歌手时,用DBGrid来显示当前歌手对应的所有歌曲,请问怎么实现?

解决方案 »

  1.   

    procedure TForm1.ComboBox1Select(Sender: TObject);
    begin
      DBGrid1.DataSource.DataSet.Close;
      DBGrid1.DataSource.DataSet.Filter := '歌手 = ''' + TComboBox(Sender).Text + '''';
      DBGrid1.DataSource.DataSet.Filtered := true;
      DBGrid1.DataSource.DataSet.Open;
    end;
      

  2.   

    procedure TForm1.ComboBox1Select(Sender: TObject);
    begin
      with adoquery1 do
      begin
        close;
        sql.clear;
        sql.text := 'select * from yourtable where 歌手 = ' + quotedstr(combobox1.text);
        open;
      end;
    end;
      

  3.   

    在ComboBox1Click里写sql语句不就行了
      

  4.   

    用DBLOOOKUPCOMBOBOX(好像是这样写),将其属性lookup datasource设为歌手数据库的datasource,将lookupfield设为歌手名,然后,再将歌手数据库和歌曲数据库做成主从表就行了。