Cita:
Iniciado por Shilfild
Se pone Fields(0) porque en la select sólo hemos cogido un valor, verdad? si hubieramos cogido dos valores, sería Fields(0) y Fields(1)?
Efectivamente

Si en el select hubieramos puesto SELECT TOP 4 campo1, campo2; campo1 corresponderia a Fields(0), campo2 a Fields(1) y asi sucesivamente.
Cita:
Iniciado por Shilfild
sentencia = "SELECT t.tipo_nombre FROM tipos t INNER JOIN destacados d ON t.id_tipo = d.destacados_tipo WHERE d.id_destacado="+rstIntranet.Fields(0).value
Nunca había visto una select así... de BD sólo he dado Oracle sería algo así cómo: Coger el tipo_nombre de tipos donde la id_tipo de tipos sea igual que destacados_tipo, en el cual id_destacado sea igual al valor recogido.
Pero no entiendo lo que hacen exactamente ese inner join y ese on... podrías explicarmelo?
Correcto. El uso de INNER JOIN (y su antagonista OUTER JOIN) es bastante común. Sirven para buscar datos en dos o mas tablas que presenten rasgos comunes (emparejar filas). Es lo mismo que las busquedas cartesianas (creo que se llaman asi):
SELECT t.tipos_nombre
FROM tipos t, destacados d
WHERE t.id_tipo = d.destacados_tipo AND d.id_destacados = 1
Pero su busqueda es mas eficiente en aquellas tablas indexadas. Busca en San Google. Hay una amplia variedad de sitios en castellano explicandolas (INNER JOIN, LEFT OUTER JOIN y RIGHT OUTER JOIN).
Cita:
Iniciado por Shilfild
Código:
rstIntranet.close();
rstBusqueda = null;
rstIntranet = null;
cone.close();
cone = null;
Aquí entiendo lo del close, pero el null, es como igualar a nada? para que estén vacias no?
Es una buena costumbre solamente

Lo unico que hago es liberar la memoria de objetos que no voy a volver a usar. Una mania de cuando los ordenadores tenian 512k :P Aun hoy dia es válido ya que el uso de la memoria es limitado.
Un saludo