I have 10 queries that I would like to export to an excel Spreadsheet called "Proposal_Report.xlsm" (with macros). Each query contains 3 columns of data: "Project Name", date, and amount (with data formats respective to their names).
My code (found below) executes 2 basic functions. The first is to see if the excel spreadsheet is open. There is a separate function for that which returns a boolean. Then the code starts transferring the files using Docmd.transferspreadsheet.
The code worked very smoothly just two days ago. It basically just stopped working. I get the following error on the first transferspreadsheet line:
Any help will be greatly appreciated. Thanks!
My code (found below) executes 2 basic functions. The first is to see if the excel spreadsheet is open. There is a separate function for that which returns a boolean. Then the code starts transferring the files using Docmd.transferspreadsheet.
The code worked very smoothly just two days ago. It basically just stopped working. I get the following error on the first transferspreadsheet line:
Run-time error '3420':
Object invalid or no longer set.
Any help will be greatly appreciated. Thanks!
Code:
Private Sub Create_Report_Click()
Dim FileOpen As Boolean
FileOpen = isFileOpen("k:\Database\Proposal_Report.xlsm")
If FileOpen = True Then
MsgBox ("Please close the Excel Document titled 'Proposal_Report.xlsm' and try again.")
Exit Sub
End If
DoCmd.TransferSpreadsheet acExport, 10, "Leads", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "Opportunities", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "Proposals", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "Shortlist", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "WINS", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "Inactive", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "LeadsIDIQ", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "OpportunitiesIDIQ", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "ProposalsIDIQ", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "ShortlistIDIQ", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "WINSIDIQ", "k:\Database\Proposal_Report.xlsm"
DoCmd.TransferSpreadsheet acExport, 10, "InactiveIDIQ", "k:\Database\Proposal_Report.xlsm"
Call OpenSpecific_xlFile
End Sub
Public Function isFileOpen(ByVal strDocFile As String) As Boolean
On Error GoTo ErrHandler
Dim intFree As Integer
intFree = FreeFile()
Open strDocFile For Input Lock Read As intFree
isFileOpen = False
ExitHere:
On Error Resume Next
Close #intFree
Exit Function
ErrHandler:
isFileOpen = True
Resume ExitHere
End Function