Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
Modérateur :Vilains modOOs
Règles du forum Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Je viens d'intaller la version 3.1 de Open office (j'avais la version 2.4 d'installée).
J'ai du code qui ne fonctionne plus... Celui me permettait d'activer une source de données.
Le code suivant fonctionnait avec la version 2.4
Il permet d'activer une base de données NomBase.odb par programme (visible dans le menu Afficher/Source de données)
Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.
Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche.
N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer de synthétiser au mieux ce que vous cherchez à faire.
Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.
Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.
Mon soucis c'est que j'ai déjà une base NomBase.odt (que je ne veux pas toucher).
Je souhaite juste faire le lien avec cette base. Ce qui correspond à ajouter cette base dans Outils/Options/OpenOffice.org Base/Bases de données mais par programme.
Mon code fonctionnait avec la version 2.4 et ne fonctionne plus maintenant avec la version 3.1.
Le code fournis par Dude fonctionne très bien. Si le lien n'existe pas cela le crée, mais la base .odb est recréée (et se trouve donc vide (2Ko)).
Dans mon cas, je fournis un fichier NomBase.odb qui contient déjà des données. Et je souhaite juste ajouter ce lien dans Outils/Options/OpenOffice.org Base/Bases de données, sans toucher à cette base. Bien sûr si le lien existe déjà je n'exécute pas ce code.
J'avoue ne pas saisir la réponse de Dude.
La fonction storeAsURL que tu utilises dans ton code écrase la source pour créer un nouveau fichier.
Cette fonction ne peut, selon moi, être utilisé dans ce cas précis.
Je pense que le problème est donc de trouver une fonction qui permet d'associé le fichier (sans écraser les données existantes de ce fichier).
Malheureusement, la fonction AttachResource ne marche plus depuis la version 3.1 d'Open Office (il fonctionne très bien en 3.0).
Je me demande donc si ce n'est pas un bug (et si oui, est ce qu'il sera corrigé pour une version 3.1.1 ? ).
Sub EnregistreSourceODB
Dim NomSource as string
Dim Chemin as string
Dim NomBase as string
Dim Classeur as string
NomSource = "Ma source à moi"
Chemin = "p:\temp"
NomBase = "maBase.odb"
oContexte = createUnoService("com.sun.star.sdb.DatabaseContext")
If oContexte.hasByName(NomSource) Then
msgBox NomSource & " existe déjà !"
Else
sUrl = ConvertToURL(Chemin)
oSrcODB = oContexte.getByName (sUrl & "/" & NomBase)
oContexte.registerObject(NomSource, oSrcODB)
End If
End Sub