Мне интересно, можно ли в Access VBA выдать список всех открытых вкладок документов в текущем экземпляре Access. У меня есть код, который может проверить каждый объект доступа и сообщить, если он загружен. Это быстро, но похоже на обратный подход. Он также не может перечислить несохраненные объекты, например, новый запрос. Кроме того, я не могу сказать, какие объекты показывают вкладку. Всплывающее окно не имеет вкладки.
Существует ли подпрограмма VBA, в которой можно перечислить все документы с вкладками?
![Access Tabbed Documents image](https://i.stack.imgur.com/I3T9n.png)
Public Sub ListAllOpenObjects()
' This will list all open Access objects. It will not list
' objects that are new that have not be saved, like Query1.
Dim aob As AccessObject
With CurrentData
' "Tables"
For Each aob In .AllTables
If aob.IsLoaded Then
Debug.Print aob.name
End If
Next aob
' "Queries"
For Each aob In .AllQueries
If aob.IsLoaded Then
Debug.Print aob.name
End If
Next aob
End With
With CurrentProject
' "Forms"
For Each aob In .AllForms
If aob.IsLoaded Then
Debug.Print aob.name
End If
Next aob
' "Reports"
For Each aob In .AllReports
If aob.IsLoaded Then
Debug.Print aob.name
End If
Next aob
' "Pages"
For Each aob In .AllDataAccessPages
If aob.IsLoaded Then
Debug.Print aob.name
End If
Next aob
' "Macros"
For Each aob In .AllMacros
If aob.IsLoaded Then
Debug.Print aob.name
End If
Next aob
' "Modules"
For Each aob In .AllModules
If aob.IsLoaded Then
Debug.Print aob.name
End If
Next aob
End With
End Sub