Cita:
Iniciado por korg1988
bueno, parece ser que la alegria nos duro poco jaja
pero me tira un erro diciendo que el objecto ya esta abierto
y la segunda duda es que
como hago para saber cuantas filas resultado me devolvio la consulta SELECT porque el RecordCount me dice siempre -1, y en el primer caso de select que puse arriba los resultados son 3 y los imprime, pero recordcount sigue valiento -1 en lugar de 3
muchas gracias
Bueno, eso nos ha ocurrido a todos en algún momento.
Primero, antes de abrir el recordset es conveniente cercionarse de que esté cerrado. Lo puedes hacer de dos formas:
If Rs.State = 1 Then Rs.Close ' la propiedad State indica si está abierto (1) o cerrado (0)
o asignando un nuevo recordset:
Set Rs = New ADODB.Recordset ' aquí automáticamente cerrará el anterior
2º Para que la propiedad RecordCount dé el número de registros del recordset, le tienes que asignar (antes de abrirlo) la propiedad CursorLocation del lado cliente.
El orden debería ser así
Código:
If Rs.State = 1 Then Rs.Close
Rs.CursorLocation = adUseClient
Rs.Open sql, con, adOpenDynamic, adLockOptimistic
Por otra parte, en la consulta si el campo "legajo" es numérico, le tienes que quitar las comillas simples sino, te va a dar error de tipos. Y es conveniente utilizar como carácter de concatenación el ampersand (&) y no el signo mas (+) que podría dar valores erróneos. El punto y coma (;) al final de la sentencia no es necesario.
Si el campo es numérico, la consulta debería quedar así:
SQL = "SELECT nombre FROM legajos WHERE legajo = " & num_legajo.Text
Un saludo.