小弟我有一用delphi+access编写的示例程序,当我点击一次可以找到要找的记录,可我再次点它的时候,就没有任何反应了,提示程序无响应,而且即使我输入一个不存在的记录字段值,程序也不报错,但我认为程序至少提示:“Record Not found”.以下是数据库文件以及程序源代码。请高手帮我看看该如何改程序,使得可以多次的使用“查询”按纽进行查询而不是提示“程序无响应”?还有程序为什么不会提示"Record not found"?数据库文件:用户名 注册名 注册号 产品名 邮件地址 购买地点 定单号 支持人员 日期周星驰 星星 yivkwafh-uc723rxc-bvhcpjpq-owerusnv-;ldgjfds 大内密探008 周星星专用@搞笑天王.com 超值套装购买 000003 星迷 2006-9 -7 文纯良 文纯良 ZY9802DA-024563IO-J8H76G5L-240LMNHU-V8H5K2L0 易我数据恢复向导V2.0 [email protected] 软行天下商城 000001 文纯良 2006-9 -3 刘德华 andy lau 496234xy-oooooooo-xxxxxxxx-pppppppp-22222222 分区表医生 andy [email protected] 个人开发 000002 文纯良 2006-9 -7 程序源代码:procedure TForm1.FormCreate(Sender: TObject);
begin
   DBGrid1.Columns[0].Width:=100;
   dbgrid1.Columns[1].Width:=200;
   dbgrid1.Columns[2].Width:=150;
   dbgrid1.Columns[3].width:=80;
   dbgrid1.Columns[4].Width:=100;
   dbgrid1.Columns[6].Width:=150;
   dbgrid1.Columns[7].width:=100;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
var
   search_key:string;
   found:boolean;
begin
   found:=false;
   adotable1.RecNo:=1;
   adotable1.Recordset.MoveFirst;
   search_key:=inputbox('查询','请输入查询姓名','文纯良');
   while not adotable1.Eof do
       begin
         if adotable1.FieldByName('用户名').AsString=search_key then
            begin
              showmessage('Record Found at:'+inttostr(adotable1.RecNo));
              found:=true;
            end;
         adotable1.RecNo:=adotable1.RecNo+1;
         
       end;
   if  found=false then
       begin
          showmessage('Record not found.');
       end;end;end.

解决方案 »

  1.   

    search_key:=inputbox('查询','请输入查询姓名','文纯良');  ////干吗这样写
      

  2.   

    问题出在inputbox,自己检查吧
      

  3.   

    这一段这样改动一下:
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
       search_key:string;
       found:boolean;
    begin
       found:=false;
       adotable1.First;//adotable1.RecNo:=1;
                       //adotable1.Recordset.MoveFirst;
       search_key:=inputbox('查询','请输入查询姓名','文纯良');
       while not adotable1.Eof do
           begin
             if adotable1.FieldByName('用户名').AsString=search_key then
                begin
                  showmessage('Record Found at:'+inttostr(adotable1.RecNo));
                  found:=true;
                end;
             adotable1.Next;//adotable1.RecNo:=adotable1.RecNo+1;
             
           end;
       if  found=false then
           begin
              showmessage('Record not found.');
           end;end;