So, sry für Doppelpost.
Ich habe das entsprechend noch geändert. Mein Quellcode sieht nun wie folgt aus.
Delphi-Quellcode:
procedure XLStoCSV;
var S:
String;
Tabellennamen, XLSStringlist: TStringlist;
i, j: Integer;
begin
XLSStringlist:=TStringlist.Create;
Tabellennamen:=TStringList.Create;
try
with PatBehandlungData.conADO
do
begin
Connected:=False;
ConnectionString:='
Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
Dateiname +'
; Mode=Read;' +
'
Extended Properties="Excel 8.0;HDR=Yes";' +
'
Persist Security Info=False';
Connected:=True;
GetTableNames(Tabellennamen);
end;
with PatBehandlungData.qryAdo
do
begin
Active:=False;
SQL.Clear;
SQL.Add('
SELECT * FROM ['+Tabellennamen.Strings[0]+'
]');
Active:=True;
Open;
end;
for i := 0
to PatBehandlungData.qryAdo.RecordCount-1
do
begin
S:='
';
for j := 0
to PatBehandlungData.qryAdo.FieldCount - 1
do
begin
if S<>'
'
then S:=S+'
;';
S:=S+PatBehandlungData.qryAdo.Fields[j].AsString;
end;
XLSStringlist.Add(S);
end;
finally
Dateiname:=ExtractFilePath(Dateiname)+ChangeFileExt(ExtractFileName(Dateiname),'
.csv');
XLSStringlist.SaveToFile(Dateiname);
XLSStringlist.Free;
end;
end;
Die WHERE-Klausel musste ich herausnehmen, weil immer wieder dort Exceptions kamen, egal ob auskommentiert mit -- oder nicht. Ich muss mal noch schauen, in wieweit sich das auswirkt, aber danke noch mal für die Hilfe.