Drew<br><br>Here is the entire module code for a generic form that seems to be what you are after. This searches the database for all reports THAT HAVE A DESCRIPTION IN THE REPORT'S "PROPERTIES" DIALOG BOX.<br><br>It is a form consisting of an unbound list box and three command buttons - Preview, Print and Close<br><br>I hope this helps<br><br>Lightning<br><br>Option Compare Database<br>Option Explicit<br>'Form = frmMainReports<br>'Form and Function logic designed by Brad Darragh and<br>'published in Access-Office-VB Advisor magazine - July 1998.<br><br>Private Sub lstReports_DblClick(Cancel As Integer)<br>'Call the Preview action from the Preview button control.<br><br> cmdPreview_Click<br> <br>End Sub<br>Private Sub cmdClose_Click()<br><br>'Close the current form and return to the Main Menu.<br> DoCmd.Close<br> <br>End Sub<br>Private Sub cmdPreview_Click()<br><br>'Display the selected report in preview mode.<br> DoCmd.Minimize<br> OutputReport acPreview<br> <br>End Sub<br>Private Sub cmdPrint_Click()<br><br>'Print the selected report.<br> OutputReport acNormal<br> <br>End Sub<br>Private Sub Form_Load()<br><br>'Populate the listbox with the available reports names.<br> Dim rc As Variant<br> rc = FillReportList(Me!lstReports)<br> <br>End Sub<br><br>Private Sub OutputReport(intView As Integer)<br><br>On Error GoTo OutputReport_err<br><br>'Decide whether to open the report in preview or print mode.<br> Select Case intView<br> Case acPreview<br> 'If no report selected, show error message.<br> If IsNull(Me!lstReports) Then<br> MsgBox "Please select a report.", vbOKOnly, "No Report Selected"<br> Else<br> DoCmd.OpenReport Me!lstReports, acPreview<br> End If<br> <br> Case acNormal<br> 'If no report selected, show error message.<br> If IsNull(Me!lstReports) Then<br> MsgBox "Please select a report.", vbOKOnly, "No Report Selected"<br> Else<br> DoCmd.OpenReport Me!lstReports, acNormal<br> End If<br><br> Case Else<br> MsgBox "Invalid case statement"<br> GoTo OutputReport_exit<br> <br> End Select<br><br>OutputReport_exit:<br>Exit Sub<br><br>OutputReport_err:<br> Select Case Err<br> Case 2501 'Cancel a docmd event<br> Resume Next<br> Case Else<br> MsgBox Err & Error<br> Resume Next<br> End Select<br><br>End Sub<br>Function FillReportList(ctlTarget As Control) As Integer<br>'Function to populate the listbox with only those reports required.<br>'Filters out any "USYS" (hidden) objects and any report objects<br>'which do not have a "Description" title field.<br><br>Dim db As Database<br>Dim con As Container<br>Dim doc As Document<br>Dim intHasDescription As Integer<br>Dim temp As Variant<br><br>On Error GoTo FillReportList_err<br><br>Set db = CurrentDb<br><br>ctlTarget.RowSource = ""<br><br>'Loop through reports container to check to see if<br>'the object is not hidden and has a description.<br>For Each doc In db.Containers!Reports.Documents<br> <br> If Mid$(doc.Name, 1, 4) <> "usys" Then<br> <br> intHasDescription = True<br> temp = doc.Properties!Description<br> <br> If intHasDescription Then<br> temp = doc.Name<br> ctlTarget.RowSource = ctlTarget.RowSource & temp & ";"<br> <br> temp = doc.Properties!Description<br> ctlTarget.RowSource = ctlTarget.RowSource & temp & ";"<br> <br> End If<br> <br> End If<br><br>Next doc<br><br><br>FillReportList_exit:<br> Exit Function<br><br>FillReportList_err:<br> Select Case Err<br> Case 3270<br> intHasDescription = False<br> Resume Next<br> Case Else<br> MsgBox Error<br> GoTo FillReportList_exit<br> End Select<br>End Function<br>