Bienvenue! Identification Créer un nouveau profil

Recherche avancée

Publipostage Word lié avec BDD actuelle

10/02/14 14:14
Bonjour,

J'ai ce message d'erreur suite à un publipostage d'Access vers Word :
[image.noelshack.com]

Étrangement il n'affiche ni la première lettre ni la dernière.


J'avais des soucis d'admin, déjà ouvert : j'ai fractionner ma BDD pour qu'elle soit lié et non plus en un seul fichier. Normalement c'est censé aller.



Si ma BDD est ouverte et que je lance le publipostage manuellement, tout va bien.
Mais pas en vba.

Le code complet :
Langage: Visual Basic
Sub MergeItWord(Optional bytModule As Byte, Optional bytMoment As Byte) Dim WordApp As Word.Application Dim WordDoc As Word.Document Dim strDoc$   Dim strQryStart As String, strQryEnd As String, strSource As String Dim bytNbrsInQuery As Byte   Dim i As Byte, x As Byte   Dim blnPrintSpec As Boolean   ' 'Module spécifié ? ' 'Si un module et un moment de la journée est spécifié (pour ne faire que celui-ci) If bytModule = 1 Or bytModule = 2 Or bytModule = 3 Then If bytMoment = 1 Or bytMoment = 2 Or bytMoment = 3 Then blnPrintSpec = True End If End If     '----------------------------------------------- 'Ouvre le document word qui sert au publipostage '----------------------------------------------- 'Chemin du document word strDoc = CurrentProject.Path & "\Présences PMTIC\Liste de présence.docx" On Error Resume Next Set WordApp = GetObject(, "Word.Application") Set WordDoc = WordApp.Documents(strDoc) On Error GoTo 0   If WordDoc Is Nothing Then 'Si document fermé : l'ouvre Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open(strDoc) End If       '----------------------------------- 'Prépare et effectue le publipostage '-----------------------------------   WordApp.ActivePrinter = DLookup("Imprimante", "tblImprimanteAccess") ' strQryStart = "qry_Aujourdhui_Mod" 'Début du nom de la requête ajout   'Pour chaque module For i = 1 To 3   'Pour chaque moment de la journée For x = 1 To 3 'Si impression spécifié If blnPrintSpec Then i = bytModule x = bytMoment End If   Select Case x Case Is = 1 strQryEnd = "8" Case Is = 2 strQryEnd = "4 matin" Case Is = 3 strQryEnd = "4 après-midi" End Select   strSource = strQryStart & i & "_" & strQryEnd 'Nom de la requête complète     'Si la requête contient au moins un enregistrement : les ajoute à la table *temp puis lance le publipostage Debug.Print strSource   bytNbrsInQuery = DCount("*", strSource) 'Nbrs d'enregistrement dans la requête   If bytNbrsInQuery > 0 Then DoCmd.SetWarnings False DoCmd.RunSQL "DELETE tbl_publipostage_temp.* FROM tbl_publipostage_temp;" 'Vide la table prévue au publipostage DoCmd.SetWarnings True   'Rempli la table prévue au publipostage CurrentDb.Execute ( _ "INSERT INTO tbl_Publipostage_temp ( Jour, N°, Nom, Prénom, [Num DE], [Module], Nbrs_Heure_AmPm, Nbrs ) " & _ "SELECT tbl_Publipostage.Jour, tbl_Publipostage.N°, tbl_Publipostage.Nom, tbl_Publipostage.Prénom, tbl_Publipostage.[Num DE], " & _ "tbl_Publipostage.Module, tbl_Publipostage.Nbrs_Heure_AmPm, " & bytNbrsInQuery & " AS Nbrs " & _ "FROM tbl_Publipostage " & _ "WHERE (((tbl_Publipostage.Jour)=Date()) AND ((tbl_Publipostage.Module)=1) AND ((tbl_Publipostage.Nbrs_Heure_AmPm)='" & strQryEnd & "'));")   'Publipostage With WordDoc ' Rend Word visible important puisque la fusion se fait à l'écran. .Application.Visible = True 'ici .MailMerge.OpenDataSource _ Name:=CurrentProject.FullName, _ LinkToSource:=True, _ Connection:="TABLE tbl_publipostage_temp", _ SQLStatement:="SELECT * FROM tbl_publipostage_temp"   'Bascule les champs pour imprimer ce qu'ils représentent ou voir le contenu .MailMerge.ViewMailMergeFieldCodes = False End With 'Imprime 'Définis l'imprimante à utiliser 'WordApp.WordBasic.FilePrintSetup Printer:=strPrint, DoNotSetAsSysDefault:=1 'If i + x = 2 Or blnPrintSpec Then WordApp.ActivePrinter = DLookup("Imprimante", "tblImprimanteAccess") 'Premier passage WordDoc.PrintOut   End If   If blnPrintSpec Then Exit For 'Quitte la boucle si impression spécifiée Next x If blnPrintSpec Then Exit For 'Quitte la boucle si impression spécifiée Next i     'Ferme proprement le document WordApp.Quit False Set WordDoc = Nothing Set WordApp = Nothing   End Sub


Il bloque ici :
Langage: Visual Basic
.MailMerge.OpenDataSource _ Name:=CurrentProject.FullName, _ LinkToSource:=True, _ Connection:="TABLE tbl_publipostage_temp", _ SQLStatement:="SELECT * FROM tbl_publipostage_temp"

Juste avant il y a :
Langage: Visual Basic
' Rend Word visible important puisque la fusion se fait à l'écran. .Application.Visible = True

Word n'est pas au premier plan mais bien visible, je suppose que c'est normal.



Merci beaucoup,
LeGentils
SujetAuteurEnvoyé le

Publipostage Word lié avec BDD actuelle

Legentils10/02/14 14:14

Re: Publipostage Word lié avec BDD actuelle

Legentils13/02/14 09:35

Re: Publipostage Word lié avec BDD actuelle

Legentils18/02/14 16:43

Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter