Quelqu'un peut-il aider?MS Word 2010 mailmerge en Delphi 5
J'ai hérité de certains logiciels écrits en Delphi 5 qui permettent d'utiliser des données de membre et des champs d'une base de données (fichier .ADT) à fusionner dans un mot.
Il fonctionne très bien avec toute version de Word, sauf 2010 où il ne se charge pas des documents et montre l'erreur:
« Cette méthode n'est pas disponible sur cet objet »
On m'a dit la solution consiste à remplacer les composants prédéfinis OpWord et OpDataSet par des variantes Ole. Je l'ai fait avec OpWord en utilisant:
wrdApp: = CreateOleObject ('Word.Application');
et les documents se chargent maintenant mais sans données de champ de fusion. Quelqu'un peut-il me dire comment extraire ces données de la base de données, car l'OpDataSet semble simplement pointer sur la table?
Ou quelqu'un peut-il suggérer une meilleure solution que celle que j'essaie. Je suis très nouveau à Delphes, donc je suis abit sur ma tête
Edit: (demandé Info)
Désolé j'avoir plus de détails et le code si nécessaire.
Les composants semblent appartenir à une bibliothèque appelée OfficePartner avec TOpExcel, TOpOutlook et autres.
Le .doc est sélectionné à partir d'une ListPane popup sur Form30, ouvert et avec des données de champ de fusion du tableau 4. Le tableau 1 est la base de données de membres:
{Use Table4 as we can Set a range on it}
Table4.SetRange([Table1.FieldByName('Member Id').AsString],[Table1.FieldByName('Member Id').AsString]);
{Open Word}
OpWord1.Connected := True;
{Open the Test Document}
OpWord1.OpenDocument(DocumentDirectory + '\' + Form30.ListBox1.Items[Form30.ListBox1.ItemIndex]);
{Populate the Test Document}
OpWord1.ActiveDocument.MailMerge.OfficeModel := OpDataSetModel1;
OpWord1.ActiveDocument.PopulateMailMerge;
OpWord1.ActiveDocument.ExecuteMailMerge;
J'espère que cette aide ...
Sans un peu de code et une meilleure indication de l'emplacement de la bibliothèque OpWord et de l'OpDataSet (ce ne sont certainement pas des composants standard de Delphi 5), tout le monde peut le deviner. Montrez comment vous créez les différents objets COM (pas seulement le mot application) et comment vous ouvrez le document et/ou démarrez la fusion. –
Salut merci d'avoir répondu. Excuses je ne voulais pas écrire une question si longue, mais j'ai inclus du code dans le montage ci-dessus. – notidaho