Abrir recordset ADO con una sentencia select con más de un campo

Hola.

Tengo un recordset que he de abrir filtrado, para lo cual lo abro con la siguiente sentencia:

filtro = "SELECT descriptores.Id

FROM glosario INNER JOIN(descriptores INNER JOIN puente

ON glosario.Id=puente.Id_descriptor)

ON glosario.Id=puente.Id_glosario

WHERE puente.Id_glosario = " & b &";"

En realidad se trata de dos tablas (descriptores y glosario) con una relación de muchos a muchos. Para lo cual hice una tabla intermedia (puente) donde guardo los Id de cada uno.

luego en un combo recojo el Id de la tabla glosario en la variable b para que me liste en un Listbox los descrptores de que consta ese término del glosario. Para ello abro un Recorset: Dim rs as recordset

Set rs = CreateObject("ADODB.Recordset")

With rs

.Source = filtro

.ActiveConnection = cn 'Variable string antes definida (OLEDB......) que

.Open 'funciona

End With

. Todos son campos numéricos (Id's) y funciona. En el Listbox me coloca los id de descriptores que tiene ese término de glosario Pero no quiero para el usuario los Id quiero los descriptores mismos (string) de esos Id. Pero cuando en la sentencia select pongo SELECT descriptores.Id, descriptores.descriptor FROM .......

Me arroja el siguiente error:

"Error en el método 'Open' de objeto '_Recordset'


He abierto el Recordset de otras formas, fijando adOpenStatic, adLockOptimistic, adCommandtable:

rs.Open filtro

rs.Open filtro, cn, adOpenStatic, adLockOptimistic, adCommandTable

Pero con el mismo resultado

En fin he agotado mi imaginación y no sé qué es lo que puede fallar.

¿Alguien podría echarme un cable?

Muchas gracias

Añade tu respuesta

Haz clic para o