问题:我又两个子窗体上均有DBGrid组件,但为什么有一格窗体能和我所建的数据模块窗体的DataSource关联,而另一个却不能关联上呢?
问题2:如果我想将ComboBox的下拉选项(即属性Items里的代码)以这样的形式
“ADOQuery1.FieldByName('').AsString:=ComboBox1.Items”写出的话会出现ERROR:说标识符的类型不匹配,前面是String型的,后面是TString型的,请问这个问题怎么解决?

解决方案 »

  1.   

    1、看看两个子窗体都引用了数据库模块,估计不能关联那个是没有引用
    2、ADOQuery1.FieldByName('').AsString:=ComboBox1.Items改为
       ADOQuery1.FieldByName('').AsString:=ComboBox1.text;
       string类型怎么等于Items?
      

  2.   

    哦,初学者,呵呵,我也是。这些问题我都遇到过的。1.在子窗体里要use连接了数据库的窗体的unit2.ComboBox1.text才能匹配哦。
    可以这样写procedure TForm1.FormShow(Sender: TObject); 
    var i:integer; 
    begin 
    with 数据模块里关联的那个查询ADO do 
    begin 
    Active := False; 
    SQL.Clear; 
    SQL.Add('select distinct 要查询的字段 from 所在的表'); 
    Open; 
    for i :=0 to RecordCount-1 do 
      begin 
        ComboBox1.Items.Add(Fields.Fields[0].AsString); 
      Next; 
      end; 
      close; 
    end; 
    end; 
      

  3.   

    问题一可能第二个没关联上
    问题二ADOQuery1.FieldByName('').AsString:=ComboBox1.Items,这里的combobox1.items不是string类型的,
    楼主记住,无论是edit1.text,combobox1.text这样类型的才是string
      

  4.   

    ADOQuery1.FieldByName('').AsString:=ComboBox1.Items
    還是很強大???
    等號兩邊類型要相同啊,以后注意了
      

  5.   

    ADOQuery1.FieldByName('').AsString:=ComboBox1.text; 
    就是这样。。
      

  6.   

    前面是String型的,后面是TString型的,
    这俩个都不是一个类型,肯定会报错嘛