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

Explication code

1 réponse
Avatar
Paul
Bonjour,

Qui peut me mettre sur la voie ?

J'ai copié le code suivant sur le net.

Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim objWord As Word.Document
Set objWord = GetObject("C:\Doc1.doc", "Word.Document")
' Rend Word visible important puisque la fusion se fait à l'écran.
objWord.Application.Visible = True
' Sélectionne .la base de données comme source de données pour la fusion
objWord.MailMerge.OpenDataSource _
Name:="C:\Clients test.mdb", _
LinkToSource:=True, _
Connection:="TABLE ClientsB", _
SQLStatement:="SELECT * FROM [ClientsB] WHERE [ID] = " & Me.[ID]
' Exécution de la fusion.
objWord.MailMerge.Execute
Set wordobj = Nothing
'Set objWord = Nothing
End Sub

Le but étant de récupérer les informations du client que je suis en train de
visualiser dans mon formulaire.
Ces infos sont fusionnées avec un document Word.

Glogalement celà fonctionne au détail près que je ne peux pas lancer ma
commande 2 fois de suite.
Le programme bloque et me signale une erreur '287'

Merci de votre compréhension.

Pad

1 réponse

Avatar
Eric
Bonjour,

Je suis pas spécialiste mais l'erreur doit être liée au fait que le
document principal de fusion est déjà ouvert quand tu relances une 2ème
fois la fusion.

En corrigeant ainsi je n'ai plus d'erreur.

Private Sub Commande101_Click()
'... le début de ton code
objWord.MailMerge.Execute
'---------------------------------------------
' Verif du type de document : Si doc ppal de fusion, on le ferme
' ce qui permet de garder le résulat de la fusion (lettres-type1)
If objWord.MailMerge.MainDocumentType <> wdNotAMergeDocument Then
objWord.Close
End If
'---------------------------------------------
'Set wordobj = Nothing ' erreur sur la variable-objet
Set objWord = Nothing
End Sub


PS : le temps de traitement me parait un peu long :-(

Bonjour,

Qui peut me mettre sur la voie ?

J'ai copié le code suivant sur le net.

Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim objWord As Word.Document
Set objWord = GetObject("C:Doc1.doc", "Word.Document")
' Rend Word visible important puisque la fusion se fait à l'écran.
objWord.Application.Visible = True
' Sélectionne .la base de données comme source de données pour la fusion
objWord.MailMerge.OpenDataSource _
Name:="C:Clients test.mdb", _
LinkToSource:=True, _
Connection:="TABLE ClientsB", _
SQLStatement:="SELECT * FROM [ClientsB] WHERE [ID] = " & Me.[ID]
' Exécution de la fusion.
objWord.MailMerge.Execute
Set wordobj = Nothing
'Set objWord = Nothing
End Sub

Le but étant de récupérer les informations du client que je suis en train de
visualiser dans mon formulaire.
Ces infos sont fusionnées avec un document Word.

Glogalement celà fonctionne au détail près que je ne peux pas lancer ma
commande 2 fois de suite.
Le programme bloque et me signale une erreur '287'

Merci de votre compréhension.

Pad




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr