Sauvegarde automatique sur fermeture module base

Bonjour,

J’ ai créé des bases de données avec le module base de LibreOffice. Chacune de ces bases contient un programme qui se déclenche par l’ appui sur un bouton du menu général. Cette macro effectue une sauvegarde de la base en cours dans un fichier alloué à cet usage, puis ferme LibreOffice.
En effectuant un contrôle de routine de ces sauvegardes, je m’ aperçois que malgré l’ extension “.odb”, c’ est un document writer qui s’ ouvre. Plus de tables, de formulaires autre que le menu général ni de macros.
Je ne comprends pas ce qu’ il se passe alors que jusqu’ à présent, cette procédure fonctionnait et que j’ avais pu récupérer les bases suite à des plantages.
Je vous joins le code. Cela vous permettra peut-être de comprendre le pourquoi!!!

Sub BtnQtr()

Dim Qtr As Object
Dim Bdd As Object

	Bdd = ThisDataBaseDocument
	Qtr = Bdd.FormDocuments.getByName("Mn_Gn")
	LstFch
	SvgFch
	Qtr.close
	Qtr.dispose
	If Bdd.ismodified Then
		Bdd.store
	End If
	
	Bdd.close(True)
	Bdd.dispose

End sub
'===============================================================================================================
Function SvgFch

	Dim Fch As String 
	Dim Args(0) As New com.sun.star.beans.PropertyValue 

	Fch = ConvertToURL("/media/elfouste/El_Casot/Yvon/Phototeque/SvgBdd/SvgLO/Pht-" & NvlNdc & ".odb") 
	ThisComponent.storeToURL(Fch,Args()) 

End Function

Par avance, merci de votre aide.

PS: Je viens de m’ apercevoir qu’ il manquait une partie du code. Avec toutes mes excuses.
Code complémentaire:
Function LstFch 'Liste tous les fichiers d’un répertoire

Dim Fch As String, Resultat As String 
Dim LngFch as integer, NcnNdc as integer, d as integer, NbrFch as Integer
Dim i as integer, x as integer, z as integer, b As integer

	Fch=Dir("/media/elfouste/El_Casot/Yvon/Phototeque/SvgBdd/SvgLO/*.odb")
 
	NcnNdc = 0

	Do While Len(Fch) > 0 
		Resultat = Resultat & Chr(13) & Fch
		'Recherche du plus grand indice des dossiers
		LngFch = Len(Fch)
		z=InStr(Fch,"-")
		d = LngFch-(z+4)
		b = mid(Fch,z+1,d)
		if b > NcnNdc then
			NcnNdc = b
		end if
		' Compte le nombre de fichiers 
		NbrFch = NbrFch +1 
	Fch=Dir() 
Loop

if NbrFch = 10 then
	For i = 1 to 5
	x = NcnNdc - (NbrFch-i)
	Kill ("/media/elfouste/El_Casot/Yvon/Phototeque/SvgBdd/SvgLO/Pht-" & x & ".odb")
	next i
End If
' Nouvel indice du dossier a sauvegardé
NvlNdc = NcnNdc + 1 

End Function

Blockquote

Effectivement et sur le principe, pas de soucis avec un bash. Toutefois, la macro jointe avait le mérite de la sécurité. En effet, à chaque fermeture de la base j’ avais automatiquement une copie à jour. Le soucis avec le bash c’ est qu’il faut penser à effectuer une sauvegarde. Le problème proviendrait-il du passage de hsqlbd à firebird ?
Cordialement

Lorsque vous commentez, il serait bien de le faire sous le bon message. Sans quoi on y comprend plus rien.

Penser à quoi ? Cron est un planificateur de tâches, une fois programmé, tout se fait automatiquement.

En principe, les tâches de sauvegarde sont du ressort du système d’exploitation.

Il semble que vous soyez sous Linux.

Donc un script Bash de copie et programmé dans Cron devrait suffire.

Bonsoir,

Je pense avoir trouvé la solution au problèmes. Dans la “Function SvgFch”, il faut remplacer la ligne:
ThisComponent.storeToURL(Fch,Args())
par celle-ci:
ThisDataBaseDocument.storeToUrl(Fch,Args())
Les tests effectués donnent le résultat recherché. Je sauvegarde bien la BDD et je peux l’ ouvrir sans problème.

Cordialement