[Résolu] [Base] Activer une source de données

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: 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 !

[Résolu] [Base] Activer une source de données

Messagepar Titine » 02 Juin 2009 16:29

Bonjour,

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)

Code : Tout sélectionner   AgrandirRéduire
   nomSource = "NomBase"
   nomContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
   Chemin = "C:\Test"
   CheminUrl = ConvertToURL(Chemin)
   uneInstance = nomContext.CreateInstance()
   nomDocBase = uneInstance.DatabaseDocument
   nomDocBase.AttachResource(CheminUrl & "/NomBase.odb",Array())
   nomContext.registerObject(nomSource, uneInstance)
   uneInstance.URL = "sdbc:dbase:" & CheminUrl


Et maintenant, à l'exécution de la méthode AttachResource, j'obtiens le message suivant :
"Erreur d'exécution BASIC.
Une exeption s'est produite :
Type: com.cun.star.lang.NotInitializedException
Message: ."


Merci de votre aide
Dernière édition par Titine le 04 Juin 2009 10:45, édité 3 fois.
Titine
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 02 Juin 2009 16:14

Re: Activer une source de données

Messagepar Bidouille » 02 Juin 2009 16:31

Bonjour,

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.

Lisez ce fil pour savoir quelle balise utiliser : sutra27295.html#27295

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é.

Merci de votre collaboration.
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 10189
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France

Re: [Base] Activer une source de données

Messagepar Dude » 02 Juin 2009 16:50

Salut,

Si NomBase n'existe pas / plus dans le menu Outils > Options > Base, c'est normal.

J'ai fait un suprême pour tester et créer la source, tu peux t'en inspirer.
AOO 4.1.7 sous Windows 7 Pro x64

Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 21056
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Base] Activer une source de données

Messagepar Titine » 03 Juin 2009 07:51

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.
Open Office 3.1 - Windows XP
Titine
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 02 Juin 2009 16:14

Re: [Base] Activer une source de données

Messagepar P'tite Sandrine » 04 Juin 2009 07:56

Bonjour,

le code fournis par Dude te permettra de tester si le lien existe encore et si pas, de le recréer.

Bonne journée
OpenOffice 2.4 sous Windows XP Pro SP2
P'tite Sandrine
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 18
Inscrit le : 21 Avr 2009 12:43

Re: [Base] Activer une source de données

Messagepar Titine » 04 Juin 2009 08:24

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'espère avoir été plus clair

Titine
Open Office 3.1 - Windows XP
Titine
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 02 Juin 2009 16:14

Re: [Base] Activer une source de données

Messagepar Dude » 04 Juin 2009 08:40

Titine a écrit:mais la base .odb est recréée (et se trouve donc vide (2Ko)).

C'est pour cela que je t'ai indiqué :
Dude a écrit:tu peux t'en inspirer.

Si tu ne veux pas qu'il crée l'ODB, tu mets en remarque les deux dernières lignes du code.
AOO 4.1.7 sous Windows 7 Pro x64

Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 21056
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Base] Activer une source de données

Messagepar Titine » 04 Juin 2009 08:59

Merci Dude, mais cela ne fonctionne pas mieux avec les deux dernières lignes de ton code en commentaire.

C'est la méthode storeAsURL qui écrase la base. Et je ne sais pas par quoi la remplacer.
Open Office 3.1 - Windows XP
Titine
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 02 Juin 2009 16:14

Re: [Base] Activer une source de données

Messagepar sephial » 04 Juin 2009 09:01

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 bogue (et si oui, est ce qu'il sera corrigé pour une version 3.1.1 ? ).
OpenOffice 3.1 sous Windows XP
sephial
Fraîchement OOthentifié
 
Message(s) : 6
Inscrit le : 04 Juin 2009 08:53

Re: [Base] Activer une source de données

Messagepar Dude » 04 Juin 2009 09:36

Autant pour moi, j'ai dit cela de mémoire. Voici du code pour créer uniquement la source sans écraser l'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 = "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
AOO 4.1.7 sous Windows 7 Pro x64

Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 21056
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Base] Activer une source de données

Messagepar Titine » 04 Juin 2009 09:53

Merci Dude, ça fonctionne.
Open Office 3.1 - Windows XP
Titine
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 02 Juin 2009 16:14


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : MSN [Bot] et 9 invité(s)