一般将DataSet 放在窗体中比较好,也容易编码,DATAMODULE一般放连接和公共的ADOQUERY.
如果你确实要这样做,你的办法也可以.还有一个办法是接ADOQUERY的事件在窗体中来.
如:
在窗体中声明一方法:
procedure myOpen(dataset : Tdataset) ;
在窗体.OnCreate事件中先接指针过来:
TADOQuery(DbGrid1.DataSource.DataSet).AfterOpen := MyOpen ;
这样在MyOpen事件就可以做了
xmzlform.Label7.Caption:=inttostr(DataSet.RecordCount);
DataSet.Close;
DataSet.SQL.Text:='select round(sum(je),2), from (' + DataSet.SQL.Text + ')';
DataSet.Open;
xmzlform.label3.Caption:=Format('%.2f',[DataSet.Fields[0].AsFloat]);