---Soumis par Dev Ashish---
Mailmerge démarre une nouvelle instance d'Access.
(Q) Quand j'utilise Mailmerge de Microsoft Word avec une base de donnée Access, une nouvelle instance d'Access démarre. Comment éviter cela?
(A) Word Mailmerge utilise le DDE pour repérer une fenêtre dont le titre est "Microsoft Access". En Access 95 et 97, si vous utilisez Application Title (menu Tools/Startup), le titre fourni remplace "Microsoft Access" et le lien DDE est incapable de trouver l'application cherchée, Word démarre donc une nouvelle instance d'Access et essaie d'ouvrir la base de données.
On peut controuner le problème comme suit:
a - Enlever le titre local de l'application pour la base de données.
b - Utiliser ODBC pour passer-outre Access et accéder ainsi aux tables de
données.
Dans la plupart des cas, changer temporairement le titre de l'application pour "Microsoft Access" fonctionne fort bien. Essayer cette fonction avant d'adopter la stratégie impliquant ODBC.
'************* Module Start ************* ' Option Compare Database Option Explicit Dim mstAppTitle As String Function fSetAccessCaption() As Boolean Dim dbs As Database Const cPropNotExit = 3270 'Conserve le titre actuel Set dbs = CurrentDb On Error Resume Next mstAppTitle = dbs.Properties("AppTitle") 'si la propriété n'existe pas... If Err = cPropNotExit Then fSetAccessCaption = False Else dbs.Properties("AppTitle") = "Microsoft Access" RefreshTitleBar fSetAccessCaption = True End If End Function Sub sRestoreTitle() CurrentDb.Properties("AppTitle") = mstAppTitle RefreshTitleBar End Sub Function fMailMerge() Dim objWord As Word.Document Dim stMergeDoc As String If fSetAccessCaption Then On Error Resume Next stMergeDoc = "J:\install\Access mdbs\mailmerge.doc" Set objWord = GetObject(stMergeDoc, "Word.Document") objWord.Application.Visible = True objWord.MailMerge.OpenDataSource _ Name:=CurrentDb.Name, _ LinkToSource:=True, _ Connection:="TABLE Customers", _ SQLStatement:="Select * from [Customers]" objWord.MailMerge.Execute 'ramène le titre désiré Call sRestoreTitle End If End Function '************* Module End *************