Restringir palabras de campo texto

Debo excluir los siguientes nombres de un campo texto de un formulario:

"Jorge"
"Tulio"
"Laurencio"
"Douglas"
"Carmelo"
"Samuel"
"Victoria"
"Carmenza"

¿Cómo hago para controlar que al anotar un nombre no permitido me informe que el nombre no se acepta?

1 respuesta

Respuesta
1

Antes había respondido algo similar en este foro. Para esto utilizo una función a nivel de módulo.

Después de ingresar el texto en el campo Frase y dar Enter, obtengo:

CÓDIGO EVENTO ANTES DE ACTUALIZAR DEL CAMPO FRASE

Private Sub ctlFrase_BeforeUpdate(Cancel As Integer)
 If busca_cadena(Me.ctlFrase) Then
   Cancel = True
 End If
End Sub

CÓDIGO DE LA FUNCION BUSCA_CADENA

Public Function busca_cadena(strFrase As String, Optional intForma As Byte) As Boolean
' Función para buscar una cadena de texto en una frase
' Parámetros:
' strFrase ---> Cadena a buscar
 '          intFroma ---> 1= Palabra completa 2= Operador LIKE
' Si omite la forma se asigna por defecto 1(palabra completa)
' Requiere de la función:
 '                          busca_palabra()
'
' Elaborada por:
' Eduardo Pérez Fernández
 ' Fecha 29/09/2022
 Dim strColeccion As New Collection
 Dim mivar As Variant
 If intForma = 0 Then
   intForma = 1
 End If
'Aquí se colocan las palabras a restringir
 'puede adicionar las que necesite
 strColeccion. Add "Jorge"
StrColeccion. Add "Tulio"
StrColeccion. Add "Laurencio"
StrColeccion. Add "Douglas"
StrColeccion. Add "Carmelo"
StrColeccion. Add "Samuel"
StrColeccion. Add "Victoria"
StrColeccion. Add "Carmenza"
 For Each mivar In strColeccion
   If intForma = 1 Then ' palabra completa
     If busca_palabra(strFrase, mivar) Then
      MsgBox "No está permitida la palabra " & vbCrLf & vbCrLf & mivar, vbInformation, "Le informo"
      busca_cadena = True
      Exit For
     End If
   Else
      If strFrase Like "*" & mivar & "*" Then
         MsgBox "No esta permitida la palabra " & vbCrLf & vbCrLf & mivar, vbInformation, "Le informo"
         busca_cadena = True
        Exit For
      End If
   End If
 Next
End Function

Observe que la función también permite realiar la busca con el operador LIKE, para esto se pasa como segundo parámetro el valor 2. Por ejemplo:

?busca_cadena("El señor Samuelito Pérez",2)

Observe que está el nombre Samuelito y contiene el nombre "Samuel"

Retorna True y el siguiente mensaje.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas