Visual Basic - Error con consultas con sql

Life is soft - evento anual de software empresarial
 
Vista:

Error con consultas con sql

Publicado por Patty (4 intervenciones) el 20/12/2002 17:29:01
Hola

Estoy trabajando con consultas sql y me ha sucedido que cuando va a buscar el registro que sea igual a la consulta, cuando pregunto si es princio o fin de la tabla no entra en el ciclo, el codigo es el siguiente:

Dim SQL As String
Dim RsReactivos As Recordset
FechaReac = DTfecha.Value
SQL = ("Select * From CantReactivos WHERE Fecha = " & FechaReac & " And Cuarto = " & NumCuarto & "")
Set RsReactivos = Bd.OpenRecordset(SQL)
If (Not RsReactivos.BOF) And (Not RsReactivos.EOF) Then 'Aqui esta el error
Do While Not RsReactivos.EOF
Factor1Pe = RsReactivost!Fac1Petroleo
Factor2Pe = RsReactivos!Fac2Petroleo
Loop
End If

Bueno espero entiendan mi duda, no me arroja error solo que no entra en el ciclo y no se porque, de antemano muchas gracias..........
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error con consultas con sql

Publicado por manuel (87 intervenciones) el 20/12/2002 18:16:45
Simplemente quitale la condicion IF, no es necesario, hasle un RsReactivos.Recordcount para la cantidad de registros que te devuelve, antes de Loop has RsReactivos.Movenext, sino nunca sale del bucle
Saludos desde Lima
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Una observación

Publicado por Francisco (65 intervenciones) el 21/12/2002 05:03:16
Patty:
Efectivamente te falta la orden rsReactivos.moveNext. Al no existir, el procedimiento no se mueve al siguiente registro, por lo que nunca saldrá del loop.
Mi observación es la siguiente: Al no existir registros en el Recordset, la posición actual es tanto .BOF como EOF, ambos a la vez. Por lo tanto, basta con que verifiques cualquiera de ellas. Generalmente, para evitar errores cuando la consulta no arroja resultados, pongo algo como lo siguiente:

IF RsReactivos.EOF then Exit Sub (o Goto... depende de la estructura de tu procedimiento, o de como acostumbres programar.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar