Thanks Steve,
Here's what I ended up with so far. It includes most Access types and also has option of including or ignoring objects that may be in design mode.
Code:
Public Function ObjectsOpen() As String
Const includeDesignMode As Boolean = True
' if False, does not include objects in design mode
Dim ob As AccessObject
Dim frm As Form
Dim i As Integer
ObjectsOpen = ""
' get all open forms
For Each frm In Forms
If SysCmd(acSysCmdGetObjectState, acForm, frm.Name) <> 0 Then
If includeDesignMode Or frm.CurrentView <> acCurViewDesign Then
ObjectsOpen = ObjectsOpen & "," & frm.Name
End If
End If
Next
' get all open reports
For Each ob In Reports
If SysCmd(acSysCmdGetObjectState, acReport, ob.Name) <> 0 Then
If includeDesignMode Or ob.CurrentView <> acCurViewDesign Then
ObjectsOpen = ObjectsOpen & "," & ob.Name
End If
End If
Next
' get all open tables
For Each ob In CurrentData.AllTables
If ob.isLoaded Then
If includeDesignMode Or ob.CurrentView <> acCurViewDesign Then
ObjectsOpen = ObjectsOpen & "," & ob.Name
End If
End If
Next
' get all open saved queries
For Each ob In CurrentData.AllQueries
If ob.isLoaded Then
If includeDesignMode Or ob.CurrentView <> acCurViewDesign Then
ObjectsOpen = ObjectsOpen & "," & ob.Name
End If
End If
Next
' get any new unsaved queries (Query1...Query10)
For i = 1 To 10
If SysCmd(acSysCmdGetObjectState, acQuery, "Query" & CStr(i)) <> 0 Then
ObjectsOpen = ObjectsOpen & "," & "Query" & i
End If
Next
If ObjectsOpen <> "" Then ObjectsOpen = Mid$(ObjectsOpen, 2)
End Function
Thanks for your help...