Visual Basic - Valor 0 en caja de texto me lo recoge como null

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Valor 0 en caja de texto me lo recoge como null

Publicado por Gonzalo (7 intervenciones) el 09/05/2016 09:36:34
Hola buenos días,

tengo creada una función para validar los campos obligatorios,

necesito pasar el valor de tipo string 0 o 00 o 0000 pero me lo recoge como campo vació .Ahí la función:

---------------------------Funcion controla vacios-----------------------------------------------------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Public Function fncControlaVacios(miForm As String) As Boolean
 
On Error Resume Next
Dim ctl As Control
 
fncControlaVacios = True
 
For Each ctl In Forms(miForm).Controls ' Para cada control del formulario
 
    If ctl.Name Like "*Ob" Then ' Si es obligatorio (acaba en "Ob")...
 
        If IsNull(ctl) Or ctl.Value = "" Or ctl.Value = False Or IsEmpty(ctl) Or ctl.Value = Null Or IsMissing(ctl) Or Len(Nz(ctl, "")) = 0 Then  ' ...y si está vacío
 
            ctl.BackColor = RGB(246, 110, 96) ' ...marcamos el campo
            fncControlaVacios = False   ' Dice que hay fallos
 
        Else
            ctl.BackColor = vbWhite 'Volvemos el campo a su color original
 
        End If
 
     End If
 
Next ctl
 
End Function


Cualquier aporte sera bienvenido, me funciona perfectamente con cualquier tipo de valor salvo si la caja de texto solo tiene valor 0 detectándolo directamente como campo vació y por consecuencia entrando en el condicional IF.

Un saludo a todos.
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Valor 0 en caja de texto me lo recoge como null

Publicado por Andres Leonardo (1798 intervenciones) el 09/05/2016 22:35:36
dentro del if donde entra valida si es un textbox y de ahi captura el valor para descartarlo como error

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Valor 0 en caja de texto me lo recoge como null

Publicado por Gonzalo (7 intervenciones) el 11/05/2016 11:22:13
Lo primero gracias por tu respuesta.

Como comentastes he puesto Debug.Print TypeName(ctl) despues de que pase el if y como resultado me da:

TextBox
0000

Pero no veo el por que sigue entrando en el dichoso if.
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Valor 0 en caja de texto me lo recoge como null

Publicado por Andres Leonardo (1798 intervenciones) el 11/05/2016 15:52:55
Ok valida que si es textbox y el contenido es diferente de 0000 o 0 realice la accion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Valor 0 en caja de texto me lo recoge como null

Publicado por Gonzalo (7 intervenciones) el 11/05/2016 16:03:33
¡¡¡¡¡SOLUCIONADO!!!

Ya di con el error en realidad estaba evaluando mal el textbox y su value ya que en su día para evaluar también los controles de tipo checkbox de otra aplicacion añadi ctl.Value = False.

Si meto un valor de tipo string con 0 me devuelve false y entraba en el if pero si en cambio meto un valor distinto de 0 me devolvía true y también se metía en el if directamente lo he borrado y ya actúa bien y en consecuencia.

Muchas gracias por tu ayuda de todas maneras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar