My thought is to check a propery of the recordset and see if you get an
error that indicates that the recordset isn't available. For example,
On Error Resume Next
Dim blnTest As Boolean
blnTest = RecordsetName.EOF
If Err.Number <> 0 Then
' recordset isn't open or assigned == likely error 3420
End If
You also could loop through the Recordsets collection to see if the
recordset is there, for example checking for its name (which may not be
unique, as it's the table name or query name or SQL string of each open
recordset).