[Base] Créer une source Calc et le fichier ODB qui va avec

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur: Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.

[Base] Créer une source Calc et le fichier ODB qui va avec

Messagepar Dude » 09 Oct 2007 16:13

Le problème principal du publipostage, des formulaires à l'extérieur de la base (ODT) ou d'avoir comme base de données un classeur (ODS), c'est l'obligation d'avoir une source de données dans les options.

Voici une macro qui crée cette source et le fichier ODB.
Code : Tout sélectionner   AgrandirRéduire
Sub EnregistreSourceODB
   Dim NomSource as string
   Dim Chemin as string
   Dim NomBase as string
   Dim Classeur as string
   NomSource = "Dude Source"
   Chemin = "u:\temp"
   NomBase = "maBase.odb"
   Classeur = "maBase.ods"
   
   oContexte = createUnoService("com.sun.star.sdb.DatabaseContext")
   If oContexte.hasByName(NomSource) Then
      msgBox NomSource & " existe déjà !"
   Else
      oSrcODB = createUnoService("com.sun.star.sdb.DataSource")
      sUrl = ConvertToURL(Chemin)
      oSrcODB.DatabaseDocument.storeAsURL(sUrl & "/" & NomBase, Array())
      sUrl = "sdbc:calc:" & sUrl & "/" & Classeur
      oContexte.registerObject(NomSource, oSrcODB)
      oSrcODB.setPropertyValue("URL", sUrl)
      oSrcODB.DatabaseDocument.store()
   End If
End Sub


Si vous voulez supprimer la source existante au moment du test, sélectionnez la ligne :
Code : Tout sélectionner   AgrandirRéduire
      msgBox NomSource & " existe déjà !"

et remplacez la par :
Code : Tout sélectionner   AgrandirRéduire
      oContexte.revokeObject(NomSource)


8)
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22277
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Retour vers Suprême de code

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron