My office recently moved to Windows and Office 2000 for the workstations. We recently received new computer which were imaged completely from scratch and are identical in their setups.
We have an Access 97 operations database and have not yet converted it to Access 2000 nor are we likely to in the near future. The database produces a number of outputs by office automation through Word. One of the more important outputs is form based upon a standardized paper form. With Word 97 it was never a problem, but when invoking Word 2000 the results are unpredictable.
Upon triggering the VBA code the Word form always opens. After that one of three things can happen:
1) only the first field of the Word form is filled in before Access generates an error (see below) and locks
2) around half of the Word form is filled out before the error and lock appear
3) the whole form is filled out and everything is fine.
The error message is an Access error box "4605 This method or property is not available because the document is a protected document"
All of the machines will flip between 1 and 2 above, but at least one machine can manifest any one of the three.
The message will appear quite happily after the module has already filled in a number of fields in the supposedly protected document.
The code is based upon the Microsoft Knowledge Base article "Send the current record to Word". The actual copying of data from the Access database to the Word form fields is done with:
Cut and paste was chosen because the form must be protected so as to preserve its formatting.
I have checked the DLLs associated with the all machines and found that they all match - that is the machines that never complete the task have the same DLLs associated with MS Access as do the machines that work properly much of the time.
In debugging I put MsgBox commands liberally throughout the code and it seemed to make it more likely that one of the "good machines" was more likely to finish the task. So I thought that the code might be pumping out the cut and pastes too quickly and overwhelming the form - I am grasping at straws here. So I added delay loops into the code after each paste operation. It had little or no effect.
The maddening thing here is that some of these identical machines rarely if ever complete the task, but some work alright for one, two, or even three forms then hit the same snag.
I have seen a few other posts that share some elements of this problem but nothing that seems directly applicable to my cirmcumstance. I would appreciate any advice anyone might have to offer on this.