[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 238
  • Last Modified:

Problem when using Access code to populate a Word doc

I'm using Access code to populate a Word report.
I have a recordset to get the values from db tables, and replace or insert at bookmarks of Word. Then save the doc and close the recordset.
Everytime there is a msg of MS Word came out: This file is in use by another application or user. (C:\Documents and Settings\...\Normal.dot).
If I click on "OK" and try to close it, another msg: Changes have been made that affect the global template, Normal. Do you want to save those changes?
What do they mean? Why I got these msg?
'These are the codes I'm using
    Option Explicit
    Public appWord As Word.Application
    Public doc2 As Word.Document
 
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Set appWord = New Word.Application
    cn.Open CurrentProject.Connection.ConnectionString
    rs.Open...
 
    doc2.SaveAs...
    appWord.Visible = True
    appWord.Quit
    rs.Close
    cn.Close

Open in new window

0
angie_angie
Asked:
angie_angie
  • 2
1 Solution
 
MikeTooleCommented:
I presume that you want to open a new document based on a template or another existing document? I don't see that step in your code.
It should be set up something like the sample shown in the snippet.
    Dim appWord As New Word.Application
    Dim doc As Word.Document
    Dim bkm As Word.Bookmark
    Set doc = appWord.Documents.Add(cPath & "BookmarkTest.dot")
    ...   ' do your work with the bookmarks here
    On Error Resume Next
    Kill cPath & "BookmarkTest.doc"
    On Error GoTo 0
    doc.SaveAs cPath & "BookmarkTest.doc", , , , False
    doc.Close
    appWord.Quit

Open in new window

0
 
angie_angieAuthor Commented:
MikeToole,
Yes you're right, and I do have the similar code except I don't have "doc.Close" since the user wants to view the report immediately after generated.
But I always have the problem I mentioned. I don't know why there is a global template called "Normal".
Even I delete it, it will come out again next time.
0
 
MikeTooleCommented:
There is always a global template called Normal, it's where Word gets the defaults for a new document when you don't specify another template. If you delete it, Word will recreate it with installation defaults next time it runs.
If you're making Word visible so that the user can see it, you shouldn't use appWord.Quit - that will close the instance of Word that has the document open and the user will have nothing to see!
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now