Hi,
kenne mich mit
access nicht aus, aber dies ist ja wohl ein Problem der Darstellung im DBGrid.
Für nicht persistente Felder,
sql-code wie gewünscht,
ein DBGrid mit der datasource einer (zu füllenden)
query verbinden
und dann die einzelnen Felder iterieren.
Ich habe dies für mich so gelöst:
Delphi-Quellcode:
procedure Tfsql.DBgridEnter(Sender: TObject);
var
ft:Tfieldtype;
fn,s:
string;
i:integer;
begin
i:=0;
with query do
begin
active:=false;
sql.clear;
sql.add(
sql.text);
open;
dbgrid.datasource:=datasource;
for i:=0
to fieldcount-1
do
begin
ft:=fields[i].DataType;
fn:=fields[i].fieldname;
// siehe weiter unten
if ft=ftstring
then ...
if ft=ftinteger
then ...
if ft=ftword
then ...
if ft=ftfloat
then
begin
Tfloatfield (fields[i]).displayformat:='
0.00';
// dein Avg sollte wohl von diesem Typ sein
end;
end;
// for to
end;
// with query
end;
Der Zugriff auf den fieldname stellt dir noch weiteres zur Verfügung.
Über weitere if /case Abfragen fields[i].displaywidth einstellen, DBgrid.columns[i].alignment usw.
Werner