Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

problema acceso a tabla

Estas en el tema de problema acceso a tabla en el foro de Visual Basic clásico en Foros del Web. hola, tengo un problema cuando quiero acceder a una tabla y esta vacia. yo hago lo siguiente Rs.Open "Select max(idauditoria) from AudiPtoventa", cn, adOpenDynamic, adLockOptimistic ...
  #1 (permalink)  
Antiguo 09/07/2008, 15:49
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
problema acceso a tabla

hola, tengo un problema cuando quiero acceder a una tabla y esta vacia.
yo hago lo siguiente
Rs.Open "Select max(idauditoria) from AudiPtoventa", cn, adOpenDynamic, adLockOptimistic
if rs.eof=true and rs.bof= true then
.....le asigno 0, else otra cosa
pero si le borro todos los datos a la tabla igual me dice que rs es false... como que tiene datos y yo estoy viendo que la tabla de access esta totalmente vacia
Alguien me puede dar una mano por favor!?
GRACIAS DE ANTEMANO
  #2 (permalink)  
Antiguo 09/07/2008, 17:09
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: problema acceso a tabla

Porque no usas rs.Count
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #3 (permalink)  
Antiguo 09/07/2008, 17:38
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Respuesta: problema acceso a tabla

Hola, ya lo probe pero tampoco me funciona, no se porque, pero en mi BD tengo declarado la clave principal como numerica, entonces por defecto me pone un 0 access, cuando pregunto por el count me pone 1, luego,cuando quiero insertar el segundo registro, el count me vuelve a poner 1, y me salta un error. es por ese motivo que estoy buscando otras alternativas
  #4 (permalink)  
Antiguo 10/07/2008, 11:50
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: problema acceso a tabla

Hola!

La consulta que estás haciendo se basa en una función (Max), por lo que siempre te va a devolver una única fila. Si la tabla está vacía, te devolverá el valor Null en ese campo, y si no, el máximo del campo, pero siempre será una fila. De hecho, si consultas Rs.Fields(0).Value, verás que es nulo.

Por tanto, si lo que quieres es comprobar que la tabla está vacía y asignar un valor dependiendo, hazlo así:

Código:
Call Rs.Open("Select max(idauditoria) AS Maximo from AudiPtoventa", cn, adOpenDynamic, adLockOptimistic)

If IsNull(Rs!Maximo) Then
    ' Asigna 0 (la tabla está vacía)
Else
    ' Rs!Maximo contiene el mayor valor en IdAuditoria
End If
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:02.