VBA Access: Determinar tipo de dato ingresado

Necesito saber si existe una forma de determinar el contenido de un textbox:

  • Saber si se escribieron sólo números.
  • Saber si se escribieron sólo letras.
  • Saber si se escribieron ambas cosas.

De esta manera podré determinar qué acción se toma con eso (Por ejemplo, si se ingresó 68, añadir la palabra "CALLE" antes del número y poner el textbox en TipoTítulo si se escribió texto.

1 respuesta

Respuesta
2

Sasha: Usa éste procedimiento en el que supongo que tu TextBox se llama TxtSondeo

Private Sub TxtSondeo_AfterUpdate()
If IsNumeric(Me.TxtSondeo) Then
   'Aquí el código para Numero puro
Else 'Si no es Número puro, pueden ser Números y Letras o solo letras
    'Para saber si es mixto
    Dim I As Integer
    Dim Caracter As String
    Dim CadenaTexto As String
    Dim StrNumeros As String
    CadenaTexto = Me.TxtSondeo
    For I = 1 To Len(CadenaTexto)
        If IsNumeric(Mid(CadenaTexto, I, 1)) Then
                Caracter = Mid(CadenaTexto, I, 1)
                StrNumeros = StrNumeros & Caracter
        End If
    Next
    'Si ha encontrado algún Numero es que el largo de StrNumeros es > 0
    If Len(StrNumeros) > 0 Then
        'Aquí el código para la Cadena Mixta
    Else
         'Aquí saltará si no ha encontrado ningún número
         'Código de Solo letras
    End If
End Sub

Creo que no me he saltado o confundido nada, porque aquí ya es tarde y comienzan a juntarse los carácteres. Un saludo >> Jacinto

Sasha: Verás que OK69 ha hecho un comentario con bastante acierto, y es que el código no contempla la posibilidad de que el control esté vacío. Gracias OK69

Para prevenirlo añade éstas líneas justo después de Private Sub...

If IsNull(Me.TxtSondeo) Or Me.TxtSondeo = "" Then

          MsgBox "El cuadro de texto está vacío" & vbCrlf & "No se desencadenará ninguna Acción",vbCritical,"CUADRO DE TEXTO VACIO"

          Exit Sub

End If

Un saludo a los dos >> Jacinto

¡Gracias! SIEMPRE EFICIENTE. Tus códigos siempre no sólo me sirven para lo que necesito sino que me abren puertas a nuevas cosas. ¡Muchísimas gracias!

Es gratificante que la ayuda tenga un poco más de alcance, que la respuesta concreta. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas