Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/08/2008, 01:23
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 3 meses
Puntos: 37
Respuesta: Validaciones. Ayuda por favor ?

Cita:
Iniciado por KingColt Ver Mensaje
Que tal como haria lo siguiente que mi caja de texto solo acepte una letra, un guion y el resto de la cadena solo numeros, solo tengo esto que me permite ingresar numeros, quiero que el formato sea de esta manera C-152030

Código:
Private Sub Text1_KeyPress(KeyAscii As Integer)
'Solo acepta numeros en la caja de texto
If (Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9") And _
   Chr(KeyAscii) <> vbBack Then
   KeyAscii = 0
End If
End Sub
Bueno, como indicaba en el post #3, lo ideal sería utilizar un control MaskEdBox, pero si tiene que ser en una caja de texto y validando tecla a tecla, puedes poner este

Código:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub  ' tecla retroceso
If Chr(KeyAscii) = vbCr Or Chr(KeyAscii) = vbTab Then
    ' tecla ENTER o TAB, antes de pasar el foco al siguiente control
    ' verificamos el número de caracteres
    If Len(Text1) <> 8 Then ' (letra + guión + 6 caracteres)
        KeyAscii = 0
    Else
        SendKeys "{Tab}"
    End If
    Exit Sub
End If
If Len(Text1) = 0 Then
    ' 1er dígito, lo convertimos a mayúsculas
    KeyAscii = Asc(UCase(Chr(KeyAscii)))
    If KeyAscii > 64 And KeyAscii < 91 Then
        ' carácter correcto, le añadimos el guión y nos posicionamos al final
       Text1.Text = Chr(KeyAscii) & "-"
       Text1.SelStart = 3
    End If
    ' eliminamos la pulsación de tecla
    KeyAscii = 0
' si se ha eliminado el guión (con la tecla de retroceso)
' convertimos el carácter digitado en un guión
ElseIf Len(Text1) = 1 Then KeyAscii = 45
Else
    ' sólo números
    If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0
End If
End Sub