大家好,情况是这样的,我想是这样的,DBgrid显示了一张表的内容,比如我用一个ComboBox下拉菜单,下拉那里面有表里面字段1的内容,我想选择这个ComboBox,当ComboBox选择这个字段的名称时,Dbgrid的光标同时移动到这个字段名称的地方啊,不知怎样实现呢,谢谢大家

解决方案 »

  1.   


      DBGrid1.SelectedIndex :=
      DBGrid1.DataSource.DataSet.FieldByName(ComboBox1.Text).Index;
      

  2.   

    你好,刚刚试了上面那样写不行啊,因为FieldByName(ComboBox1.Text).Index里面的ComboBox1.Text是字段里的一个记录啊,而不是字段名称啊,如果这样写会弹出错误的啊,如果把FieldByName('字段名').Index这样就没有错误,但是也不能移动光标啊,还请指教指教,谢谢
      

  3.   


      procedure GotoRec(pFieldName,pValue:string);
      begin
        with DBGrid1.DataSource.DataSet do
        begin
          First;
          while not eof do
          begin
            if FieldByName(pFieldName).AsString = pValue then
            begin
              SetFocus;
              Break;
            end;
            Next;
          end;
        end;
      end;
      

  4.   


      procedure GotoRec(pFieldName,pValue:string);
      begin
        with DBGrid1.DataSource.DataSet do
        begin
          First;
          while not eof do
          begin
            if FieldByName(pFieldName).AsString = pValue then
            begin
              SetFocus;
              Break;
            end;
            Next;
          end;
        end;
      end;
      

  5.   

    你好,按照你后面的代码已经可以实现移动光标啦,但是这里还有两个小问题啊,
    一是我试了好像如果那个值没有在数据库里面,那个光标会自动跑到了最最后啊,是不是这样啊?谢谢
    还有就是我经常使用一些过程都会出现这样的情况哦,我直接用DBGrid1不行啊,一定要加form1.DBgrid1才可以啊,那个setfocus前也要加form1.dbgrid1.setfoucs才可以啊,不知道为什么呢?谢谢