Non è una soluzione che mi piace ma .....
Potresti gestire l'errore 2103 che si verifica quando tenti di aprire un report inesistente.
invece delle macro usa questo codice
Function Dettagli_Dati_Accesso()
On Error GoTo Errx
If (IsNull(Screen.ActiveControl)) Then
Exit Function
End If
TempVars.Add "ApReMa", Screen.ActiveControl.Value
If (CurrentProject.IsTrusted) Then
Screen.ActiveControl = Null
End If
On Error GoTo Xxxx
DoCmd.OpenReport TempVars!ApReMa, acViewReport, "", "", acNormal
GoTo Exxit
Xxxx:
If Err.Number = 2103 Then ' Errore 2103 = Non trova il Report
DoCmd.OpenForm TempVars!ApReMa, acNormal
Else
On Error GoTo Errx
GoTo Errx
End If
Exxit:
TempVars.Remove "ApReMa"
Exit Function
Errx:
MsgBox ("Errore n° " & Err.Number & vbNewLine & Err.Description)
Resume Exxit
End Function
Una soluzione piu bella sarebbe invece:
Nella casella combinata ci metti 2 colonne
- Il nome del report/Maschera
- una "R" se Report una "M" se maschera
Poi dirotti il tuo codice con una "if" alla apertura del
--- Report se trova la "R"
--- Maschera se trova la "M"
Facci sapere
.