Access - Validar Recordset

 
Vista:

Validar Recordset

Publicado por Leonardo (37 intervenciones) el 08/03/2004 21:42:56
Cómo puedo validar un recordset que es null

Tengo el siguiente código en una función cuya finalidad es obtener el valor máximo del campo ID, en caso de que no haya ningún registro en la tabla me debe asignar un "1" pues es el primer registro. pero al no haber ningún registro en la tabla el resultado del recorset es nulo, como puedo validar esto????
He intentado con un If pero no se cómo alguien me puede decir??

Dim dbs As Database
Dim rst As Recordset
Dim maxid$
Dim sql As String

Set dbs = CurrentDb
sql = "SELECT MAX(ID)+1 FROM TBL_PROVISION"
Set rst = dbs.OpenRecordset(sql)
maxid = rst.Fields(0)

Saludos y gracias de antemano
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:Validar Recordset

Publicado por Victoria (1530 intervenciones) el 08/03/2004 22:33:26
Hola
La verdad es que algo se me escapa de lo que quieres hacer, pero, ahí va algo para que juegues con ello

If rst.RecordCount>0 then
'esto quiere decir que SI hay registros
'pon tu código
else
'no hay registros, pon tu código
End If
Un saludo
Victoria
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:Validar Recordset

Publicado por Leonardo (37 intervenciones) el 09/03/2004 22:00:07
No Victoria te agradezco la ayuda pero de hecho no habiendo registros el resultado del RecordCount es 1
Y si intento con rst.fields(0) me marca error "Uso no válido de Null" pues el dato que se encuentra en el campo ID es nulo, no hay nada. Trato de hacer la validación con
if rst.fields(0)=null then
'mi codigo
else
'mas codigo
end if
sin embargo me sigue marcando el error, en la primera insttruccion trato de asignar el valor del rst a una variable, ahí me marca el error.
Bueno seguiré intentando, si tienes alguna otra opción es bien recibida gracias por la atención
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

RE:Validar Recordset

Publicado por Pancho (149 intervenciones) el 09/03/2004 23:52:27
Hola

Prueba con esta funcion

Function Maximo() As Long
Dim nMax As Variant

nMax = DMax("MI_CAMPO", "MI_TABLA")
nMax = IIf(IsNull(nMax), 0, nMax)
Maximo = nMax + 1
End Function

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

RE:Validar Recordset

Publicado por noela (21 intervenciones) el 10/03/2004 18:07:28
Bueno vamos a ver si esto te puede ayudar tambien...
Yo he utilizado esto en algunos formularios para determinar si existen registros y si no los hay entrar en modo de agregar. Pero OJO necesitas tener un formulario.

if me.recordset.recordcount =0 then
docmd.gotorecord ,,acnewrec
[tu_campo]=[valor_que_desees]
else
'Acá iría el código de lo que debe hacer si hay registros
end if

Espero haberte sido de ayuda.
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:Validar Recordset

Publicado por Alejandro (1 intervención) el 16/03/2004 07:23:07
Saludos,
Prueba con esto se que te puede funcionar, lo he usado muchas veces y me ha sacado de problemas más de una vez.
Los recordset tienen un método que se llama .BOF. Antes de hacer cualquier cosa con el recordset despué de abrirlo y asignarlo usa la siguientes líneas.
Digamos que tu recordset se llama tabTabla

If Not tabTabla.BOF Then
/* Si el recordset tiene registros te entrará a esta sección y podrás usar el count que te mencionan
else
/* Si el recordset no tiene registros te entrará a esta sección y podrás enviar el valor que quieras para indicar ese estado.
End if

Consulta la ayuda del .BOF
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:Validar Recordset

Publicado por eric (5 intervenciones) el 30/03/2004 21:07:45
Leonardo Probá con esto seguro te anda

On Error GoTo er
Dim dbs As Database
Dim rst As Recordset
Dim maxid$
Dim sql As String

Set dbs = CurrentDb
sql = "SELECT MAX(ID)+1 FROM TBL_PROVISION"
Set rst = dbs.OpenRecordset(sql)
maxid = rst.Fields(0)

er:
If err.Number = 94 Then
maxid = 1
End If
End Function

Saludos y suerte
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