Rocky Smolin - Beach Access Software
bchacc at san.rr.com
Wed Aug 23 19:12:30 CDT 2006
Lambert:
I did the same:
Dim WordObj As Word.Application
Dim WordDoc As Word.Document
is inside the sub where the doc is opened.
Rocky
Heenan, Lambert wrote:
> Rocky,
>
> WordObj needs to be declared As Word.Application, but is has to be in the
> same scope as the function you are using. Notice that I actually declare the
> xlObj inside my function.
>
> Lambert (first name)
>
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin -
> Beach Access Software
> Sent: Wednesday, August 23, 2006 4:03 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] Word Window On Top
>
>
> Heenan:
>
> With WordObj declared as: Dim WordObj As Word.Application
>
> and the Function in a separate module, the statement SetForegroundWindow
> WordObj.hWnd won't compile - gives a method or data member not found error.
>
> The Word 11.0 object library is checked in the references.
>
> I tried redeclaring WordObj as Object but that didn't work either.
>
> TIA
>
> Rocky
>
>
> Heenan, Lambert wrote:
>
>> Well here is how I do the same thing with Access opening Excel. It is
>> all dependant on getting the handle of the Excel window (or Word
>> window in your case)...
>>
>> Public Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd
>> As
>> Long) As Long
>>
>> Sub ViewInExcel(strRecordSource As String, Optional bFormatColumns As
>> Boolean = True)
>> '---------------------------------------------------------------------
>> ------
>> ------------
>> ' Procedure : ViewInExcel
>> '
>> ' Purpose : Displays a recordset (Table or query) in an Excel worksheet,
>> but does
>> ' : not save the Excel file. The user can choose to save the
>>
> file
>
>> if needed.
>>
>>
> '---------------------------------------------------------------------------
>
>> ------------
>> '
>> Dim objXL As excel.Application
>> Dim objSheet As excel.Worksheet
>> Dim objWB As excel.Workbook
>> Dim rs As Object
>> Dim oRng As excel.Range
>> Dim nCols As Long, n As Long
>>
>> Set rs = CurrentDb.OpenRecordset(strRecordSource)
>> nCols = rs.Fields.Count
>> Set objXL = CreateObject("Excel.Application")
>> objXL.SheetsInNewWorkbook = 1
>> Set objWB = objXL.Workbooks.Add
>> Dim f As Field
>> n = 0
>> ' CopyFromRecordset does not bring the column headings with it.
>> ' So here we add them manually.
>> For Each f In rs.Fields
>> n = n + 1
>> objWB.Sheets("Sheet1").Cells(1, n) = f.Name
>> Next f
>> ' and now drop the data into row 2
>> objWB.Sheets("Sheet1").Cells(2, 1).CopyFromRecordset rs
>> If bFormatColumns Then
>> Set oRng = objWB.Sheets("Sheet1").Range(CStr(ExcelColumn(1)) &
>> "1:" & CStr(ExcelColumn(nCols)) & "1")
>> oRng.EntireColumn.AutoFit
>> oRng.Interior.Color = vbYellow
>> oRng.Borders.Color = vbBlack
>> Set oRng = Nothing
>> End If
>> rs.Close
>> Set rs = Nothing
>> objXL.Visible = True
>> SetForegroundWindow objXL.hWnd ' here's the line that brings the
>> window to the foreground. End Sub
>>
>> HTH
>>
>> Lambert
>> -----Original Message-----
>> From: accessd-bounces at databaseadvisors.com
>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky
>> Smolin - Beach Access Software
>> Sent: Wednesday, August 23, 2006 1:33 PM
>> To: Access Developers discussion and problem solving
>> Subject: [AccessD] Word Window On Top
>>
>>
>> Dear List:
>>
>> Using automation I open a word doc, but the access app is still on
>> top.
>> Word is in the tray. Click it and the doc is there and open. Q: how
>> can I give the word doc window the focus after I open it?
>>
>> MTIA
>>
>> Rocky
>>
>>
>>
>
>
--
Rocky Smolin
Beach Access Software
858-259-4334
www.e-z-mrp.com