Datensätze in Excel-Sheet schreiben

Hallo,

möchte ein Programm schreiben, mit welchem man eine Datenbank in Excel einlesen kann.
Bin aber noch nicht weit gekommen. das Programm kann bis jetzt Excel starten und Text in beliebige Zellen schreiben.

_Source:
procedure TForm1.Button1Click(Sender: TObject);

var excel:Variant;
begin

try
excel := CreateOleObject(‚Excel.Application‘);
excel.visible := true;
except
ShowMessage(‚Excel konnte nicht gestartet werden !‘);
end;

Excel.Workbooks.Add;
Excel.Cells[1, 1].Value:=‚Hallo Welt‘;

end;_

Meine Frage:

Wie kann ich die Datensätze einer DB-Tabelle in eine Excel-Tabelle schreiben?

Für jede kleine Hilfe bin ich arg dankbar

Mfg,
endyexcellent

Hai endyexcellent,

wenn Du noch nie was mit den DB-Komponenten gemacht hast, dann zieh Dir erst mal die Demos rein. Z.B Fishfakt.
Und lies die Hilfe durch.

Es ist prinziepell nicht kompliziert, man sollte nur wissen, was ab geht.

Wahrscheinlich weißt Du es dann schon selbst, wenn nicht schreibe nochmal.

Viel Erfolg
Nic

Hallo zurück.

Fishfakt? wasn das? Noch nie gehört. Delphi-Hilfe hab ich schon durch.
und mit DB-Kompos habe ich auch schon was gemacht. Sprich ich weiß wie man eine DB in einem DBGrid anzeigen lassen kann und so zeugs… aber ich check nicht wie ich das alles zusammenbringen soll.

Hallo,

du verbindest eine TTable-Komponente mit der Datenbank. Dann öffnest du die DB

MyTable.open;

Die Anzahl der Felder bekommst du mit

AnzFelder := MyTable.FieldCount;

nun gehst du die Tabelle durch:

j := 0;
while not MyTable.eof do begin
 inc(j);
 for i := 0 to AnzFelder - 1 do 
 Excel.Cells[i, j].Value:=MyTable.Fields[i].AsString;
 MyTable.next;
end;

MyTable.close;

Dieser Code gilt für Strings. Mag evtl noch ein paar Bugs haben. Habs nicht ausprobiert.

Gruss, Niels

Hallo,

ich habe Dir was geschickt, hatte nicht gesehen, das Nils schon gepostet hatte…

Bye
nic

Hallo,

habe Deine mail heute morgen gelöscht, wusste nicht von wem diese ist, Spamfilter hat sie dann rausgekickt, sorry.

Was hat denn geschickt?

Mfg,
enDyExcellent