Código:
La primera de las instrucciones se ejecuta sin problemas, pero la segunda me da un error (No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido).SELECT COUNT(*) AS numero FROM (Objetos LEFT JOIN Tipos ON Objetos.tipo = Tipos.id) LEFT JOIN Usuarios ON Objetos.id_propietario = Usuarios.id; SELECT TOP 3 * FROM (Objetos LEFT JOIN Tipos ON Objetos.tipo = Tipos.id) LEFT JOIN Usuarios ON Objetos.id_propietario = Usuarios.id ORDER BY Objetos.nombre ASC;
Los nombres de las tablas y de los campos están bien escritos (de hecho, el primer SQL lo ejecuta sin problemas), así que no se dónde puede estar el fallo. He probado con INNER JOIN en vez de LEFT JOIN... uniendo dos tablas en vez de tres... quitando el TOP 3 y el ORDER BY... poniendo SELECT Objetos.*, Tipos.*, Usuarios.*... y nada, siempre da error.
¿Alguna idea? :S
------
Media horita más tarde, por fin he dado con el p*** error. Por si a alguien más le pasa en el futuro... el problema era al leer del RecordSet.
Código:
Resulta que en el RecordSet solo se guardan como "Tabla.campo" los campos que son ambíguos. O sea, que para leer el "id" tengo que poner "Objetos.id" (porque en las otras tablas también hay campos "id"), pero para leer la descripción, tengo que poner solo "descripcion", "Objetos.descripcion" falla.var id = rs("Objetos.id").Value; var descripcion = rs("Objetos.descripcion").Value;
Qué cosas... ¬¬