Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

BDD ACC2K3 FRONTALE/DORSALE et Publipostage

1 réponse
Avatar
news.tiscali.fr
Bonjour,

"J'ai posté ce message sur mpfw en pensant que problème était lié a word
mais on me recommande de poster ici."


Je finalise ma bdd et j'ai un probleme qui est apparu après le
frationnement.

Je fais du publipostage. La bdd avant fractionnement fonctionne a merveille,
no soucis...

Après frationnement, le publipostage ne fonctionne plus. Il me reclame la
source. je ne comprends pas. Les tables sont bien liées, les chemins sont
bons, tout est bon..


J'ai bien l'impression que word n'apprécie pas les tables liés car lorsque
j'édites la source de donnée il ne me trouve pas les champs de fusion.

J'ai tenté de refaire un doc de fusion et la surprise ! quand je veux lier
ma source de données, il ne voit pas les tables et les requetes... et mon
publipostage est basé sur une requete.. [Req_Societe_et_contact]


Où dois-je regarder ?

Code du publipostage ci dessous :

Sub MergeIt()
Dim vapplicationWord As Word.Application
Dim objworddocpath As String
Dim objwordMdbpath As String
objworddocpath = DLookup("[opt_chemin_doc_modele]", "tb_options",
"[opt_id]=1")
objwordMdbpath = DLookup("[opt_chemin_source_doc]", "tb_options",
"[opt_id]=1")

Set vapplicationWord = CreateObject("word.application")
vapplicationWord.Visible = False

Dim vlettretype As New Word.Document
On Error GoTo SortieErreur
vapplicationWord.Documents.Open filename:=objworddocpath & "\" &
"Publipostage.doc"

'parametres pour le publipostage
Set vlettretype = vapplicationWord.Documents("Publipostage.doc")
With vlettretype.MailMerge
.OpenDataSource Name:=objwordMdbpath & "\" & "Prestaprod.mdb",
ConfirmConversions:=False, ReadOnly:=False, Linktosource:=True,
Addtorecentfiles:=False, Connection:=objwordMdbpath & "\" &
"Prestaprod.mdb", Sqlstatement:="SELECT * FROM [Req_Societe_et_contact]
WHERE " & strFiltreallpub
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
End With

'exécution du publipostage
vlettretype.MailMerge.Execute
vapplicationWord.ActiveDocument.SaveAs (objworddocpath & "\mailling")
vlettretype.Close (wdDoNotSaveChanges)

'proposition d'apercu avant impression ou abandon du publipostage
Dim vchoix As Integer
vchoix = MsgBox("voulez-vous consulter les lettres en mode aperçu avant
impression ?", vbYesNoCancel)
With vapplicationWord
Select Case vchoix
Case vbYes
.Visible = True
.Documents("mailling.doc").PrintPreview

Case vbNo
.Documents("mailling.doc").PrintOut
.Documents("mailling.doc").Close (wdDoNotSaveChanges)

Case vbCancel
.Documents("mailling.doc").Close (wdDoNotSaveChanges)
.Quit
End Select
End With

Set vlettretype = Nothing
Set vapplicationWord = Nothing

Exit Sub

SortieErreur:
If Err.Number = 5356 Then
' pour la premiere instance de word
MsgBox "le document contenant les lettres de publipostage précédent est
ouvert" & Chr(13) & "Fermer le puis relancer le publipostage"
Else
MsgBox "Mailling non réalisé. Vérifiez les parametres du publipostage"
End If

'pour la seconde instance de word
vapplicationWord.Documents.Close (wdDoNotSaveChanges)
vapplicationWord.Quit

Set vlettretype = Nothing
Set vapplicationWord = Nothing

End Sub


Merci d'avance

Seb

1 réponse

Avatar
Sylvain Lafontaine
Probablement parce que vous essayez de faire votre publipostage contre le
frontend au lieu de le faire contre le backend. Depuis quelques années,
j'ai vu avoir des programmeurs VB6 avoir le même souci; alors j'imagine
qu'il s'agit d'un problème qui s'est développé ces dernières années.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"news.tiscali.fr" (paslamarque).fr> wrote in message
news:fna4tu$moq$
Bonjour,

"J'ai posté ce message sur mpfw en pensant que problème était lié a word
mais on me recommande de poster ici."


Je finalise ma bdd et j'ai un probleme qui est apparu après le
frationnement.

Je fais du publipostage. La bdd avant fractionnement fonctionne a
merveille,
no soucis...

Après frationnement, le publipostage ne fonctionne plus. Il me reclame la
source. je ne comprends pas. Les tables sont bien liées, les chemins sont
bons, tout est bon..


J'ai bien l'impression que word n'apprécie pas les tables liés car lorsque
j'édites la source de donnée il ne me trouve pas les champs de fusion.

J'ai tenté de refaire un doc de fusion et la surprise ! quand je veux lier
ma source de données, il ne voit pas les tables et les requetes... et mon
publipostage est basé sur une requete.. [Req_Societe_et_contact]


Où dois-je regarder ?

Code du publipostage ci dessous :

Sub MergeIt()
Dim vapplicationWord As Word.Application
Dim objworddocpath As String
Dim objwordMdbpath As String
objworddocpath = DLookup("[opt_chemin_doc_modele]", "tb_options",
"[opt_id]=1")
objwordMdbpath = DLookup("[opt_chemin_source_doc]", "tb_options",
"[opt_id]=1")

Set vapplicationWord = CreateObject("word.application")
vapplicationWord.Visible = False

Dim vlettretype As New Word.Document
On Error GoTo SortieErreur
vapplicationWord.Documents.Open filename:=objworddocpath & "" &
"Publipostage.doc"

'parametres pour le publipostage
Set vlettretype = vapplicationWord.Documents("Publipostage.doc")
With vlettretype.MailMerge
.OpenDataSource Name:=objwordMdbpath & "" & "Prestaprod.mdb",
ConfirmConversions:úlse, ReadOnly:úlse, Linktosource:=True,
Addtorecentfiles:úlse, Connection:=objwordMdbpath & "" &
"Prestaprod.mdb", Sqlstatement:="SELECT * FROM [Req_Societe_et_contact]
WHERE " & strFiltreallpub
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
End With

'exécution du publipostage
vlettretype.MailMerge.Execute
vapplicationWord.ActiveDocument.SaveAs (objworddocpath & "mailling")
vlettretype.Close (wdDoNotSaveChanges)

'proposition d'apercu avant impression ou abandon du publipostage
Dim vchoix As Integer
vchoix = MsgBox("voulez-vous consulter les lettres en mode aperçu avant
impression ?", vbYesNoCancel)
With vapplicationWord
Select Case vchoix
Case vbYes
.Visible = True
.Documents("mailling.doc").PrintPreview

Case vbNo
.Documents("mailling.doc").PrintOut
.Documents("mailling.doc").Close (wdDoNotSaveChanges)

Case vbCancel
.Documents("mailling.doc").Close (wdDoNotSaveChanges)
.Quit
End Select
End With

Set vlettretype = Nothing
Set vapplicationWord = Nothing

Exit Sub

SortieErreur:
If Err.Number = 5356 Then
' pour la premiere instance de word
MsgBox "le document contenant les lettres de publipostage précédent est
ouvert" & Chr(13) & "Fermer le puis relancer le publipostage"
Else
MsgBox "Mailling non réalisé. Vérifiez les parametres du publipostage"
End If

'pour la seconde instance de word
vapplicationWord.Documents.Close (wdDoNotSaveChanges)
vapplicationWord.Quit

Set vlettretype = Nothing
Set vapplicationWord = Nothing

End Sub


Merci d'avance

Seb