Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema con MaskEdit de VB

Estas en el tema de Problema con MaskEdit de VB en el foro de Programación General en Foros del Web. Veréis, tengo un problemilla con un control MaskEdit. Está dentro de un formulario que recoge datos personales y lo utilizo para recoger un DNI. Le ...
  #1 (permalink)  
Antiguo 21/05/2004, 12:59
 
Fecha de Ingreso: mayo-2004
Ubicación: Valladolid (Spain)
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
Pregunta Problema con MaskEdit de VB

Veréis, tengo un problemilla con un control MaskEdit.

Está dentro de un formulario que recoge datos personales y lo utilizo para recoger un DNI. Le pongo la máscara de DNI pero me he dado cuenta que aunque tenga la máscara si, por ejemplo, sólo introduzco los dos primeros dígitos cuela, no da error.

He intentado solucionarlo comprobando en el evento Validate de dicho control el valor de lo que devuelve la función len (len(<ControlMaskEdit>.Text), ya que esta función me devuelve la longitud de la cadena. El problema es que como tengo especificada una máscara (de 10 caracteres) esa función siempre me devuelve 10, aunque no hayan rellenado todos los caracteres, así que no me vale.

No sé cómo puedo hacerlo.

Si alguien sabe algo por favor que conteste, es muy importante

Saludos
  #2 (permalink)  
Antiguo 21/05/2004, 13:02
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 21 años, 5 meses
Puntos: 1
Con el InStr puedes verificar si dentro del contenido está algún guión bajo, y de ser así entonces falta de introducir caracteres...
__________________
Ariel Avelar
  #3 (permalink)  
Antiguo 21/05/2004, 13:11
 
Fecha de Ingreso: mayo-2004
Ubicación: Valladolid (Spain)
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
No, creo que eso no me sirve, porque yo no tengo ningún guión bajo. La propiedad mask tiene el siguiente valor: ########-?.

Lo que quiero es poder contar los caracteres que han introducido o comprobar si han rellenado todos los datos (esto es, si han introducido los 9 caracteres del dni).

Pero muchas gracias de todas formas
  #4 (permalink)  
Antiguo 21/05/2004, 13:21
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 21 años, 5 meses
Puntos: 1
La máscara que pusiste es en #, pero al momento en que tú corres el programa el contenido del Mask es _________, chécalo.

Entonces, para comprobar si faltan caracteres por introducir podrías hacer esto según lo que yo te decía:
Código:
    Dim byCont As Byte
    
    For byCont = 1 To Len(MaskEdBox1.Text) Step 1
        If InStr(byCont, MaskEdBox1.Text, "_") Then
            MsgBox "No se han introducido todos los caracteres"
            Exit Sub
        End If
    Next byCont
Pero ahora que se que los caracteres son puros números, con la función IsNumeric te basta.
__________________
Ariel Avelar
  #5 (permalink)  
Antiguo 21/05/2004, 13:32
 
Fecha de Ingreso: mayo-2004
Ubicación: Valladolid (Spain)
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
Miles y miles de gracias Avelar, eres un genio. Ya he conseguido que funcione (claro, que con el código que me has pasado, lo hace cualquiera).

Ahora que veo el código entiendo por qué me decías lo de los guiones bajos, no me dí cuenta.

Es necesario un fragmento de código como el que me has pasado, la función IsNumeric no sirve, porque el último carácter debe ser una letra.

otra vez: GRACIASSSSSSSSSSSSSS

Saludos
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 15:11.