Gustav Brock
Gustav at cactus.dk
Fri Feb 11 09:47:14 CST 2005
Hi Bobby To me two seconds sounds pretty fine for this; automation isn't that fast. However, if it is a simple document, you can write the rtf code directly to a text file which is blazingly fast. I created a routine for writing a catalogue file of 2.500 pages. It needs less than 45 seconds to write these and the file is only about 8 MB due to the very compact rtf code. /gustav >>> bheid at appdevgrp.com 11-02-2005 16:13:18 >>> Hi all, I am trying out different ways to let the users design a document and using bookmarks and flag fields have access add data to it. In my particular situation, there are about 10 fields that I am using bookmarks for. If this were all, then I'd just automate a mail merge and be done with it. The problem is, there are two tables that I need that can have from zero to many items in it. What I have done is this: 1) Start Word (hidden, no updates) 2) Create two blank documents, one is a temp document, the other is the output document. 3) For each record in the master recordset: a) Clear the temp document b) Copy the master document to the temp document c) Change all of the bookmarks to their correct value with code like: .Bookmarks("Period").Range.Text = Format$(Nz(rs![Period], ""), "MMM, yyyy") d) Search for my first table place holder, "[[WCTable]]". If it is found, I select it and replace it with "". e) Insert a table with the proper number of rows (which is 3 for header and total rows plus the number of detail rows for this contract). f) Merge the 1st row to one cell and insert the title. g) Insert the column headers into the 2nd row. h) Insert the "Total" text on the last row. i) Loop through a recordset and insert text from the current record into the correct row in the table. j) Perform steps d-i except that we will be working with the second table. k) Copy the temp document, l) Append the copied temp document to the end of the output document. 4) Save the output document. 5) Close word without saving any changes. It all works ok. The problem is that it takes approximately 2 seconds per document. Does anyone have any ideas on how to speed this up? I have a feeling it is how I am processing the tables. I have read that inserting all the text for the tables as text into the document then converting text to a table is much faster, but I'm not quite sure how to do that with what I have to deal with. Another method that I read about was to iterate through the cells collection and insert the text that way. Anyone know what the best way to do this is? Sorry about the long post. Thanks, Bobby