al ejecutar el afterpost del adoquery1 no significa que se guarden los datos en la base de datos , simplemente es el afterpost del objeto tadoquery que estas usando. hasta que no finalices la transaccion , los datos no los vas a ver desde otros querys.
lo que quiero decir es que si no haces commit (en el afterpost o donde quieras) , cualquier otro adoquery que intente mostrar esos datos no los va a ver.
yo pondria algo como esto.
Código Delphi
[-]
procedure TForm1.ADOQuery1AfterPost(DataSet: TDataSet);
begin
timer1.enabled:=true;
end;
y en el timer finalizas la transaccion ,
y cierras y abres el query para refrescar.
Código Delphi
[-]
Procedure Tform1.Timer1OnTimer(Sender:Tobject)
Begin
If adoquery1.connection.intransaction then
Adoquery1.connection.CommitTrans;
Adoquery2.close; Adoquery2.open;
End;
de todas formas , yo no lo haria asi , aunque todo depende de com tengas hecha la aplicacion , y que controles tengas enlazados
Saludos.