可以见这里:http://bbs.csdn.net/topics/390519799?page=1#post-395058726大侠们好,上面在窗体上的一个Edit控件上输入“王军”就会查询出王军相关字段的数据列表。同理,查询其他人也是。这个问题已经被大侠解决了。
问题是:
比如,输入王军,相关的三个字段“字段1、字段3、字段500”所有数据已经查询出来。但我是通过DBEdit控件录入人员数据的,这样就需要查询时DBEDIT控件也需要像字段1,字段3,字段500这样显示出来,这样就会显示出3个DBEdit控件,并且第1个DBEdit控件对应“字段1”,第2个DBEdit控件对应“字段3”,第3个DBEdit控件对应“字段500”。3个DBEdit控件出来后,我才好输入数据。思路基本是上面这些,不知大侠们如何实现,不可能一个人一个条件语句吧,那样太庞大了,最好是像动态查询那样。
另外,由于500个字段,用500个DBEdit控件好像太多了,或者有什么更好的办法实现也可以。当然,有办法总比没有的好哇!!!谢谢!

解决方案 »

  1.   

    先根据表1拼出SQL显示的字段,再执行
      

  2.   

    不要通过DBEdit来修改了,用DBgrid吧,要有500个DBEdit你往哪里放啊.....
      

  3.   

    是啊,明明是dbgrid的基本功能,使用dbedit自然就费事了
      

  4.   

    说实话,我用的是firemonkey HD,DBGrid没有,只有StringGrid。许多功能没有了,比如背景框datadraw什么的。我想在StringGrid里实现,已经的录入的数据编辑不了、修改不了,只能在空的地方录入数据,但好像实现不了。所以,如果锁定不能编辑,那怎么录入;如何能够编辑,那以前的数据又可以改(我不想被改)。如果不用Edit控件,那么如何实现呢?????高手支招!!!!
      

  5.   


    功能最基本的stringgrid,也可以在onkey事件里拦截,以达到某些cell不能录入的效果
      

  6.   

    500个字段、DBEdit确实不常见,但我弄了2个程序DBEdit都是将近400个。
      

  7.   

    可以用动态创建的方法来实现,只是思路,自己完善一下吧。
    用了DBEDIT并关联至字段。procedure TForm1.Button1Click(Sender: TObject);
    var
    Lables : TLabel;
    Edits  : TDBEdit;
    i:integer;
    begin
    for i:=1 to self.adoquery1.FieldCount do begin  //创建与字段数相同的数量
    lables:=TLabel.Create(self);//创建标签并设置为字段名
    lables.Top :=30*i;
    lables.Left :=10;
    lables.Width :=100;
    lables.Height :=25;
    lables.Parent :=self;
    lables.Caption :=self.ADOQuery1.Fields[i-1].FieldName ;
    lables.Name :='lable'+trim(inttostr(i));
    lables.Visible :=true;
    Edits:=TDBEdit.Create(self);//创建DBEDIT并关联至相关字段
    Edits.Top :=30*i;
    Edits.Left :=110;
    edits.Parent :=self;
    Edits.DataSource :=self.DataSource1;
    Edits.DataField :=self.ADOQuery1.Fields[i-1].FieldName ;
    Edits.Name :='edit'+trim(inttostr(i));
    Edits.Visible :=true;
    end;
    end;
      

  8.   

    窗体上放太多控件对系统也不太好还是改成dbgrid方便快捷。
    还有一个表里面500个字段的话应该考虑优化了吧。