delphi+access 简单的查询,为何要出错?高分相送!
小弟我有一用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 wenchunl@163.com 软行天下商城 000001 文纯良 2006-9 -3
刘德华 andy lau 496234xy-oooooooo-xxxxxxxx-pppppppp-22222222 分区表医生 andy lau@sina.com 个人开发 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.