Publipostage Access Word 2007

TOUF57 Messages postés 35 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 8 septembre 2009 - 16 nov. 2008 à 23:01
TOUF57 Messages postés 35 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 8 septembre 2009 - 23 nov. 2008 à 03:48
Bonjour,

J'ai un souci que je n'arrive pas à solutionner. Bref je voudrais lancer un publipostage Email basé sur 2 requêtes.

Je m'explique:
<li>dans la requête "Rqt_offre" j'ai toutes les offres que j'ai faites à des clients (contenant: ID_contact;nom_contact; référence_client; notre_référence....)</li><li>dans la requête "Rqt_contact_offres" (tirée de la première) j'ai tous les contact auxquels j'ai fait une ou plusieurs offres.</li>J'ai créer un document de publipostage "publipostage clients.docx", lié à la requête Rqt_contact_offres, avec des champs type civilité, nom_contact.

Je voudrais en fait lorsque je clic sur un bouton
si le contact a un email générer un mail basé sur "publipostage clients.docx"
sinon imprimer ce document

C'est à ce moment qu'arrive le problème puisqu'à l'ouverture de "publipostage clients.docx" j'ai un message disant: " La base de données a été placé par l'utilisateur dans un état l'empêchant d'être ouverte ou verouillée".
Donc première question "Comment éviter ce problème?"

Deuxième chose je voudrais que dans publipostage clients soit inscrit toutes les offres de ce contact, sans que cela prenne des heures, par l'insertion d'un tableau "Word", tableau excel, ou par du texte, voir même un formulaire sur lequel je pourrais gérer les réponse (mais
ça je ne m'en suis pas encore servi, et je ne sais pas à quoi cela
ressemble).
(Ces données seront tirés de "Rqt_offres")

Voilà le résultat que je recherche:

Monsieur "machin" blablabla

<li>Notre référence A1 votre référence AAAA montant 20€</li><li>Notre référence A2 votre référence CCCC montant 50€</li><li>Notre référence A3 votre référence BBBB montant 150€</li>Dans l'attente de .......Monsieur MACHIN......
Salutations

Si quelqu'un peut m'aider, merci d'avance.

1 réponse

TOUF57 Messages postés 35 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 8 septembre 2009
23 nov. 2008 à 03:48
Re bonjour,

Ca fait 1 semaine que je me casse la tête la dessus et j'ai d'autres soucis.

L'envoie se fait bien mais j'ai toujours des messages d'erreur qui s'affiche du type "la base de donnée a été..." (cf 1° message).
Quand je clic sur OK, j'ai une autre fenetre qui s'affiche demandant le mot de passe de la base , et lorsque je répond non, 3 voir 4 instances de la base s'ouvre, le doc effectue le publipostage, et ferme la base originale.
Et maintenant j'ai un souci supplémentaire, quand le doc s'ouvre il ne connait plus sa source et me la demande. Niveau automation c'est nul.

Voici le code:
Paramètre:
Where contient: "[ID_contact]=141"
Email contient la version texte de mailto

----------------------------------------------------------------------------
Sub Publipostage_Clients_Param(ByVal where As String, Email As String)
Dim wdApp As Word.Application
Dim strCheminDoc As String
Dim strSQL As String

' Chemin du document Word à ouvrir
strCheminDoc = Application.CurrentProject.Path & "\Publipostage Clients.doc"

' Instruction SQL permettant d'extraire les clients
strSQL = "SELECT * FROM [Rqt_contact] WHERE " & where

' Démarrer Word
Set wdApp = New Word.Application

With wdApp
    ' Rendre Word visible pour faciliter la mise au point
    .Visible = True

    ' Ouvrir le document de publipostage
    .Documents.Open strCheminDoc

    ' Paramétrer le publipostage
    With .ActiveDocument.MailMerge
        .OpenDataSource Name:=CurrentProject.FullName, SQLStatement:=strSQL, ReadOnly:=True

        If Email = "" Then
            ' Diriger le publipostage vers un nouveau document plutôt que vers l'imprimante
            .Destination = wdSendToNewDocument

        Else
            .Destination = wdSendToEmail
            .MailAddressFieldName = "adresse_Email"
        End If
       
        ' Lancer la fusion
        .Execute
   End With

   Documents(strCheminDoc).Close
End With

' Fermer et libérer les objets
Set wdApp = Nothing
End Sub
-----------------------------------------------------------------------------------

S'il vous plait un petit coup de main. Merci beaucoup
0
Rejoignez-nous