怎么让查询后功能是"显示上一条记录"的按钮正常使用

marsbtx 2008-08-08 03:53:22
没有点击查询按钮前,上一条记录按钮和下一条按钮都能正常使用,但是点击查询按钮后,上一条记录按钮和下一条记录按钮都失去作用,点了没有反应.

查询按钮和上一条记录按钮都是使用ADOQuery1连接数据库.
...全文
254 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
marsbtx 2008-08-21
  • 打赏
  • 举报
回复
不太会用导航条啊,来去研究下.
RoverX 2008-08-20
  • 打赏
  • 举报
回复
为什么不用导航条?
qian_longN1 2008-08-20
  • 打赏
  • 举报
回复
你所说的失去作用是指死循环了,还是指在查询的过程中其他按钮无法点击阿,如果是后者你可以试试在查询按钮中加入这一句
Application.ProcessMessages;
marsbtx 2008-08-20
  • 打赏
  • 举报
回复
很久的贴子,自己顶上去,大师进来看看啊.
marsbtx 2008-08-20
  • 打赏
  • 举报
回复
第一条按钮和查询按钮感觉有冲突,没有查询之前,第一条按钮等都正常使用,只要一按查询,第一条等只要点上去没有任何反应,而且多按几次后,还会跨出数据库报错的提示.
marsbtx 2008-08-08
  • 打赏
  • 举报
回复
上一条记录代码


procedure TInfo.Button15Click(Sender: TObject);
var
MS:TstringStream; //上一条记录
begin
//with ADOQuery1 do
ADOQuery1.Prior;
if not ADOQuery1.Bof then
begin
Button15.Enabled := true;
end
else
begin
Button15.Enabled := false;
Button17.Enabled:=false;
end;
edit2.Text:=ADOQuery1.FieldByName('StuName').AsString;
edit1.Text:=ADOQuery1.FieldByName('StuID').AsString;
edit3.Text:=ADOQuery1.FieldByName('StuBirth').AsString;
edit4.Text:=ADOQuery1.FieldByName('StuClass').AsString;
edit5.Text:=ADOQuery1.FieldByName('StuFather').AsString;
edit6.Text:=ADOQuery1.FieldByName('StuMother').AsString;
edit8.Text:=ADOQuery1.FieldByName('FathTele').AsString;
edit9.Text:=ADOQuery1.FieldByName('MothTele').AsString;
edit7.Text:=ADOQuery1.FieldByName('StuTeaName').AsString;
//image1.Picture.Graphic := nil;
if ADOQuery1.FieldByName('StuPicture').isNull=false then
begin
MS:=TstringStream.Create('');
TBlobField(ADOQuery1.FieldByName('StuPicture')).SaveToStream(MS);
MS.Position := 0;
image1.Picture.Graphic.LoadFromStream(MS);
MS.Free;
end
else
begin
image1.Picture.Graphic.LoadFromFile('D:\较好版本\333333\并蒂莲.jpg');
end;
marsbtx 2008-08-08
  • 打赏
  • 举报
回复
查询代码:

procedure TInfo.Button8Click(Sender: TObject);
var
MS:TstringStream; //查询
begin
if (edit1.Text = '')then
begin
showmessage('学号不能为空。');
edit1.SetFocus;
end
else
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM StuInfo WHERE StuID = ''' +edit1.Text+'''' );
Open;
if IsEmpty then
begin
showmessage('没有这个学生记录。');
//edit1.SetFocus;
button13.Click;
end
else
begin
edit2.Text:=ADOQuery1.FieldByName('StuName').AsString; //显示基本信息
edit3.Text:=ADOQuery1.FieldByName('StuBirth').AsString;
edit4.Text:=ADOQuery1.FieldByName('StuClass').AsString;
edit5.Text:=ADOQuery1.FieldByName('StuFather').AsString;
edit6.Text:=ADOQuery1.FieldByName('StuMother').AsString;
edit8.Text:=ADOQuery1.FieldByName('FathTele').AsString;
edit9.Text:=ADOQuery1.FieldByName('MothTele').AsString;
edit7.Text:=ADOQuery1.FieldByName('StuTeaName').AsString;
//image1.Picture.Graphic := nil;
if ADOQuery1.FieldByName('StuPicture').isNull=false then //显示图片
begin
MS:=TstringStream.Create('');
TBlobField(ADOQuery1.FieldByName('StuPicture')).SaveToStream(MS);
MS.Position := 0;
image1.Picture.Graphic.LoadFromStream(MS);
MS.Free;
end
else
begin
image1.Picture.Graphic.LoadFromFile('D:\较好版本\333333\并蒂莲.jpg');
end;
with ADOQuery7 do
begin
ADOQuery7.Close;
ADOQuery7.SQL.Clear;
ADOQuery7.SQL.Add('select * from FingerPrint where StuID = '''+edit1.Text+''' and Relation =''本人''');
ADOQuery7.Open;
//edit14.Text:=ADOQuery7.FieldByName('Relation').AsString;
if IsEmpty then
begin
label17.Caption:='指纹没有登记';
end
else
begin
label17.Caption:='指纹已经登记';
end;
//info.FormShow(Sender);
end;
button5.Enabled:=true;
button2.Enabled:=true;
button7.Enabled:=true;
end;
end;

end;

2,497

社区成员

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

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