OVH Cloud OVH Cloud

Publipostage avec Access

6 réponses
Avatar
Céline
Bonjour à tous,

J'ai créé le code VBA suivant qui ouvre l'application Word, un modèle de
document et réalise la fusion.

Private Sub Publipostage_Click()

Dim MonAppliWord As Word.Application
Dim MaLettreType As Word.Document

' Lance Word et le modèle de lettre type RelanceFacture.dot

Set MonAppliWord = New Word.Application
Set MaLettreType =
MonAppliWord.Documents.Add("C:\Courriers\Relances\RelanceFact.dot")

'Réalise la fusion vers un nouveau document

With MaLettreType.MailMerge
(1) .OpenDataSource
Name:="C:\Courriers\Relances\GestionFactures.mdb", _
LinkToSource:=True, Connection:="Requête R_Relances"
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
If .State = wdMainAndDataSource Then .Execute
End With

' Affiche le document
MonAppliWord.Visible = True

Set MaLettreType = Nothing
Set MonAppliWord = Nothing

End Sub

Tout fonctionne bien sauf qu'à l'exécution de la fusion, Word (version 2003)
affiche une boîte de dialogue "Choisir un tableau", me demandant de choisir
parmi les requêtes et tables présentes celle qui doit servir de source. Je
pense que le problème vient de la ligne (1) mais j'ai beau la manipuler dans
tous les sens, la boîte de dialogue apparaît toujours. Pourtant, il semble
que je précise bien dans le code VBA la source à utiliser.

Auriez-vous une solution à me proposer ?

Merci d'avance,

Céline.

6 réponses

Avatar
Ilan
Bonjour,
essaie en remplacant Requête par Query


Bonjour à tous,

J'ai créé le code VBA suivant qui ouvre l'application Word, un modèle de
document et réalise la fusion.

Private Sub Publipostage_Click()

Dim MonAppliWord As Word.Application
Dim MaLettreType As Word.Document

' Lance Word et le modèle de lettre type RelanceFacture.dot

Set MonAppliWord = New Word.Application
Set MaLettreType > MonAppliWord.Documents.Add("C:CourriersRelancesRelanceFact.dot")

'Réalise la fusion vers un nouveau document

With MaLettreType.MailMerge
(1) .OpenDataSource
Name:="C:CourriersRelancesGestionFactures.mdb", _
LinkToSource:=True, Connection:="Requête R_Relances"
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
If .State = wdMainAndDataSource Then .Execute
End With

' Affiche le document
MonAppliWord.Visible = True

Set MaLettreType = Nothing
Set MonAppliWord = Nothing

End Sub

Tout fonctionne bien sauf qu'à l'exécution de la fusion, Word (version 2003)
affiche une boîte de dialogue "Choisir un tableau", me demandant de choisir
parmi les requêtes et tables présentes celle qui doit servir de source. Je
pense que le problème vient de la ligne (1) mais j'ai beau la manipuler dans
tous les sens, la boîte de dialogue apparaît toujours. Pourtant, il semble
que je précise bien dans le code VBA la source à utiliser.

Auriez-vous une solution à me proposer ?

Merci d'avance,

Céline.





Avatar
Céline
J'ai déjà essayé mais cela ne fonctionne pas mieux. J'ai toujours la fameuse
boîte de dialogue me demandant la source.
Merci.

"Ilan" a écrit dans le message de
news:
Bonjour,
essaie en remplacant Requête par Query


Bonjour à tous,

J'ai créé le code VBA suivant qui ouvre l'application Word, un modèle de
document et réalise la fusion.

Private Sub Publipostage_Click()

Dim MonAppliWord As Word.Application
Dim MaLettreType As Word.Document

' Lance Word et le modèle de lettre type RelanceFacture.dot

Set MonAppliWord = New Word.Application
Set MaLettreType > > MonAppliWord.Documents.Add("C:CourriersRelancesRelanceFact.dot")

'Réalise la fusion vers un nouveau document

With MaLettreType.MailMerge
(1) .OpenDataSource
Name:="C:CourriersRelancesGestionFactures.mdb", _
LinkToSource:=True, Connection:="Requête R_Relances"
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
If .State = wdMainAndDataSource Then .Execute
End With

' Affiche le document
MonAppliWord.Visible = True

Set MaLettreType = Nothing
Set MonAppliWord = Nothing

End Sub

Tout fonctionne bien sauf qu'à l'exécution de la fusion, Word (version
2003)


affiche une boîte de dialogue "Choisir un tableau", me demandant de
choisir


parmi les requêtes et tables présentes celle qui doit servir de source.
Je


pense que le problème vient de la ligne (1) mais j'ai beau la manipuler
dans


tous les sens, la boîte de dialogue apparaît toujours. Pourtant, il
semble


que je précise bien dans le code VBA la source à utiliser.

Auriez-vous une solution à me proposer ?

Merci d'avance,

Céline.







Avatar
Raymond [mvp]
Bonjour.

tu trouveras un exemple complet (cas n° 2) sur la page:
http://access.vba.free.fr/publipostage.htm
qui se rapproche du tien mais complet.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Céline" a écrit dans le message de news:

J'ai déjà essayé mais cela ne fonctionne pas mieux. J'ai toujours la
fameuse
boîte de dialogue me demandant la source.
Merci.


Avatar
Céline
Merci pour ton aide, mais même en modifiant mon code avec le tien, j'obtiens
toujours la boîte de dialogue "Sélectionner un tableau" me présentant toutes
les tables et requêtes de la base de données.

"Raymond [mvp]" a écrit dans le message de
news:%
Bonjour.

tu trouveras un exemple complet (cas n° 2) sur la page:
http://access.vba.free.fr/publipostage.htm
qui se rapproche du tien mais complet.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Céline" a écrit dans le message de news:

J'ai déjà essayé mais cela ne fonctionne pas mieux. J'ai toujours la
fameuse
boîte de dialogue me demandant la source.
Merci.






Avatar
Raymond [mvp]
pas facile de voir comme ça.
il n'y a pas messages d'erreur ?
tout se passe dans: OpenDataSource et DataSource.QueryString .
pas de faute de frappe ? compil bonne ?
si tu galères encore, et si tu peux, envoie moi le formulaire que je jette
un oeil. enlève XYZ. dans l'adresse.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Céline" a écrit dans le message de news:
%
Merci pour ton aide, mais même en modifiant mon code avec le tien,
j'obtiens
toujours la boîte de dialogue "Sélectionner un tableau" me présentant
toutes
les tables et requêtes de la base de données.



Avatar
Raymond [mvp]
Message envoyé par mail:

Je te renvoie ta base modifiée.
J'ai appliqué strictement ma procédure que je t'avais indiquée en changeant
les noms par tes noms réels de documents.
Il faut noter que les chemins doivents être indiqués en entier et non
relatifs, et que tous les ordres envoyés à word par access sont en anglais
( requête n'existe pas).
Les deux lettres se sont imprimées immédiatement.
Je n'ai pas tout vérifié, tu le feras toi-même.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Raymond [mvp]" a écrit dans le message de
news:
pas facile de voir comme ça.
il n'y a pas messages d'erreur ?
tout se passe dans: OpenDataSource et DataSource.QueryString .
pas de faute de frappe ? compil bonne ?
si tu galères encore, et si tu peux, envoie moi le formulaire que je jette
un oeil. enlève XYZ. dans l'adresse.
--