von RobertG » Do, 04.04.2013 09:30
Hallo Owenstone,
das eigentliche Makro macht folgendes: Es kopiert die Datei mit einem Nummernzusatz in das Backupverzeichnis von LO/OO/AOO. Ich habe das auf 5 Versionen beschränkt. Ist Version 5 erreicht, so sucht des Backup die älteste Version und ersetzt diese. Dieses Makro hatte ich fertig. Es kopiert nur. Ist also eine Sicherung z.B. zum Start der *.odb-Datei. Während der Eingabe werden keine Daten in die *.odb-Datei geschrieben. Deswegen erschien bis dahin nur der Inhalt, den die *.odb-Datei auch schon vorher enthielt. 0 kb geht aber gar nicht, da ja schon beim Abspeichern einer *.odb-Datei ohne Tabelle das Grundgerüst für die Datenbank mehr einnimmt.
Dann kam, hier aus dem Forum, die Anregung, die Datenbank vor dem Start des Makros zurückschreiben zu lassen - ".flush". Ich dachte, dass das doch sehr den Ablauf stören würde, macht es aber wohl nicht. So speichert die aktuelle Fassung des Makros erst einmal alle neu eingegebenen Daten in der *.odb-Datei und sichert dann die *.odb-Datei in dem Backup-Verzeichnis.
Ich habe das gerade noch einmal überprüft. Ich gebe in einer Datenbank neue Inhalte ein. Der Speicher-Button zeigt naturgemäß nichts zum Abspeichern an. Das erfolgt eigentlich erst, wenn ich die Datei schließe. Ich betätige jetzt über Extras → Makros → Makro ausführen "Backup_sofort". Die Sicherung wird geschrieben. Ich schließe meine bisherige Datei, suche die Sicherung auf und sehe, dass die neu eingegebenen Daten drin sind.
Ich kann Dir wirklich nicht sagen, warum in Deinem speziellen Fall die Dateien leer bleiben. Die von dem Makro erzeugten Dateien beginnen mit einer Zahl, also z.B. 1_Datenbank.odb 2_Datenbank.odb usw. In meinem Backup-Verzeichnis liegen auch Dateien, die dem Muster folgen Datenbank.odb_2.odb Datenbank.odb_3.odb . Von diesen Dateien sind einige in der Tat leer. Ich weiß nicht, welcher Prozess dafür zuständig ist. Diese Dateien haben merkwürdigerweise nur dann einen Inhalt, wenn die Datenbank nicht mit der internen HSQLDB zusammen arbeitet. So habe ich da lauter Kopien einer MySql.odb sowie einer DBase.odb liegen. Die haben naturgemäß keinen Dateninhalt.
Gruß
Robert
Hallo Owenstone,
das eigentliche Makro macht folgendes: Es kopiert die Datei mit einem Nummernzusatz in das Backupverzeichnis von LO/OO/AOO. Ich habe das auf 5 Versionen beschränkt. Ist Version 5 erreicht, so sucht des Backup die älteste Version und ersetzt diese. Dieses Makro hatte ich fertig. Es kopiert nur. Ist also eine Sicherung z.B. zum Start der *.odb-Datei. Während der Eingabe werden keine Daten in die *.odb-Datei geschrieben. Deswegen erschien bis dahin nur der Inhalt, den die *.odb-Datei auch schon vorher enthielt. 0 kb geht aber gar nicht, da ja schon beim Abspeichern einer *.odb-Datei ohne Tabelle das Grundgerüst für die Datenbank mehr einnimmt.
Dann kam, hier aus dem Forum, die Anregung, die Datenbank vor dem Start des Makros zurückschreiben zu lassen - ".flush". Ich dachte, dass das doch sehr den Ablauf stören würde, macht es aber wohl nicht. So speichert die aktuelle Fassung des Makros erst einmal alle neu eingegebenen Daten in der *.odb-Datei und sichert dann die *.odb-Datei in dem Backup-Verzeichnis.
Ich habe das gerade noch einmal überprüft. Ich gebe in einer Datenbank neue Inhalte ein. Der Speicher-Button zeigt naturgemäß nichts zum Abspeichern an. Das erfolgt eigentlich erst, wenn ich die Datei schließe. Ich betätige jetzt über Extras → Makros → Makro ausführen "Backup_sofort". Die Sicherung wird geschrieben. Ich schließe meine bisherige Datei, suche die Sicherung auf und sehe, dass die neu eingegebenen Daten drin sind.
Ich kann Dir wirklich nicht sagen, warum in Deinem speziellen Fall die Dateien leer bleiben. Die von dem Makro erzeugten Dateien beginnen mit einer Zahl, also z.B. 1_Datenbank.odb 2_Datenbank.odb usw. In meinem Backup-Verzeichnis liegen auch Dateien, die dem Muster folgen Datenbank.odb_2.odb Datenbank.odb_3.odb . Von diesen Dateien sind einige in der Tat leer. Ich weiß nicht, welcher Prozess dafür zuständig ist. Diese Dateien haben merkwürdigerweise nur dann einen Inhalt, wenn die Datenbank nicht mit der internen HSQLDB zusammen arbeitet. So habe ich da lauter Kopien einer MySql.odb sowie einer DBase.odb liegen. Die haben naturgemäß keinen Dateninhalt.
Gruß
Robert