Seite 1 von 1
Datensicherung mit Makro
Verfasst: Sa, 13.08.2011 10:42
von Hansi
Hallo Leute,
nun ist es passiert,ich habe meine Daten von 6 Monaten ausversehen gelöscht.Dadurch bin ich auf ein neues Problem gestoßen.Ist es möglich eine Datensicherung per Makro zu machen.Sprich wenn 10 Tage der letzten Datensicherung vorbei sind,muß man an eine neue Datensicherung erinnert werden. 10 Tage deswegen,da ich die letzen 10 Tage noch in meiner Datenfernauslesung drin habe.
Gruß Hansi
Re: Datensicherung mit Makro
Verfasst: Sa, 13.08.2011 11:20
von F3K Total
Hallo,
wenn es sich um ein Calc Dokument handelt, kann man das letzte Backup Datum in einer Zelle speichern. Siehe Anlage.
Das Makro überprüft das aktuelle Datum, meldet wenn das Datum in der Zelle A1 mindestens 10 Tage älter ist und trägt dann das aktuelle Datum in die Zelle ein.
Gruß R
Re: Datensicherung mit Makro
Verfasst: Sa, 13.08.2011 12:30
von komma4
Hansi hat geschrieben:Sprich wenn 10 Tage der letzten Datensicherung vorbei sind,muß man an eine neue Datensicherung erinnert werden.
Würde ich über das Betriebssystem lösen...
Linux: cronjob, der eine Liste der zu sichernden Dateinamen ausliest und Kopien (mit angehängtem Zeitstempel) in einem Archivverzeichnis erstellt.
Kann mir gut vorstellen, dass es unter Windows entsprechende Freeware Programme gibt.
Re: Datensicherung mit Makro
Verfasst: Sa, 13.08.2011 15:25
von Hansi
Hi,
ich hab da etwas gefunden,weiß nur noch nicht wie ich den eingelesende Dateinamen aus dem FilePicker herausbekomme.
Hier mal der Link
http://www.ooowiki.de/StarBasic
Im spezielen FileDateTime.
Ihr wisst das bestimmt.
Gruß
Re: Datensicherung mit Makro
Verfasst: Sa, 13.08.2011 17:51
von komma4
Hansi hat geschrieben:Im spezielen FileDateTime.
Warum nimmst Du nicht das Änderungsdatum aus den Dateieigenschaften?
Beispiel;
Code: Alles auswählen
If ThisComponent.DocumentProperties.ModifiedBy > "" Then
With ThisComponent.DocumentProperties.ModificationDate
sLastSavedTimeStamp =_
.Year & "-" & _
Format( .Month, "00" ) & "-" & _
Format( .Day, "00" ) & " " & _
Format( .Hours, "00" ) & ":" & _
Format( .Minutes, "00" ) & ":" & _
Format( .Seconds, "00" )
End With
Re: Datensicherung mit Makro
Verfasst: So, 14.08.2011 08:45
von Hansi
komma4 hat geschrieben:Warum nimmst Du nicht das Änderungsdatum aus den Dateieigenschaften?
Hmm,ich glaub geht nicht bei mir.
Erklärung,
ich arbeite mit der Datei " Test".Dessen Sicherungsdatei "Testsave" wird in einem anderen Ordner gespeichert.Über den FilePicker hol ich mir die Datei "Test".Nun muß gesprüft werden,wie alt davon die Sicherungsdatei "TestSave" ist.Und wenn ich mit der Datei "Start" über den FilePicker hole,ist es die Sicherungsdatei "StartSave" die überprüft werden sollte.
Re: Datensicherung mit Makro
Verfasst: So, 14.08.2011 15:08
von Stephan
ich hab da etwas gefunden,weiß nur noch nicht wie ich den eingelesende Dateinamen aus dem FilePicker herausbekomme
Siehe:
http://www.starbasicfaq.de/Wiekannmanei ... Dialo.html
Gruß
Stephan
Re: Datensicherung mit Makro
Verfasst: Di, 16.08.2011 16:36
von Hansi
Hallo,
ich habe eine Lösung für mein Problem gefunden.Im unteren Code seht ihr das ich einfach die Datei nochmal speichere mit einem Datumanhang.Da wird es zwar täglich mit gespeichert,aber das ist der Kompromiss den ich mache.Eine Sache wäre aber doch noch.Es wäre gut wenn die Sicherheitsdatei unter folgenden Verzeichnis gespeichert wird.
file:///C:/Dokumente und Einstellungen/Rene/Eigene Dateien/Winddaten/Backup
Ich bin aber noch nicht dahinter gekommen,wie das mit dem FilePicker geht,ohne noch mal den FilepIcker aufrufen zu müssen.
Code: Alles auswählen
sub AuslagernSpeichern
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Daten1"
args2(0).Value = ""
args2(1).Name = "Index"
args2(1).Value = 32767
args2(2).Name = "Copy"
args2(2).Value = true
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args2())
dim dummy()
odoc = thiscomponent
SFileDialog=createunoservice("com.sun.star.ui.dialogs.FilePicker")
SFileDialog.Initialize(Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE))
SFileDialog.appendFilter("Windberechnung (*.wsb)", "*.wsb")
SFileDialog.setDisplayDirectory("file:///C:/Dokumente und Einstellungen/Rene/Eigene Dateien/Winddaten/" )
SFileDialog.setTitle("Daten speichern")
iAccept = SFileDialog.Execute()
If iAccept = 1 Then
If Right(SFileDialog.Files(0),4) =".wsb" then
mDatei = SFileDialog.Files(0)
mDateis = SFileDialog.Files(0)+"_"+ date
else
mDatei = SFileDialog.Files(0)+".wsb"
mDateis = SFileDialog.Files(0)+".wsb_"+ date
print mdateis
endif
oDoc.storeasURL(mDatei,dummy())
oDoc.storeasURL(mDateis,dummy())
else
odoc.close(true)
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 3
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
beep
exit sub
end if
Speichern2 = msgbox ("Ihre Datei ist gespeichert.Möchtern Sie das Programm beenden ?",4+32,MyString)
If Speichern2 = 6 then
document.close(true)
odoc.close(true)
else
odoc.close(true)
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 3
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())
beep
end if
end sub
@@@ Stephan
Du hast mir hier
viewtopic.php?f=18&t=48719 einen Code von mottcxo reingestellt.Der gefällt mir sehr gut,nur wann oder durch was beendet der sich ? Das hab ich noch nicht gefunden.
Gruß Hansi