Bonjour, Je suis en version 2.04 sous windows 2K et XP. Le publipostage est utilisé par le service recrutement qui gère les concours. Pour chaque concours il y a 5 lettres types (convocation, échec)et il y a une vingtaine de concours au total. Le but est d'avoir le minimum de sources de données à gérer.
Merci pour l'info que je testerai. Bruno -----Message d'origine----- De: Francois Gatto [mailto:[EMAIL PROTECTED] Date: mercredi 7 mars 2007 04:59 À: prog@fr.openoffice.org Objet: Re: [prog] Publipostage Bonjour, Quelle version d'OOo utilises-tu et sous quelle plateforme ? Personnellement, sous XP OOo v2.1 je n'ai pas de problème. J'ai testé ta macro et je n'y ai pas rencontré de difficulté ; j'ai juste supprimé la propriété "Overwrite" et l'ai remplacée par un simple dim propsODB(). Cela étant, quel est l'intérêt de tout celà ? Est-ce un publipostage entièrement programmé ? Enfin, si l'utilisateur ajoute/modifie des données dans la feuille, s'il sauvegarde le doc puis qu'il "rafraîchit" sa source par un F4 (fermeture/ouverture) les modifications sont disponibles. Peut-être n'ai-je pas bien compris le problème. Francois MABILLE Bruno SZSIC57-IML a écrit : > Bonjour, > Je bloque sur la création/suppression d'une source de donnée pour > publipostage. > La source est un classeur OpenOffice, et je désire pouvoir valider/dévalider > celle ci afin de modifier le classeur et ne pas être obligé de quitter le > démarrage rapide d'OOo. > La macro est en deux parties, la première crée la source de données et la > seconde la supprime. > La macro tombe en erreur systématiquement, à la ligne en gras, lors de la > seconde création, malgré la suppression. Le fonctionnement correct est > retrouvé en quittant le démarrage rapide d'OOo. > > Voici les macros : > > sub Creation_Source_De_Donnees() > > ' Création de la base > oURL=ThisComponent.URL > oTabURL=split(oURL,"/") > oNomFichier=oTabURL(uBound(oTabURL)) > oNomSource=mid(oNomFichier, 1, len(oNomFichier)-4) > oNomBase1=mid(oURL, 1, len(oURL)-4) > oNomBase=oNomBase1 & ".ods" > oDbContext=createUnoService("com.sun.star.sdb.DatabaseContext") > oNewSource = createUnoService("com.sun.star.sdb.DataSource") > ' Création du fichier ODB > OdbURL=oNomBase1 & ".odb" > propsODB(0).Name = "Overwrite" > xray.xray propsODB(0) > propsODB(0).value = True > oNewSource.databaseDocument.StoreAsURL(OdbURL, propsODB()) > oNewSource.databaseDocument.store() > oNewSource.databaseDocument.URL(OdbURL, props()) > ' Création de la source de données > Reponse = oDbContext.hasByName(oNomSource) > If Reponse then > MsgBox "La source de données " & oNomSource & " existe déjà, ajout > impossible" > Else > oNewSource.URL = "sdbc:calc:" & oNomBase > oNewSource.databaseDocument.store() > oDbContext.RegisterObject(oNomSource, oNewSource) > msgbox "Source de Données " & oNomSource & " ( Calc ) créée." > End If > > end sub > > > sub Delete_Source_De_Donnees() > > > oURL=ThisComponent.URL > oTabURL=split(oURL,"/") > oNomFichier=oTabURL(uBound(oTabURL)) > oNomSource=mid(oNomFichier, 1, len(oNomFichier)-4) > oNomBase1=mid(oURL, 1, len(oURL)-4) > oDBContext=createUnoService("com.sun.star.sdb.DatabaseContext") > oNewSource = createUnoService("com.sun.star.sdb.DataSource") > OdbURL=oNomBase1 & ".odb" > oNewSource.databaseDocument.URL(OdbURL, props()) > Reponse=oDbContext.hasByName(oNomSource) > If not Reponse then > msgbox "La source de données " & oNomSource & " n'existe pas, > suppression impossible !" > Else > oDbContext.revokeObject(oNomSource) > ' Fermeture du document odb > oNewSource.databaseDocument.close(True) > oNewSource.databaseDocument.dispose > msgbox "Source de Données " & oNomSource & " supprimée" > end if > end sub > > Merci d'avance pour vos réponse > > > > MABILLE Bruno > SZSIC METZ > [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]