Microsoft Officeを使用する大きな利点の1つは、スイート内のプログラムがすべて連携して機能することです。これは「バンプ」がないということではありません

しかし、至福の共存への道のりで。そのようなバンプの1つは、Wordの差し込み印刷のデータソースとしてAccessテーブルを使用する場合に明らかです。

ある_WordTips_の読者は、AccessテーブルフィールドからWordドキュメントにOLEグラフィックオブジェクトをマージする際に問題が発生したと書いています。彼はそれを機能させることができませんでした。鋭敏な読者に質問をしたところ、うまくいかなかったのでうまくいかなかったことがわかりました。 WordはDDEを使用してAccessと通信しているようで、DDEはDDEインターフェイスを介してOLEオブジェクト(グラフィックなど)を転送できません。 Microsoftが代わりにOLEオートメーションを使用しなかった理由は完全に不明であり、問​​題を解決できた可能性があります。

ちなみに、この問題は、データソースとして別のWord文書を使用している場合は明らかではありません。問題の原因はAccessとWordの間のDDE通信チャネルであるため、これは理にかなっています。異なるタイプの通信チャネルが使用されているため、2つのWord文書間に問題は存在しません。

解決策はあり得ないので、回避策が必要です。最も明白な回避策は、Accessを使用せず、代わりにWordドキュメントをデータソースとして使用することです。これが不可能な場合は、グラフィックのマージについて心配する必要はありませんが、Word文書の「所定の位置」に配置します。このソリューションではグラフィックのマージは必要ありませんが、ページ上のマージされたデータのすべてのインスタンスでグラフィックが同じである場合にのみ機能します。マージされるレコードごとにグラフィックを変更する必要がある場合、それは機能しません。

おそらく最も満足のいく回避策は、実際のグラフィックではなくファイル名をマージすることです。アクセステーブルにグラフィックファイル自体ではなくグラフィックファイルの名前を含めることができる場合は、Word文書のマージフィールドを設定して、実際にグラフィックを取り出して読み込むことができます。

たとえば、Accessテーブルに「Sig」という名前のフィールドがあるとします。グラフィックを表示するマージドキュメントのポイントで、次のものがあることを確認します。

{INCLUDEPICTURE "X:\\sigs\\{ MERGEFIELD Sig}" \* MERGEFORMAT}

この場合、グラフィックファイルへのパスがハードコーディングされていることに注意してください。

パスがSigフィールドの一部であると簡単に推測できます。マージして印刷すると、\ {MERGEFIELD Sig}フィールドがAccessテーブルのSigフィールドの内容(つまり、ファイル名)に置き換えられ、INCLUDEPICTUREフィールドによってWordに画像(グラフィック)が含まれます。指定されています。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(673)は、Microsoft Word 97、2000、2002、および2003に適用されます。