Max Wanadoo
max.wanadoo at gmail.com
Fri Feb 8 09:24:22 CST 2008
John,
Have you tried this yet??
Max
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo
Sent: Thursday, February 07, 2008 11:27 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Automation of word
John,
I have had a play with this but I cannot get the WithEvents part of the
Class module to kick-in.
If you go directly to the command "objword.appWord.ActiveDocument.Close"
then the WithEvents kicks in ok, but i cannot make it happen when the user
uses the BIG X on the document.
You know more about Classes than I. You may be able to get it working.
Max
HERE IS THE CLASS MODULE (clsWord)
Option Compare Database
Option Explicit
' Set reference to Microsoft Word 11.0 object library
Public WithEvents appWord As Word.Application
Private Sub appWord_DocumentBeforeClose(ByVal Doc As Word.Document, Cancel
As Boolean)
MsgBox "Please close the document using the button on the Data Form"
Cancel = True
End Sub
Private Sub Class_Initialize()
On Error Resume Next
Set appWord = New Word.Application
If Err.Number <> 0 Then
Err.Clear
End If
End Sub
Private Sub Class_Terminate()
Set appWord = Nothing
End Sub
HERE IS THE MODULE CODE WHICH USES THE CLASS (modWord) Option Compare
Database Option Explicit Private objword As New appWord Private Function
fTestWordObject()
Dim strLetter As String, strSalutation As String, strID As String, strAddr
As String
strLetter = "c:\Test.dot": strSalutation = "Dear Sirs,": strID = "123"
strAddr = "123 High St" & vbCrLf & "Derby" & vbCrLf & "UK"
' Dim objword As New appWord
objword.appWord.Documents.Add Template:=strLetter, newtemplate:=False
objword.appWord.Visible = True
With objword.appWord.ActiveDocument.Bookmarks
.Item("ID").Range.Text = strID
.Item("Date").Range.Text = CStr(Format(Date, "long date"))
.Item("Address").Range.Text = strAddr
.Item("Salutation").Range.Text = strSalutation
End With
exithere:
Set objword = Nothing
Exit Function
End Function
' assume this is the button code on the form to close the document Private
Sub ButCloseWord_Click()
Dim intResponse As Integer
intResponse = MsgBox("Do you want to close the document?", vbYesNo)
If intResponse = vbYes Then
objword.appWord.ActiveDocument.Close True
End If
End Sub
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com