[AccessD] Problem with Access VBA makes Excel Orphan

Stuart McLachlan stuart at lexacorp.com.pg
Fri Nov 13 17:22:51 CST 2009


.HPageBreaks.Add Before:=Cells(lRow + 1, 6)

There's your unqualified reference. Change it to:
.HPageBreaks.Add Before:=ExcelwBook.sheets(sSheet).Cells(lRow + 1, 6).


-- 
Stuart


On 13 Nov 2009 at 15:38, Edward Zuris wrote:

> 
>  Thanks Heenan Lambert,
> 
>  I'll see if I can come up with something
>  a smaller that demonstrates the problem.
> 
>  I was hopeing there was a command that forces 
>  Excel to finish-up whatever and exit cleanly
>  regardless.
> 
>  Killing the Excel orphan isn't an option because
>  the Access 2000 VBA still thinks it is out there
>  causing other downstream Excel jobs to fail.
> 
>  The problem started when I started forcing
>  Page Control Breaks whenever the Department
>  column had a change.
> 
>  = = = = = = = = = = = = = = = = = = = = = = =
> 
>     If sNew <> sOld Then
>        sTmp5 = ""
>        sTmp5 = CStr(lRow + 1) & ":" & CStr(lRow + 1)
>        ExcelwBook.sheets(sSheet).Rows(sTmp5).Insert Shift:=-4121
>        For lColumn = 1 To 6
>            ExcelwBook.sheets(sSheet).Cells(lRow + 1,
> lColumn).Interior.ColorIndex = 10
>        Next lColumn
> 
>        sOld = ""
>        sOld = sNew
> 
>         If lRow > 1 Then
>            '                        * First Method *
>            'On Error Resume Next
>            'ExcelwBook.sheets(sSheet).Cells(lRow + 1, 6).Select
>            ' With ExcelwBook.Application.ActiveWindow
>            '    .ScrollColumn = 2
>            '    .SelectedSheets.HPageBreaks.Add Before:=ActiveCell
>            'End With
>            'On Error GoTo 0
> 
>             ' *****************************************************
>             ' Force Page Control Breaks
>             '
>             With ExcelwBook.sheets(sSheet)
>                 .HPageBreaks.Add Before:=Cells(lRow + 1, 6)
>             End With
> 
>         End If
> 
>     End If
> 
>  = = = = = = = = = = = = = = = = = = = = = = =
>  = = = = = = = = = = = = = = = = = = = = = = =
> 
> 
> -----Original Message-----
> From: Heenan, Lambert [mailto:Lambert.Heenan at chartisinsurance.com] 
> Sent: Friday, November 13, 2009 2:35 PM
> To: 'Access Developers discussion and problem solving'
> Cc: 'Edward Zuris'
> Subject: RE: [AccessD] Problem with Access VBA makes Excel Orphan
> 
> 
> Edward,
> 
> I just ran your example code in this form...
> 
> 
> Sub Excel_test(zPath As String, zName As String)
> Dim ExcelApp            As Excel.Application
>     Dim ExcelwBook          As Excel.Workbook
> 
>     Set ExcelApp = New Excel.Application
>     Set ExcelwBook = ExcelApp.Workbooks.Add
>     ExcelApp.DisplayAlerts = False
>     ExcelwBook.SaveAs zPath & zName
>     ExcelApp.DisplayAlerts = True
>  
>     ExcelwBook.Save
>     ExcelwBook.Close False
>     ExcelApp.Quit
>  
>     Set ExcelwBook = Nothing
>     Set ExcelApp = Nothing
>  
> 
> End Sub
> 
> ... And it does NOT leave an Excel orphan around. I can only conclude
> from that that your problem lies with the code between  the lines.
> Somewhere you are probably setting a reference to some Excel object that
> is not subsequently released.
> 
> Lambert
> 
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Edward Zuris
> Sent: Friday, November 13, 2009 2:58 PM
> To: accessd at databaseadvisors.com
> Subject: [AccessD] Problem with Access VBA makes Excel Orphan
> 
> 
>  Using the below code from an Access 2000 VBA  application, once running
> these commands there  is still an Excel job running in task manager.
>  
>  The Excel orphan makes it impossible to run the  VBA application
> recessively.
>  
>  One clue is Excel will finally shut down if  the Access 2000 VBA
> application / database  is shutdown.
>  
>  Any way to tell Excel to just shut down ?
>  
>  Is there a work-a-round for this problem ?
>  
>  Thanks.
>  
>  Sincerely,
>  Edward Zuris.
> 
>  -
>  
>  =======================================================
>  ====== .Quit code not closing Excel Application ======
>  
>     Dim ExcelApp            As Excel.Application
>     Dim ExcelwBook          As Excel.Workbook
>     . . .
>     Set ExcelApp = New Excel.Application
>     Set ExcelwBook = ExcelApp.Workbooks.Add
>     . . .
>     ExcelApp.DisplayAlerts = False
>     ExcelwBook.SaveAs zPath & zName
>     ExcelApp.DisplayAlerts = True
>  
>     ExcelwBook.Save
>     ExcelwBook.Close False
>     ExcelApp.Quit
>  
>     Set ExcelwBook = Nothing
>     Set ExcelApp = Nothing
>  
>  =======================================================
>  =======================================================
>  -
>  
>  Yet a simpler VBA applications doesn't have  this issue using the
> following.
>  
>  This also fails using the complex VBA program.
>  
>  Any ideas ?
>  
>  =======================================================
>  = .Quit code Working closing simple Excel Application =
>  
>     ExcelwBook.Application.DisplayAlerts = False
>     ExcelwBook.SaveAs zPath & zName
>     ExcelwBook.Application.DisplayAlerts = True
>  
>     ExcelwBook.Application.Quit
>  
>     ExcelApp.Quit
>     
>     Set ExcelwBook = Nothing
>     Set ExcelApp = Nothing
>  
>  
>  =======================================================
>  =======================================================
>  
>  
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com





More information about the AccessD mailing list