Закрыть все открытые отчёты |
|
|
Автор Daniel Pineault
|
30.04.2023 г. |
Я подумал, что представлю функцию для закрытия всех открытых отчетов в базе данных.
Код немного проще, чем в предыдущих сообщениях, поскольку мы можем использовать свойство Reports, которое возвращает список только открытых отчетов. Таким образом, нам не нужно проверять, загружен отчет или нет.
'--------------------------------------------------------------------------------------- ' Procedure : CloseAllOpenReports ' Author : Daniel Pineault, CARDA Consultants Inc. ' Website : http://www.cardaconsultants.com ' Purpose : Close all the currently open Reports in the database ' Copyright : The following is release as Attribution-ShareAlike 4.0 International ' (CC BY-SA 4.0) - https://creativecommons.org/licenses/by-sa/4.0/ ' Req'd Refs: None required ' ' Usage: ' ~~~~~~ ' ? CloseAllOpenReports ' Returns -> True => Closed all Reports successfully ' False => A problem occurred ' ' Revision History: ' Rev Date(yyyy/mm/dd) Description ' ************************************************************************************** ' 1 2015-02-17 Initial Release ' 2 2023-02-09 Update variable naming, Error handler, copyright ' 3 2023-03-13 Changed approach as For each rpt in Reports skips ' objects '--------------------------------------------------------------------------------------- Function CloseAllOpenReports() As Boolean On Error GoTo Error_Handler Dim i As Long For i = Application.Reports.Count - 1 To 0 Step -1 DoCmd.Close acReport, Reports(i).Name, acSaveNo Next i CloseAllOpenReports = True Error_Handler_Exit: On Error Resume Next Exit Function Error_Handler: MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _ "Error Source: CloseAllOpenReports" & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Description: " & Err.Description & _ Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _ , vbOKOnly + vbCritical, "An Error has Occurred!" Resume Error_Handler_Exit End Function Пример использования Затем, чтобы использовать функцию, мы просто делаем: Call CloseAllOpenReports или If CloseAllOpenReports = True Then '... End If Источник Access – VBA – Close All Open Reports
Просмотров: 1193
Ваш коментарий будет первым | | |