我在对一表进行处理时,将表中数据的teach_id,和teach_from_week 进行处理后,循环最加此条记录生成一条新的记录,但是循环确执行不了,帮我看看吧我很急!高分回报!!!procedure TF_kaoshixx.Button1Click(Sender: TObject);
  var xkbh,kcdm,kd,st_id,student_team,id:string;  gd,n,m,i,week,wek:integer;
begin
   T_kb.Filter:='team='''+dbedit1.Text+'''';
   T_kb.Filtered:=true;
  T_kb.Open;
   n:=T_kb.recordcount;
   i:=0;
   gauge.Progress:=0;
   T_kb.First;
   while not T_kb.Eof do
   begin
   xkbh:=T_kb['teach_id'];
   gd:=2000+strtoint(xkbh);
   id:=inttostr(gd);
   edit2.text:=xkbh;
   kcdm:=T_kb['teach_code'];
   week:=T_kb['teach_to_week'];
   kd:=kcdm[length(kcdm)];    //处理另一编号
   if kd='0' then
   wek:=week+1
   else
   wek:=week;
   T_kb.AppendRecord([id,T_kb['teach_name'],T_kb['teach_grade'],T_kb['teach_class'],T_kb['teach_type'],
   T_kb['teach_class_id'],T_kb['teach_student_number'],T_kb['teach_teacher'],T_kb['teach_xuan'],T_kb['teach_code'],
   T_kb['teach_xf'],wek,wek,T_kb['teach_department'],T_kb['teach_department_id'],T_kb['team'],
   T_kb['teach_memo'],now]);
     T_student.Close;
     T_student.Filter:='teach_id='''+edit2.text+'''';
     T_student.Filtered:=true;
     T_student.Open;
     T_student.First;
     m:=0;
     while not T_student.Eof do     //子循环
     begin
        T_student.AppendRecord([id,T_student['student_id'],T_student['team']]);
        inc(m);
        T_student.Next;
        T_student.Refresh;
      end;
   inc(i);
   T_kb.Next;
   gauge.Progress:=(100*i) div n;
   end;
  end;

解决方案 »

  1.   

    T_kb.Open;最好调到最前面。
    数据集激活了吗?
    你的程序写的太乱了!
    你具体说一下错误在那里,错误提示是什么?
    有问题请发信息到我的E-mail:[email protected]
      

  2.   

    while not T_student.Eof do     //子循环
         begin
            T_student.AppendRecord([id,T_student['student_id'],T_student['team']]);
            inc(m);
            T_student.Next;
          
    是不是AppendRecord将记录移到最后一条了,跟一下看看.
      

  3.   

    不知道你的数据表有没记录或都是否过滤出记录:
    你可以加一个这样的代码在循环之前:
    if T_student.RecordCount then
    begin
         T_student.First;
         m:=0;
         while not T_student.Eof do     //子循环
         begin
            T_student.AppendRecord([id,T_student['student_id'],T_student['team']]);
            inc(m);
            T_student.Next;
            T_student.Refresh;
          end;
       inc(i);
       T_kb.Next;
       gauge.Progress:=(100*i) div n;
    end;