Limitar caracteres de 2 textbox relacionados por su número de caracteres access

Tengo dos textbox que uno contiene la clave lada y el otro el teléfono, necesito que cuando la clave lada sea de dos dígitos el teléfono sea de 8 dígitos y si la clave lada es de 3 dígitos entonces el teléfono sea de 7 dígitos.

La idea es hacerlos dependientes del txtlada cuando tenga 2 o 3 dígitos y de esta forma limitar a 7 u 8 dígitos el txt_telefono.

En la imagen dejo un ejemplo de lo que requiere mi usuario:

este es el código que estaba probando pero no me ayuda mucho:

Private Sub telefono_1_Keypress(KeyAscii As Integer)

If (KeyAscii >= 97) And (KeyAscii < 122) Or (KeyAscii >= 65) And (KeyAscii < 90) Then
MsgBox "Este campo solamente acepta números"
KeyAscii = 8
End If
'límite de caracteres
'If Len(Me.telefono_1.Text) > 8 Then
'Me.telefono_1 = Left(Me.telefono_1.Text, 8)
'MsgBox "Capturó más de 8 dígitos en el campo Teléfono 1"
'End If

If Len(Me.lada.Value) = 3 Then
Me.telefono_1 = Left(Me.telefono_1.Text, 7)
Else
If Len(Me.lada.Value) = 2 Then
Me.telefono_1 = Left(Me.telefono_1.Text, 8)
End If
End If

End Sub

2 respuestas

Respuesta
2

Paco: No lo he probado, pero yo pondría algo así:

Private Sub telefono_1_Keypress(KeyAscii As Integer)
If (KeyAscii >= 97) And (KeyAscii < 122) Or (KeyAscii >= 65) And (KeyAscii < 90) Then
MsgBox "Este campo solamente acepta números"
KeyAscii = 8
End If
Selec Case Len(Me.Lada)
   Case 2
     If Len(MeTelefono_1) >= 8 Then
        MsgBox "Has llegado a 8 caracteres",vbInformation,"OCHO CARACTERES"
        Exit Sub
     End If
   Case 3
      If Len(MeTelefono_1) >= 7 Then
        MsgBox "Has llegado a 7 caracteres",vbInformation,"SIETE CARACTERES"
        Exit Sub
      End If
End Select
End Sub

Mis saludos >> Jacinto

Respuesta
2

Tal como lo planteas, lo que haría sería poner en la tabla origen del formulario el campo Lada texto tamaño 3 y los campos telefono texto tamaño 8. Luego, en el evento Antes de actualizar del cuadro de texto telefono pondría

If Len([Lada]) = 3 And Len([Telefono]) = 8 Then
MsgBox "El campo telèfono no puede tener mas de 7 caracteres", vbOKOnly, "Te aviso"
DoCmd.CancelEvent
End If

Bastaría así, ya que este sería "el peor" de los casos. En caso de que el campo Lada tuviera dos dígitos solo podrías poner en Telefono como máximo los 8 dígitos que tiene el tamaño del campo.

Hola,

Gracias por tu respuesta, lo que me planteas ya lo había probado pero al entregarlo al usuario me dijo que así no le funciona, ¿crees que exista alguna forma de hacer que se limite el campo de teléfono a 7 u 8 dígitos condicionando el de la lada cuando esta tenga 2 o 3 dígitos? es decir; no importa que el campo de lada quede limitado a 3 caracteres, pero si es importante que se controle el ingreso del teléfono a 7 u 8 si la lada tiene 2 o 3.

Saludos

Claro que puedes, prueba

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas