Automatiser un publipostage dans word a partir d'Access
Le
Yvanb
Bonjour à tous,
J'essaie d'automatiser l'impression d'étiquettes dans Word à partir de
données contenues dans une requete access. Je demande à l'utilisateur de
m'indiquer par des crochets les étiquettes qu'il veut imprimer. Par la suite
il doit seulement peser sur un bouton "imprimer" pour ouvrir word et creer un
document par publipostage qu'il ne lui reste qu'a imprimer. Je suis capable
d'ouvrir word mais incapable d'automatiser le publipostage.
Voici le corps du code:
"Dim oApp As Word.Application
Set oApp = CreateObject("Word.Application")
oApp.Visible = True
oApp.Documents.Open ("C:\Documents and Settings\Yvan Breault\My
Documents\Docs Offline\Nordic\Carte_Kanban1")
oApp.ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Documents and Settings\Yvan Breault\My Documents\Docs
Offline\Nordic\NORDICKanban070605.mdb" _
, ConfirmConversions:úlse, ReadOnly:úlse, LinkToSource:=True, _
AddToRecentFiles:úlse, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:úlse, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User IDmin;Data
Source=C:\Documents and Settings\Yvan Breault\My Documents\Docs
Offline\Nordic\NORDICKanban070605.mdb;Mode=Read;Extended Properties="""";Jet
OLEDB:System database="""";Jet OLEDB:Registry Path="""";" _
, SQLStatement:="SELECT * FROM `Req_Carte_Kanban`",
SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
oApp.ActiveDocument.MailMerge.Destination = wdSendToNewDocument
oApp.ActiveDocument.MailMerge.Execute
Set oApp = Nothing"
L'erreur est la suivante:
The database has been placed in a state that prevents it from being opened
or locked.
Je comprends ce qui se passe c.a.d que puisque je suis déja dans la base de
données de laquelle word prends ses infos, cette base de donnée n'est pas
disponible pour la lecture. Mais je ne sais pas comment contourner ce
problème.
J'utilise office 2003
A l'aide
Merci
Yvanb
J'essaie d'automatiser l'impression d'étiquettes dans Word à partir de
données contenues dans une requete access. Je demande à l'utilisateur de
m'indiquer par des crochets les étiquettes qu'il veut imprimer. Par la suite
il doit seulement peser sur un bouton "imprimer" pour ouvrir word et creer un
document par publipostage qu'il ne lui reste qu'a imprimer. Je suis capable
d'ouvrir word mais incapable d'automatiser le publipostage.
Voici le corps du code:
"Dim oApp As Word.Application
Set oApp = CreateObject("Word.Application")
oApp.Visible = True
oApp.Documents.Open ("C:\Documents and Settings\Yvan Breault\My
Documents\Docs Offline\Nordic\Carte_Kanban1")
oApp.ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Documents and Settings\Yvan Breault\My Documents\Docs
Offline\Nordic\NORDICKanban070605.mdb" _
, ConfirmConversions:úlse, ReadOnly:úlse, LinkToSource:=True, _
AddToRecentFiles:úlse, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:úlse, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User IDmin;Data
Source=C:\Documents and Settings\Yvan Breault\My Documents\Docs
Offline\Nordic\NORDICKanban070605.mdb;Mode=Read;Extended Properties="""";Jet
OLEDB:System database="""";Jet OLEDB:Registry Path="""";" _
, SQLStatement:="SELECT * FROM `Req_Carte_Kanban`",
SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
oApp.ActiveDocument.MailMerge.Destination = wdSendToNewDocument
oApp.ActiveDocument.MailMerge.Execute
Set oApp = Nothing"
L'erreur est la suivante:
The database has been placed in a state that prevents it from being opened
or locked.
Je comprends ce qui se passe c.a.d que puisque je suis déja dans la base de
données de laquelle word prends ses infos, cette base de donnée n'est pas
disponible pour la lecture. Mais je ne sais pas comment contourner ce
problème.
J'utilise office 2003
A l'aide
Merci
Yvanb

Poser une question


tu trouveras deux exemples de code qui fonctionne pour le publipostage sur
la page:
http://officesystem.access.free.fr/...ostage.htm
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Yvanb"
veux. Le code que j'ai inscrit fonctionne bien si je le fait rouler à partir
d'une base de donnée autre que celle ou est située ma source de données mais
ce n'est pas ce que je veux. Je veux piloter le publipostage dans word à
partir de la base de données qui contient la source des données et c'est là
que word me dit que cette source ne peut être ouverte parce qu'elle est dans
un état qui l'empêche d'être ouverte.
????
Yvanb
"Raymond [mvp]" wrote:
pas les ouvrir sous word mais seulement du côté access. si ce n'est pas
possible, fais le contraire, supprime tout ce qui ouvre les données dans ta
procédure access.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Yvanb"