¿Cómo eliminar espacio en blanco al principio dobles intermedio y al final en campos al escribir si hay código?

A el grupo estoy haciendo un base en la que tengo muchos problemas con los usuario escriben muy mal muchos espacio en blanco y me duplican datos por el hecho de escribir espacios al principio, intermedios y al final necesito su ayuda tengo que eliminar los espacio cuando terminen de escribir y si ese dato al limpiar los espacios ya se encuentra en la base de datos que le avise al usuario que ya esta y no guarde el registro. Gracias de antemano por el desvío de atención. Bonito día.

2 Respuestas

Respuesta
1

Puede utilizar la función TRIM() en el evento Después de actualizar. Algo como:

Private Sub ctlnombre_AfterUpdate()
  Me.ctlnombre = UCase(Trim(Me.ctlnombre))
End Sub

En este ejemplo suprimo los espacios antes y después con la función Trim() y paso el texto a mayúsculas con la función Ucase().

Si necesita actualizar todos los registros de una tabla pude utilizar este código en un procedimiento

CurrentDb.Execute "UPDATE tblproductos SET tblproductos.producto = UCase(Trim([producto]));"

Cambie tblproductos por el nombre de su tabla y producto por el nombre del campo

Pero no sirve si hay más de 2 espacios. Le dejo esta función

Public Function LimpiarTexto(ByVal texto As String) As String
    ' Eliminar espacios al inicio y al final
    Dim textoLimpio As String
    textoLimpio = Trim(texto)
    ' Reemplazar múltiples espacios por un solo espacio
    textoLimpio = Replace(textoLimpio, "  ", " ")
    ' Verificar y reemplazar si hay más de dos espacios consecutivos
    While InStr(textoLimpio, "  ") > 0
        textoLimpio = Replace(textoLimpio, "  ", " ")
    Wend
    LimpiarTexto = textoLimpio
End Function

Por ejemplo:

¿
? Limpiartexto("EN LA CASA")
EN LA CASA

Parece que se cambio al copia el código

¿

? Limpiartexto("EN LA CASA")
EN LA CASA

¿Hola Eduardo antes que nada mil gracias por tu gran apoyo pregunto entonces tengo que usar los dos condigo para que uno limpie el principio y el fina y el otro código limpie los intermedios?

Utilice la función es la mejor opción

Respuesta
1

A la respuesta que le han dado, añadiría la opción que solicita para eliminar los espacios dobles:

UCase(Trim(Replace(Me. Ctlnombre, " ", " ")))

Con ello sustituimos los espacios dobles por espacios sencillos.

¡Gracias!  mil amigo Poli por tu atinadon consejo en verdad agradezco toda la ayuda del grupo estoy feliz de pertenecer a este gran grupo les mando un fuerte abrazo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas