有这样一个 数据库
Model   123   456  789  321  654   987Man     VW    BMW   AD   GM   VW    VW
combobox1对应 Mancombobox2对应 model
当 combobox1选择 VW时  combobox2中 只有 123   654  321  
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select Man,Model from data where Man="'+ComboBox1.text+'"';
ADOQuery1.Open;
combobox2.Items:=ADOQuery1.FieldByName('Model').AsString;
有什么错误吗?为什么提示最后一行错误
应该如何写?

解决方案 »

  1.   

    combobox2.Items.Assign(ADOQuery1.FieldByName('Model').AsString);
    对象不能直接赋值,需要用Assign方法,否则会内存泄露
      

  2.   

    combobox2.Items怎么能用string类型赋值呢,应该是combobox2.Items.Add吧
      

  3.   

    ADOQuery1.Close;
    ADOQuery1.SQL.Text:='select Man,Model from data where Man="'+ComboBox1.text+'"';
    ADOQuery1.Open;combobox2.items.clear;
    while not adoquery1.eof do begin
    combobox2.Items.add(ADOQuery1.FieldByName('Model').AsString);
    adoquery1.next;
    end;
      

  4.   


    现在有个问题 
    我的combobox2 对应 model
    执行的话 只是在 combobox2 的前几行添加了新内容 后面几行 还是 model的全部内容
    clear 也只是清楚 新添加的 内容
    我想实现 当 combobox1选择 VW时 combobox2中 只有 123 654 321  而没有其他内容 
      

  5.   

    就像Combo1选择省份, combo2显示省份下面的各市区.
      

  6.   

    combobox2中
    123
    456 
    789 
    321
    654
    987
    添加上述代码后 当combobox1 为VW时
    combobox2中
    123
    654
    987
    123
    456
    789
    321
    654
    987
    我只想要 123 654 987  原先的东西都不要 
      

  7.   

    突然想到个问题 
    combobox1中是
    vw
    bmw
    ad
    gm
    vw
    vw
    重复项能否不显示
      

  8.   

    临时用个dbgrid连着,观察 ADOQuery1 查询的结果,看看过滤后的记录是否是你希望的内容,我怀疑你查询得到的记录,不是你想象中那样仅有那三条。
      

  9.   

    ADOQuery1.Close;
    ADOQuery1.SQL.Text:='select Man,Model from data where Man="'
      +ComboBox1.text+'" order by Model';
    ADOQuery1.Open;combobox2.items.clear;
    while not adoquery1.eof do begin
    combobox2.Items.add(ADOQuery1.FieldByName('Model').AsString);
    adoquery1.next;
    end;