Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Code for Opening a word document

Status
Not open for further replies.

merk

IS-IT--Management
Nov 30, 2001
32
US
Could someone provide me with code for opening an MS Word document. I would like to place a button on a form that enables me to open word docs (I would prefer it if I could somehow link the documents to the form).

This request is probably easy for you pros but I do not know much code yet.


Thanks.
 
My project displays a list box of available word docs for the user to pick from. Once they have selected one its path gets passed to this function:
Code:
Public Function MergeIt(doc As String)
    Dim objWord As Word.Document
    Dim duplicate As Access.Application
    Dim Query1 As String
    Dim Query2 As String
    Dim ID As Long
    Dim UN As String
    
    UN = Environ("username")
    ID = [Forms]![ApplicantInformation_form].[sys_PersonInformation_ID]
    Query1 = *SQL STATEMENT (max 255 char)
    Query2 = *SQL STATEMENT2 (max 255 char)

    doc = "J:\BEA\AppLetters\" & doc
    Set objWord = GetObject(doc)
    Set duplicate = GetObject("J:\BEA\BEA_AppLetters.mdb")
    
    objWord.Application.Visible = True
    objWord.MailMerge.OpenDataSource name:="J:\BEA\BEA_AppLetters.mdb", SQLStatement:=Query1, SQLStatement1:=Query2, LinkToSource:=True
    objWord.MailMerge.Execute
    duplicate.Quit
End Function
It is important to know that the code automatically wants to open up a second instance of your access application to get the data. This slows the process down significantly. To solve this I created a second .mdb file on a shared directory which only contains a view of the data I need. I then close this file after word gets the data. Believe it or not this is the easiest way I've found to do this. Hope this helps, let me know if you have any questions.
 
I use a similar process to Orion45's, but the second .mdb does this: when it opens, a form automatically opens that says "this form will close in a few seconds"; the form has the following code in the "on timer" event:

Private Sub Form_Timer()
On Error Resume Next
' IDLEMINUTES determines how much idle time to wait for before running the IdleTimeDetected subroutine
Const IDLEMINUTES = 0.1
Static PrevControlName As String
Static PrevFormName As String
Static ExpiredTime
Dim ActiveFormName As String
Dim ActiveControlName As String
Dim ExpiredMinutes

' Get the active form and control name.
ActiveFormName = Screen.ActiveForm.Name
If Err Then
ActiveFormName = "No Active Form"
Err = 0
End If

ActiveControlName = Screen.ActiveControl.Name
If Err Then
ActiveControlName = "No Active Control"
Err = 0
End If

' Record the current active names and reset ExpiredTime if:
' 1. They have not been recorded yet (code is running for the first time).
' 2. The previous names are different than the current ones (the user has done something different during the timer interval).
If (PrevControlName = &quot;&quot;) Or (PrevFormName = &quot;&quot;) Or (ActiveFormName <> PrevFormName) Or (ActiveControlName <> PrevControlName) Then
PrevControlName = ActiveControlName
PrevFormName = ActiveFormName
ExpiredTime = 0
Else
' ... otherwise the user was idle during the time interval, so increment the total expired time.
ExpiredTime = ExpiredTime + Me.TimerInterval
End If

' Does the total expired time exceed the IDLEMINUTES?
ExpiredMinutes = (ExpiredTime / 1000) / 60
If ExpiredMinutes >= IDLEMINUTES Then

'.... if so, then reset the expired time to zero ...
ExpiredTime = 0
'.... and quit the application
Application.Quit acQuitSaveAll
End If
End Sub


The form, and the .mdb itself, only stay open for a few seconds, which is long enough for MS Word to get the data, then it closes. The user never sees the second .mdb. I don't know who to credit for the above code - I didn't write it.

Hope this helps.

Jay
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top