What happens if you add a Recordset close:
For Each fld In tbl.Fields
If fld.Type = 10 Then 'type 10 is text, skip for number search
strFld = fld.Name
strSQL = "SELECT * FROM " & strTbl & " WHERE " & _
strFld & " = '" & strSearch & "';"
rs = db.OpenRecordset(strSQL)
If rs.RecordCount > 0 Then 'if strSearch is found
found = True
Console.WriteLine("table name: " & strTbl)
End If
'Clean up open Recordsets as you go...
rs.Close
End If
Next