IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

supprimer l'instance ouverte par le publipostage [AC-2003]


Sujet :

VBA Access

  1. #1
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 949
    Points : 4 876
    Points
    4 876
    Par défaut supprimer l'instance ouverte par le publipostage
    Bonjour,
    Depuis Office 2000, le publipostage (ici entre Word2003 et Access2003) est différent : la connexion à la source de données n'est plus une DDE par defaut mais surtout il faut utiliser nécessairement la méthode .mailmerge.opendatasource .... qui ouvre une instance supplémentaire de la base frontale (où se trouvent mes requêtes) et que je ne sais refermer que manuellement, ce qui est dangereux à gérer pour un non informaticien.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
       Set oWord = CreateObject("Word.Application")   
     
            With oWord
                .Visible = True
     
                'ouvrir le document
                .Documents.Open modelDoc
     
                With .ActiveDocument.MailMerge
     
                        .MainDocumentType = wdFormLetters
     
                        .OpenDataSource name:=maBD.name, _
                                        ConfirmConversions:=True, _
                                        ReadOnly:=True, _
                                        SQLStatement:=strSql
     
                        .SuppressBlankLines = True
     
                    ' Diriger le publipostage vers un nouveau document
                    .Destination = wdSendToNewDocument
     
                    ' Lancer la fusion
                    .Execute Pause:=False
                End With
     
                ' Fermer le fichier modele, sans le sauvegarder
                .Documents(modelDoc).Close wdDoNotSaveChanges
     
                Application.Echo True
     
                ' Sauvegarde du fichier sous un autre nom          
       .ActiveDocument.SaveAs nomDoc
     
            End With
    Ma question: comment refermer l'instance de la base, ouverte par .OpenDataSource ... ?
    A noter qu'au premier publipostage, cette instance se referme quelquefois lors de la fermeture du fichier modèle ( .Documents(modelDoc).Close ) mais plus par la suite.

    Merci de vos idées

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut micniv ,

    je te réponds rapidement sans constater le fait...
    pour fermer une instance il faudrait l'identifier... cela risque d'être lourd à gérer...
    la meilleur solution serait de comprendre ce qui bloque sa fermeture...
    .et si tu libère l'objet oWord quitte à le réouvrir?
    .serait-il envisageable que la frontale se ferme d'elle même? (ouverture paramétrable via ligne de commande?)
    .ouvrir à partir d'un fichier export de la requete?
    .générer directement le document finale sans l'outil publipostage?
    ...

    qq idée comme ca en attends que tu ai mieux...

  3. #3
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 949
    Points : 4 876
    Points
    4 876
    Par défaut
    Bien le bonjour Vodiem et merci de ta réponse.

    Après t'avoir lu, je pense que la solution la plus nette est d'exporter dans un fichier externe. De plus j'ai trouvé un joli morceau de code sur le NET qui m'exporte ça dans un .CSV et le résultat obtenu est aussi convivial que je le voulais.

    Je préfère le publipostage aux signets car c'est plus rapide pour le développeur et plus compréhensible pour l'utilisateur, s'il veut se créer d'autres modèles Word.

    J'attends d'avoir bouclé la solution avant de mettre Résolu.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] supprimer <a href...</a> par regex dans pages html.
    Par moldak dans le forum Langage
    Réponses: 10
    Dernier message: 15/11/2012, 17h02
  2. Réponses: 12
    Dernier message: 11/09/2006, 16h54
  3. Réponses: 11
    Dernier message: 31/10/2005, 18h59
  4. Supprimer la mémoire utilisée par les variables globales
    Par dnaprotector dans le forum OpenGL
    Réponses: 4
    Dernier message: 21/07/2005, 14h18
  5. Nombre maximum de fichiers ouverts par processus
    Par galinoo dans le forum Windows
    Réponses: 3
    Dernier message: 27/10/2004, 18h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo