delphi+access 简单的查询,为何要出错?高分相送!

wendream 2006-09-08 10:15:10
小弟我有一用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.
...全文
251 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wendream 2006-09-10
  • 打赏
  • 举报
回复
问题解决了,结帖
samcrm 2006-09-08
  • 打赏
  • 举报
回复
这一段这样改动一下:
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;
andyzhou1101 2006-09-08
  • 打赏
  • 举报
回复
search_key:=inputbox('查询','请输入查询姓名','文纯良'); ////干吗这样写
wendream 2006-09-08
  • 打赏
  • 举报
回复
好的,我把默认值取消再试一下.
xjjrocker 2006-09-08
  • 打赏
  • 举报
回复
问题出在inputbox,自己检查吧

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧