Thema: Backup mdb

Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#4

AW: Backup mdb

  Alt 2. Apr 2012, 15:13
Möchte von einer Access.mdb ein Backup erstellen. Das geht so weit alles.
Die Formulierung "geht soweit alles" ist im Rahmen einer Aussage über Programmcode als eher schwammig zu bezeichnen.

Aber in der einen Tabelle kommt immer die dussliche Fehlermeldung:'Auch keine' ist kein gültiger Fließkommawert für Feld'pa_Kosten'.
Offenbar versucht dein Programm, den Wert "Auch keine." aus dem ersten Datensatz im Feld pa_memo dem Feld pa_Kosten zuzuweisen. Wie das genau zustannde kommt, hat sich mir auch beim Debuggen deines Codes nicht erschlossen. Mir sind jedoch ein paar Sachen aufgefallen:

1. Du versuchst, einen mittels Autowert erzeugten Wert (Feld pa_ausgangsnr) zu überschreiben.
2. Statt
Delphi-Quellcode:
for tblInsertRecord:= 1 to tblInsert.Fields.Count do
        begin
          tblInsert.Fields[tblInsertRecord-1].AsString:=QryFrom.Fields[tblInsertRecord-1].AsString;
        end;
wäre besser:
Delphi-Quellcode:
for tblInsertRecord:= 0 to tblInsert.Fields.Count -1 do
        begin
          tblInsert.Fields[tblInsertRecord].AsString:=QryFrom.Fields[tblInsertRecord].AsString;
        end;
3. Statt
for QryFromRecord:=1 to QryFrom.RecordCount do wäre hier besser:
WHILE NOT QryFrom.EOF DO weil du ja sowieso mit QryFrom.Next zum nächsten Datensatz weiterschaltest. Ist der letzte Datensatz erreicht, wird die Schleife noch einmal ausgeführt. Beim nächsten NEXT erreicht der Datensatzzeiger das EOF und die WHILE-Bedingung wird TRUE.

Übersichtlicher Code hilft beim Debuggen ungemein!

Wenn du eine Sicherheitskopie der gesamten Access-Datei anlegen möchtest, bietet sich die Alternative an, die gesamte Datei einfach unter einem anderen Namen zu kopieren. Ich mache das bei etlichen meiner frühen Kundendatenbanken und biete sogar dem Anwender die Möglichkeit, beim Beginn bzw. beim Beenden der Anwendung eine Sicherung anzulegen. Auch zwischendurch soll der Anwender die Möglichkeit haben, schnell mal ein Backup erzeugen zu können.

Nicht vergessen, vor dem Kopieren alle Connections zu schließen und danach wieder zu öffnen.
  Mit Zitat antworten Zitat