hier nochmal die Procedure :
Delphi-Quellcode:
procedure TfrmImportAllg.sbtnImportClick(Sender: TObject);
begin
// prüfen ob Datei und Jahr ausgewählt wurden
if (cbxJahr.ItemIndex > -1) and (cbxDateiAusw.ItemIndex > -1) then begin
//Prüfen ob Datensätze schon in TableGde vorhanden
if quAllg.Active then begin
quAllg.Close;
end;
quAllg.ParamByName('PJahr').AsInteger:= StrToInt(cbxJahr.Text);
quAllg.Prepared := False;
if not quAllg.Active then begin
quAllg.Open;
end;
with cbxDateiAusw do begin
if quAllg.IsEmpty then begin
quAllg.Close;
// importieren der ausgewählten Datei
case ItemIndex of
0 : begin
ImportCopyGde;
end;
1 : begin
ImportCopyBank;
end;
2 : begin
ImportCopyGdeBank;
end;
3 : begin
// ImportCopyAdr;
ExcelTabOeffnen;
DBAdrfuellen;
end;
end; //Case-end
end else begin // quAllg not empty
// Meldung dass Datensätze bereits vorhanden und
// Abfrage ob überschrieben werden soll
if MessageDlg('Datensätze mit Jahr ' + cbxJahr.Text + ' bereits vorhanden! Überschreiben ?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
//Löschen und importieren => Überschreiben der Sätze
quAllg.First;
case ItemIndex of
0 : begin
try
quAllg.CachedUpdates := true;
quAllg.UpdateObject := frmDataModul.UpdateGde;
while not quAllg.Eof do begin
quAllg.Delete;
end;
finally
quAllg.ApplyUpdates;
quAllg.CachedUpdates := false;
end;
end;
1 : begin
try
quAllg.CachedUpdates := true;
quAllg.UpdateObject := frmDataModul.UpdateGdeBank;
while not quAllg.Eof do begin
quAllg.Delete;
end;
finally
quAllg.ApplyUpdates;
quAllg.CachedUpdates := false;
end;
end;
2 : begin
try
quAllg.CachedUpdates := true;
quAllg.UpdateObject := frmDataModul.UpdateBank;
while not quAllg.Eof do begin
quAllg.Delete;
end;
finally
quAllg.ApplyUpdates;
quAllg.CachedUpdates := false;
end;
end;
3 : begin
while not (quAllg.Eof) do begin
frmHaupt.dbFinalDi.StartTransaction;
quAllg.Delete;
frmHaupt.dbFinalDi.Commit;
end;
end;
end;
case ItemIndex of
0 : begin
//*ImportCopyGde;
end;
1 : begin
//* ImportCopyBank;
end;
2 : begin
//* ImportCopyGdeBank;
end;
3 : begin
//* ImportCopyAdr;
end;
end; //Case-end
showmessage('hier sollten die Sätze überschrieben werden');
end else begin //Datensätze nicht überschreiben
// routine beenden => normal keine Handlung mehr nötig,
// dient momentan nur zur Kontrolle
showmessage('hier sollten wir auf anständige Art und Weise das ganze beenden');
end; //if msgDialog-end
end; //quAllg.empty-end
end; // with cbxDateiAusw-end
end else begin // Jahr oder Dateiname nicht ausgewählt
showmessage('Sie müssen vor dem Import sowohl eine Datei als auch das Jahr auswählen!');
end; // Jahr+Dateiname ausgewählt-end
end;
[edit=MrSpock]Code-Tags hinzugefügt. Mfg, MrSpock[/edit]