"Encapsular" errores y utilizarlos es muy facil, se requiere de que coloques una linea de codigo despues del public o private de un procedimiento y antes del end sub y unas sentencias para hacer algo con el error, en tu caso creo que quieres cerrar el programa el codigo es el siguiente:
Private Sub Un_procedimiento()
On Error GoTo error ' linea para localizar error y pasarlo a la etiqueta "error"
''''procedimiento donde talvez exista el error
busfech = CVDate(DateClicked)
If IsDate(busfech) = False Then
Set rs3 = dbase.OpenRecordset("select * from Pos1 ORDER BY Prefijo_pos1, Hora_pos1")
lv1_carga
Else
Set rs3 = dbase.OpenRecordset("select * from Pos1" & _
" where Fecha_pos1 like '*" & busfech & "*' ORDER BY Fecha_pos1, Hora_pos1")
If rs3.RecordCount = 0 Then
MsgBox "Fecha no Hallada!", , "Busqueda por Fecha"
Set rs3 = dbase.OpenRecordset("select * from Pos1 ORDER BY Fecha_pos1, Hora_pos1")
lv1_carga
Else
lv1_carga
End If
End If
MonthView1.Visible = False
Exit Sub ''''salir del procedimiento para encapsular por asi decirlo
error: 'etiqueta a donde nos ha enviado el goto
If Err = 13 Then ' un if que nos dice cual seria el error, puedes poner el ' numero del error que ya identificaste
MsgBox "Datos no validos como Fecha!", , "Error generado por usuario.."
cmdbusfecha_Click
end ''cerrar el programa
Else
Resume Next 'ignorar el errro
End If
End Sub
chao espero te sirva esto para que te guies,.... AHORA ALGUIEN QUIERE POR FAVOR RESPONDER MI PREGUNTA SI SON TAN AMABLES ?, ES SOBRE EL DATAREPORT...