[AccessD] Ac2013 running out of resources

Bill Benson bensonforums at gmail.com
Thu Jun 4 16:07:09 CDT 2015


I have the following routine. Access is running out of resources after
about the 60th item in the resordset (Rst). I can't understand why, since I
keep updating the SQL of the same querydef, on which the (very simply)
report is based, and am outputting to PDF. It happens even if I remove the
insertion logic below the reporting output logic.

Any experience and assistance would be very greatly appreciated.


Sub DoManagerReportsWest(strStartDate As String, strEndDate As String,
Optional FY)
Dim DB As dao.Database
Dim SQL As String
Dim QDF As dao.QueryDef
Dim rst As dao.Recordset
Dim SQL1 As String
Dim FLD As Folder
Dim FSO As FileSystemObject
Dim strPath As String
Dim rstTest As dao.Recordset
Dim SQLInsert As String
Dim strReportPath As String
Dim SQLDelete As String
Set DB = CurrentDb
Set FSO = New FileSystemObject
strPath = Left(DB.Name, InStrRev(DB.Name, "\") - 1)
On Error Resume Next
Set FLD = FSO.GetFolder(strPath & "\Reports\" & Format(Date, "Mmm dd"))
If FLD Is Nothing Then
    Set FLD = FSO.GetFolder(strPath & "\Reports")
    If FLD Is Nothing Then
        Set FLD = FSO.CreateFolder(strPath & "\Reports")
    End If
    On Error GoTo 0
    Set FLD = Nothing
    Set FLD = FSO.CreateFolder(strPath & "\Reports\" & Format(Date, "Mmm
dd"))
End If
If FLD Is Nothing Then
    MsgBox "Cannot output reports to disk - aborting"
    Exit Sub
End If
SQL = "SELECT DISTINCT B.ID, B.Name AS [Engagement Manager], B.[first Name]
as FirstName, B.Email FROM ([User Information List] AS B INNER JOIN [PDR
Tracking] AS A ON B.[ID] = A.[Tax Manager]) LEFT JOIN tblCityRegion ON
B.City = tblCityRegion.City WHERE tblCityRegion.Region=""West"""
Set rst = DB.OpenRecordset(SQL)
If Not rst.EOF Then
    strPath = FLD.Path

    Do
        Set QDF = DB.QueryDefs("Deliverables by Eng Manager")
        SQL1 = QDF.SQL
        SQL1 = Left(SQL1, InStr(SQL1, "WHERE ") - 1)
        SQL1 = SQL1 & " WHERE [Tax Manager] = " & rst.Fields(0) & " AND
[Deal Status] LIKE ""Signed*"" "
        SQL1 = SQL1 & " AND tblCityRegion.Region=""West"""
        SQL1 = SQL1 & " AND ([Sign Date] Between #" & strStartDate & "# AND
#" & strEndDate & "#"
        If Not IsMissing(FY) Then
            SQL1 = SQL1 & " AND NZ([Fiscal Year],'" & CStr(FY) & "') = '" &
CStr(FY) & "')"
        Else
            SQL1 = SQL1 & ")"
        End If
        SQL1 = SQL1 & " AND [PDR Tracking].[Tax Partner] Is Not Null "
        SQL1 = SQL1 & " ORDER BY [User Information List].City Asc, [PDR
Tracking].[Tax Manager] Asc;"
        Set rstTest = Nothing
        Set rstTest = DB.OpenRecordset(SQL1)
        If Not rstTest.EOF Then
            QDF.SQL = SQL1
            DB.QueryDefs.Refresh: Set QDF = Nothing
            strReportPath = strPath & "\" & Replace$(rst.Fields(1), "/", "
") & "_Deliverables By Manager (West) Signed " &
Format(CDate(strStartDate), "yyyy_mm_dd") & " to " &
Format(CDate(strEndDate), "yyyy_mm_dd") & ".pdf"

            On Error Resume Next
            Kill strReportPath
            On Error GoTo 0
            DoCmd.OutputTo acOutputReport, "rptDeliverableManager",
acFormatPDF, strReportPath

            SQLDelete = "Delete From tblBatchReports "
            SQLDelete = SQLDelete & " Where "
            SQLDelete = SQLDelete & " ReportName = 'Deliverables By Manager
(West)'"
            SQLDelete = SQLDelete & " AND SignDateBegin = #" & strStartDate
& "#"
            SQLDelete = SQLDelete & " AND SignDateEnd = #" & strEndDate &
"#"
            SQLDelete = SQLDelete & " AND Employee = '" &
rst.Fields("Engagement Manager") & "'"
            SQLDelete = SQLDelete & " AND Sent IS NULL"
            CurrentDb.Execute SQLDelete, dbFailOnError

            SQLInsert = "Insert Into TblBatchReports
(ReportName,SignDateBegin,SignDateEnd,CreateDate,ReportPath,Employee,FirstName,EmailAddress)"
            SQLInsert = SQLInsert & " Values ('Deliverables By Manager
(West)',"
            SQLInsert = SQLInsert & "#" & strStartDate & "#,"
            SQLInsert = SQLInsert & "#" & strEndDate & "#,"
            SQLInsert = SQLInsert & "#" & Format(Date, "m/d/yyyy") & "#,"
            SQLInsert = SQLInsert & "'" & strReportPath & "',"
            SQLInsert = SQLInsert & "'" & rst.Fields("Engagement Manager")
& "',"
            SQLInsert = SQLInsert & "'" & rst.Fields("FirstName") & "',"
            SQLInsert = SQLInsert & "'" & rst.Fields("Email") & "')"
            DB.Execute SQLInsert, dbFailOnError
        End If
        rst.MoveNext
    Loop Until rst.EOF
End If
End Sub


More information about the AccessD mailing list