试一下两种方法: 方法一:利用书签(使用了两个adoquery,取同一个表的数据) procedure TForm1.adoquery1AfterScroll(DataSet: TDataSet); var bk:tbook; begin if form1.Showing then//窗体打开后才调用下面的功能! try bk:=dataset.GetBook; adoquery2.GotoBook(bk); finally dataset.FreeBook(bk); end; end; //注存在问题,必须adoquery1,adoquery2的数据结构完全一样才可以,否则不能成功方法二: procedure TForm1.adoquery1AfterScroll(DataSet: TDataSet); begin try if adoquery2.Active then adoquery2.RecNo :=dataset.RecNo ; except; // end; end; //注意存在问题,必须adoquery1,adoquery2的sql语句完全一样才可以,否则不能得到满意结果
adoquery1.Sql...我們假設adoquery1所指表的關鍵字為Single_No 在adoquery2中可使用Single_No與adoquery1建產相關聯 adoquery2.SQL:select * from Table where Single_No=:Single_No 在adoquery2中的參數據屬性中設參數Single_No的DataType屬性為ftFixedChar即通過關聯達到同步的目的
用RecNo试试,当然两个adoquery的结果集要一致
adoquery2.RecNo := adoquery.RecNo;
方法一:利用书签(使用了两个adoquery,取同一个表的数据)
procedure TForm1.adoquery1AfterScroll(DataSet: TDataSet);
var bk:tbook;
begin
if form1.Showing then//窗体打开后才调用下面的功能!
try
bk:=dataset.GetBook;
adoquery2.GotoBook(bk);
finally
dataset.FreeBook(bk);
end;
end;
//注存在问题,必须adoquery1,adoquery2的数据结构完全一样才可以,否则不能成功方法二:
procedure TForm1.adoquery1AfterScroll(DataSet: TDataSet);
begin
try
if adoquery2.Active then
adoquery2.RecNo :=dataset.RecNo ;
except;
//
end;
end;
//注意存在问题,必须adoquery1,adoquery2的sql语句完全一样才可以,否则不能得到满意结果
在adoquery2中可使用Single_No與adoquery1建產相關聯
adoquery2.SQL:select * from Table where Single_No=:Single_No
在adoquery2中的參數據屬性中設參數Single_No的DataType屬性為ftFixedChar即通過關聯達到同步的目的
但这要看你的数据库是什么啦!
如:FOXPROW,dBase就不支持RecNo
用adoquery1. GotoCurrent(Adoquery2);
就行了.