#1 and #2 conflict. If the report name does not exist, and #1 handles that, then #2 is never given a chance.
This will take care of #1.
Code:
Public Sub ReportName() 'Set variable report name, box prompt to open report by name manually
On Error GoTo ReportName_Error
Dim Message, Title, Default, ReportName
Message = "Enter the Report Name from the list" ' Set prompt.
Title = "Report Name?" ' Set title.
Default = "rpt" ' Set default.
' Display message, title, ,default value and box position x,y.
ReportName = InputBox(Message, Title, Default, 11500, 3000)
DoCmd.OpenReport ReportName, acViewReport
ReportName_EXIT:
Exit Sub
ReportName_Error:
Select Case Err
Case 2103
MsgBox "No such report exists"
Case Else
MsgBox Err.Number & ", " & Err.Description & " in Procedure ReportName"
End Select
Resume ReportName_EXIT
End Sub