Te pongo lo que pone el msdn:
Para los objetos Connection y Database:
Set variable = objeto.OpenRecordset (origen, tipo, opciones, bloquearmodificaciones)
Valores
Puede utilizar una de las siguientes constantes para el argumento tipo.
Constante Descripción
dbOpenTable Abre un objeto Recordset de tipo Table (sólo espacios de trabajo Microsoft Jet).
DbOpenDynamic Abre un objeto Recordset de tipo Dynamic, que es parecido a un cursor dinámico ODBC (sólo espacios de trabajo ODBCDirect)
dbOpenDynaset Abre un objeto Recordset de tipo Dynaset, que es parecido a un cursor de conjunto de claves ODBC.
dbOpenSnapshot Abre un objeto Recordset de tipo Snapshot, que es parecido a un cursor estático ODBC.
dbOpenForwardOnly Abre un objeto Recordset de tipo Forward-only.
Nota Si abre un objeto Recordset en un espacio de trabajo Microsoft Jet y no especifica un tipo, el método OpenRecordset crea una objeto Recordset de tipo Table, si es posible. Si especifica una tabla vinculada o una consulta, el método OpenRecordset crea un objeto Recordset.de tipo Dynaset. En un espacio de trabajo ODBCDirect, el valor predeterminado es dbOpenForwardOnly.
Se supone que te crea un objeto recordset de tipo table.....si es posible claro. Prueba con:
Set TBL = BDD.OpenRecordset(SQL, dbOpenTable)
y a partir de aquí, si no te funciona, prueba con todos.
Suerte.