sobre BOF Y EOF

isela
09 de Diciembre del 2005
SI ALGUIEN ME DA UNOS TIPSS PARA SOLUCIONAR UN ERROR YA QUE NO EXISTE UN REGISTRO ACTUAL O
SE SOBREPASA EL REGISTRO DEL RECORDSET...ES EN ADO

kinoscar
09 de Diciembre del 2005
BOF DEVUELVE TRUE SI ESTA EN EL PRIMER REGISTRO
EOF DEVUELVE TRUE SI ESTA EN EL ULTIMO REGISTRO
RECORDCOUNT DEVUELVA LA CANTIDAD DE REGISTROS, SI EL IGUAL A 0 NO HAY REGISTROS.

CON ESTO PUEDES EVALUAR SI ESTAS AL PRINCIPIO, AL FINAL O SI ESTA VACIO, CUANDO TE DESPLACES SIEMPRE DEBES EVALUAR EN DONDE ESTAS.

sdemingo
09 de Diciembre del 2005
Hola,

rs (es el recordset con x registros)

If rs.RecordCount <> 0 Then
Do While Not rs.EOF
' Aquí trabajas en cada vuelta de bucle con un registro distinto
rs.MoveNext
Loop
Else
MsgBox("No hay Registros")
End If
rs.Close

Este es el código básico para recorrer registros con un recordset, sale del bucle cuando ya no haya más y empieza por defecto desde el primero. También puedes poner al principio rs.MoveFirst para asegurarte de que está posicionado en el primer registro.

Saludos
sdemingo

Juan
09 de Diciembre del 2005
mi condicion es que si rs1 es EOF=TRUE va a INSERTAR, pero sino cómo le indico Actualizar si rs("H_SAL")="", por que lo hice pero no pasa nada...., a qui te paso mas o menos el pseudocódigo:

rs1=cmd.execute 'ejecutará rs1 de búsqueda...

if rs1.EOF then
INSERTAR
ejecutará por eje. un rs2
else
if rs.Fields("H_SAL")="" then
ACTUALIZAR 'eje Actualiza campo de Hora Salida
ejecutará por eje. un rs3
else
msgbox "Solo se permite Marcar Salida Una vez..."
end if
end if