In the below code I am receiving an "object variable or With block variable not set" error at this ErrHandling line:
The code body works fine. Only the error handling is broken. Any suggestions? Thank you.
Full Code:
Set qryCheckTable = .CreateQueryDef("", CheckTableSQL)
The code body works fine. Only the error handling is broken. Any suggestions? Thank you.
Full Code:
Dim db As DAO.Database
Dim DeleteBlanksSQL As String
Dim DeleteDuplicatesSQL As String
Dim AppendSQL As String
Dim DeleteImportSQL As String
Dim DeleteBlanks As DAO.QueryDef
Dim DeleteDuplicates As DAO.QueryDef
Dim Append As DAO.QueryDef
Dim DeleteImport As DAO.QueryDef
Set db = CurrentDb()
DeleteBlanksSQL = "DELETE * FROM tblImport WHERE IsNull([Project ID]);"
DeleteDuplicatesSQL = "DELETE tblForecast.fldPrimary FROM tblForecast" & _
" WHERE [fldPrimary] IN (SELECT fldPrimary FROM qryJoinDuplicates);"
AppendSQL = "INSERT INTO tblForecast" & _
" SELECT [Project ID] AS fldID, [Package ID] AS fldPackageID," & _
" [Title of Change] AS fldTitle, [Change Description] AS fldDescription," & _
" [Status] AS fldStatus, [Contract Change Type] AS fldContractType," & _
" [DCF Change Type] AS fldDCFType, [Scope Transfer] AS fldTransfer," & _
" [PCR No] AS fldPCR, [DCF Mod No] AS fldDCFModNo, [Delay Related] AS fldDelay," & _
" [Value] AS fldValue, [Worst] AS fldWorst, [Most] AS fldMost, [Best] AS fldBest," & _
" [Assumption] AS fldAssumption, [Trend No] AS fldTrendNo, [Cont Usage No] AS fldContNo" & _
" FROM tblImport;"
DeleteImportSQL = "DELETE * FROM tblImport;"
Set DeleteBlanks = db.CreateQueryDef("", DeleteBlanksSQL)
DeleteBlanks.Execute
DeleteBlanks.Close
Set DeleteDuplicates = db.CreateQueryDef("", DeleteDuplicatesSQL)
DeleteDuplicates.Execute
DeleteDuplicates.Close
Set Append = db.CreateQueryDef("", AppendSQL)
Append.Execute
Append.Close
Set DeleteImport = db.CreateQueryDef("", DeleteImportSQL)
DeleteImport.Execute
DeleteImport.Close
db.Close
Exit_ErrHandler:
Exit Sub
ErrHandler:
With db
Dim DeleteImportError As DAO.QueryDef
Dim qryCheckTable As DAO.QueryDef
Dim rstCheckTable As DAO.Recordset
Dim DeleteImportErrorSQL As String
Dim CheckTableSQL
DeleteImportErrorSQL = "DELETE * FROM tblImport;"
CheckTableSQL = "SELECT * FROM tblImport;"
Set qryCheckTable = .CreateQueryDef("", CheckTableSQL)
Set rstCheckTable = qryCheckTable.OpenRecordset
If rstCheckTable.RecordCount > 0 Then
Set DeleteImportError = .CreateQueryDef("", DeleteImportErrorSQL)
DeleteImportError.Execute
DeleteImportError.Close
Else
MsgBox (" An Error Occurred." & vbCrLf & _
" Research error than re-import." & vbCrLf & _
"Ensure package files are not duplicated.")
End If
.Close
End With
Resume Exit_ErrHandler
End Sub