Say I have some VBA code in Access that uses excel for whatever reason. Sometimes I have trouble closing the file properly.
The code (I think) should look somewhat like this:
WBO.Close savechanges:=True Set WBO = Nothing XLO.Application.Quit Set XLO = Nothing rs.Close db.Close
Here XLO is an excel object, WBO is a workbook object, rs is a DAO recordset and db is a DAO database. Even though the physical excel file closes there’s still an “EXCEL.EXE” process occurring on my system, which stops me from running my program twice in a row. Does anyone know why this happens?
I took out the
rs.Close and then
db.Close lines since I decided to manually export the data I was using from Access to Excel (there’s too many rows and columns to copy each cell over efficiently). However, this didn’t change the problem at hand.
There isn’t an actual
Application is the top-level object but that
Application object has an
Application property which actually points to “the creator of the specified object”. So trying to quit
XLO.Application won’t do what you think it should.
XLO is of type
Excel.Application then try just
XLO.Quit instead of
Why not just:
application.displayalerts = false WBO.save (or saveas whatever it matters) WBO.close set WBO = nothing
I don’t see a memory problem with that…
Refer to this answer.
It worked for me.
Dim sKill As String sKill = "TASKKILL /F /IM msaccess.exe" Shell sKill, vbHide
If that works, mark the answer in the link with a ^, not mine.