Page 1 sur 1

[Résolu]Créer un lien vers le module Base

Publié : 15 juin 2012 11:49
par OOotremer971
Bonjour à tous,

A la recherche d'une solution pour répondre à ce lien :
remplir automatiquement deux tableaux identiques
j'ai imaginé le stockage des données dans Base pour les conserver bien au chaud
une copie du formulaire de saisie au format .odt en lecture seule pour alimenter la base à partir d'un document simple
récupération des données dans Calc par le biais de la "table de pilote" afin de les récupérer sur une feuille journalière, et une feuille hebdomadaire.

Jusque là tout va bien. Le point qui me chagrine c'est que les données importées par le pilote doivent-être actualisées manuellement, je ne trouve pas d'option pour que cette actualisation se fasse soit sur demande, soit automatiquement, soit à l'ouverture du document. Ma question est donc : quelqu'un sait-il si cette option existe ou non, et si oui, où se paramètre-telle ?

Merci à vous.

Re: Créer un lien vers le module Base

Publié : 15 juin 2012 13:11
par Piaf
Bonjour OOotremer971
J'ai essayé de tester ton système avec une base à moi, à priori en basant la table de pilote sur une vue, si le curseur est positionné dans la table de pilote, la commande actualisée du menu de la table de pilote est activée et met les données à jour.
A tester chez toi.
A+

Re: Créer un lien vers le module Base

Publié : 15 juin 2012 13:23
par OOotremer971
Bonjour Piaf

Oui, j'ai basé ma table de pilote sur une requête, je n'ai pas pensé à la vue, mais le problème demeure car l'actualisation ne se fait que manuellement . Mon souhait est de masquer la feuille du pilote (donc pas d'actualisation manuelle possible) et de récupérer les données que souhaite de cette feuille par une fonction RECHERCHEV() par exemple.
Le menu Édition ne me donne pas de lien vers cette base, je vais sans doute être obligé d'avoir recours à une macro.

 Ajout : Après recherche en section macro j'ai trouvé ce code et le lien vers (merci Dude) :

Code : Tout sélectionner

    Sub MaJPilote
    oDoc = thiscomponent
    oFeuilleEnum = oDoc.sheets.createEnumeration
    While oFeuilleEnum.hasMoreElements()
       oFeuille = oFeuilleEnum.nextElement()
       oPilotes = oFeuille.getDataPilotTables()
       oPiloteEnum = oPilotes.createEnumeration
       While oPiloteEnum.hasMoreElements()
          oPiloteElement = oPiloteEnum.nextElement()
           oPiloteElement.refresh
       Wend
    Wend
    End Sub
@aux futurs lecteurs de ce fil, les questions sur les macros ne se posent qu'en section macro et non ici. Je laisse volontairement le code ici pour une meilleure lisibilité de la solution.