Solved

Problem when using Access code to populate a Word doc

Posted on 2008-06-11
3
228 Views
Last Modified: 2013-11-27
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
Comment
Question by:angie_angie
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 27

Expert Comment

by:MikeToole
ID: 21760847
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
 

Author Comment

by:angie_angie
ID: 21765953
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
 
LVL 27

Accepted Solution

by:
MikeToole earned 500 total points
ID: 21766643
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

Use Case: Protecting a Hybrid Cloud Infrastructure

Microsoft Azure is rapidly becoming the norm in dynamic IT environments. This document describes the challenges that organizations face when protecting data in a hybrid cloud IT environment and presents a use case to demonstrate how Acronis Backup protects all data.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

As tax season makes its return, so does the increase in cyber crime and tax refund phishing that comes with it
This article describes how to use a set of graphical playing cards to create a Draw Poker game in Excel or VB6.
Learn how to create and modify your own paragraph styles in Microsoft Word. This can be helpful when wanting to make consistently referenced styles throughout a document or template.
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question