Ich habe mir das mal so umgestrickt, wie ich es mir wünsche, aber leider funktioniert das noch nicht.
Delphi-Quellcode:
procedure XLStoCSV;
var S:
String;
XLSStringlist: TStringlist;
i, j: Integer;
begin
XLSStringlist:=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;
end;
with PatBehandlungData.qryAdo
do
begin
Active:=False;
SQL.Clear;
SQL.Add('
SELECT * FROM ['+ExtractFileName(Dateiname)+'
] WHERE ID IS NOT NULL');
Active:=True;
Open;
//HIER knallt es
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;
Als Fehlermeldung kommt:
Code:
Erste Gelegenheit für
Exception bei $7C812FD3.
Exception-Klasse EOleException mit Meldung 'Das Microsoft Jet-Datenbankmodul konnte das Objekt 'Rheuma 4.Quartal 2011_versandt.xls' nicht finden. Stellen Sie sicher, dass das Objekt existiert und dass die Namens- und Pfadangaben richtig eingegeben wurden'. Prozess ExportExcel.exe (1140)
Die Datei existiert auf jeden Fall, weil ich einmal den Dateinamen aus dem JvFilenameEdit auslese und das dann die Variable "Dateiname" ergibt. Es dürfte ja dann auch vorher keine Connection entstehen, oder?