Solved

determine if word document was opened by another document

Posted on 2014-12-16
5
104 Views
Last Modified: 2014-12-17
continuation of this question

Word 2003:
Currently I have code in document 1 to open a second document based on a template:
Documents.Add "document2.dot"

document2.dot has a Sub Document_New() routine.

I would like to run one set of code in document2.dot if document2.dot is opened by double clicking on it but run a different set of code if it is opened from document 1.  Document 1 could have any name.

for example:
Sub Document_New()
   If opened from document 1 then
       do this
   else
       do this instead
   end if
End Sub

Any way to do that?
0
Comment
Question by:thenelson
  • 3
  • 2
5 Comments
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
ID: 40503270
You could try setting a time flag in the registry and testing it to make sure that it isn't an old setting:
Sub NewDocFromDoc2()
    Dim doc As Document
    SaveSetting "MyApp", "Opening", "Time", CStr(Now)
    Set doc = Documents.Add("C:\Users\Graham Skan\Documents\Doc2.dotm")
End Sub

Open in new window

Sub Document_New()
Dim dt As Date
dt = CDate(GetSetting("MyApp", "Opening", "Time", "1/1/1900"))
    If DateDiff("s", dt, Now) < 2 Then
        MsgBox "Opened from Doc1"
    End If
End Sub

Open in new window

0
 
LVL 39

Author Comment

by:thenelson
ID: 40503965
Neat idea. I guess I could use DeleteSetting after GetSetting in the second document and then I wouldn't need to check the time.
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 40504416
Yes, that would work as well.
0
 
LVL 39

Author Comment

by:thenelson
ID: 40504631
So this is what I did and it is working fine:

Calling document:
SaveSetting "Script", "Open", "Ptname", ActiveDocument.Bookmarks("PatientsName").Range.Text
SaveSetting "Script", "Open", "DOB", Format(ActiveDocument.Bookmarks("DOB").Range.Text, "mm/dd/yyyy")

Documents.Add ("Document2.dot")

Open in new window

Document2.dot:
Dim strName As String, strDOB As String

strName = GetSetting("Script", "Open", "Ptname")
If Len(strName & "") Then
    strDOB = GetSetting("Script", "Open", "DOB")
    DeleteSetting "Script", "Open"
Else
    'the other stuff
End If

Open in new window

0
 
LVL 39

Author Closing Comment

by:thenelson
ID: 40504638
Thanks, works great.
0

Featured Post

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

Question has a verified solution.

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

When designing a form there are several BorderStyles to choose from, all of which can be classified as either 'Fixed' or 'Sizable' and I'd guess that 'Fixed Single' or one of the other fixed types is the most popular choice. I assume it's the most p…
Shortcuts in Word Just the other day I had a training for Microsoft and they wanted me to show how well the new Windows and Office behaved on a touch device, which by the way is great, but it was only then that I realized that using keyboard shortc…
This video shows where to find the word count, how to display it, and what it breaks down to in Microsoft Word.
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

770 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