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

rst.fields = vacio

Estas en el tema de rst.fields = vacio en el foro de Visual Basic clásico en Foros del Web. hola una consulta Código: If IsNull(login.rst.Fields("numero")) Then con esa sentencia puedo ver si el valor es NULL. Pero como puedo saber si no hay ningun ...
  #1 (permalink)  
Antiguo 05/05/2010, 10:39
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación rst.fields = vacio

hola
una consulta
Código:
If IsNull(login.rst.Fields("numero")) Then
con esa sentencia puedo ver si el valor es NULL.
Pero como puedo saber si no hay ningun valor ( osea ni 0..9, a..z o NULL)

lo que quiero hacer es:

Código:
si el ultimo registro de la tabla numeracion es nada haga
                   numero = 1
sino
                  numero = numero + 1 
( por ejemplo : ultimo registro = 0 + 1, daria numero = 1 )
gracias

Última edición por carnero; 05/05/2010 a las 12:02
  #2 (permalink)  
Antiguo 05/05/2010, 13:54
Avatar de hugo180486  
Fecha de Ingreso: septiembre-2007
Mensajes: 199
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: rst.fields = vacio

Código vb:
Ver original
  1. If login.rst.Fields("numero") = "" Then 'Eso deberia funcionar para ver si esta vacio
  #3 (permalink)  
Antiguo 05/05/2010, 14:02
Avatar de hugo180486  
Fecha de Ingreso: septiembre-2007
Mensajes: 199
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: rst.fields = vacio

Si eso no funciona y de antemano dabes que el Campo siempre va ser numerico podrias hacer esto tambien:

Código vb:
Ver original
  1. If  Asc (Left$(Cstr(login.rst.Fields("numero").Value),1) >= 48 and Asc (Left$(Cstr(login.rst.Fields("numero").Value),1)  <= 57 then'
  2. 'Eso quedria decir que el campo tiene un valor y ademas es numerico
  3. Else
  4. 'No tiene un valor numerico
  5. End if(

Consiguete el Codigo Ascii y juega con las comapraciones como mas te convenga...
  #4 (permalink)  
Antiguo 05/05/2010, 15:00
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: rst.fields = vacio

el primero lo hise haci:
Código:
login.rst.MoveLast
           If login.rst.Fields("numero") = "" Then
resulta si la tabla tiene registros, pero sino los tiene osea es NULL no funcioa.

y

la segunda
Código:
If Asc(Left$(CStr(login.rst.Fields("numero").Value), 1) >= 48) And Asc(Left$(CStr(login.rst.Fields("numero").Value), 1) <= 57) Then
tampoco aceptas valores NULL


gracias

Última edición por carnero; 05/05/2010 a las 15:15
  #5 (permalink)  
Antiguo 05/05/2010, 15:16
Avatar de hugo180486  
Fecha de Ingreso: septiembre-2007
Mensajes: 199
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: rst.fields = vacio

Código vb:
Ver original
  1. login.rst.MoveLast
  2. if Not IsNull(login.rst.Fields("numero")) Then
  3. 'Si no es nulo Then checa si no viene vacio
  4.  
  5. If login.rst.Fields("numero") = "" Then
  6. 'Si no viene vacio then "Haces lo que quieres hacer
  7.  
  8. End if
  9.  
  10. End if
  #6 (permalink)  
Antiguo 05/05/2010, 15:47
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación Respuesta: rst.fields = vacio

lo que pasa es que el

Código:
If login.rst.Fields("numero") = "" Then
no funciona si biene VACIO

si yo pongo esto:

Código:
if Not IsNull(login.rst.Fields("numero")) Then
#
If login.rst.Fields("numero") = "" Then
pasa si biene VACIO y al llegar al siguiente if se cae porque no tiene nada que comparar

Última edición por carnero; 05/05/2010 a las 15:53
  #7 (permalink)  
Antiguo 05/05/2010, 17:26
Avatar de hugo180486  
Fecha de Ingreso: septiembre-2007
Mensajes: 199
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: rst.fields = vacio

jejej creo que ya me confundiste, primero asegurate que tengas campos nulos o vacios para hacer las pruebas... Despues intenta lo siguiente. Segun yo quieres identificar si el ultimo registro es nulo o viene Vacio verdad?, Intenta esto

Código vb:
Ver original
  1. rs.MoveLast
  2. If (Isnull(rs.Fields(0).Value) or (Trim$(rs.Fields(0).Value = "")) Then
  3.  
  4. End if

La funcion Trim te quita espacios vacios de lado derecho o izquierdo de una cadena.

La diferencia si le agregas o no el $, es que con el signo de pesos, te devuelte un tipo String, y sin el signo te devuelve un tipo Variant...

Como el tipo Variant ocupa mas lugar en memoria, es mejor que te devuelva un tipo String...

Haber si asi funciona...
  #8 (permalink)  
Antiguo 06/05/2010, 00:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: rst.fields = vacio

gracias por la ayuda pero no lo toma, porque no tiene nada (VACIO) me dice que llego al final y no encontro nada
  #9 (permalink)  
Antiguo 06/05/2010, 10:18
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: rst.fields = vacio

Hola!
Intentaste:

If login.rst.Fields("numero") =Empty Then
  #10 (permalink)  
Antiguo 06/05/2010, 10:31
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: rst.fields = vacio

Cita:
el valor de bof o eof rd tru, o el actual redistro se elimino.......
tampoco :(
  #11 (permalink)  
Antiguo 06/05/2010, 10:36
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: rst.fields = vacio

Ponle:

if login.rs.eof=false then
If login.rst.Fields("numero") =Empty Then
...
...
end if
end if
  #12 (permalink)  
Antiguo 06/05/2010, 10:46
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: rst.fields = vacio

Cita:
If not (rst.eof and rst.bof) then
esa me sirvio muchas gracias por su ayudaa

seguire molestando a medida que avanso
  #13 (permalink)  
Antiguo 06/05/2010, 10:51
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: rst.fields = vacio

Ok

Etiquetas: vacio
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:29.