¿Cómo eliminar espacios en blanco en un textbox con campos concatenados?

Estoy concatenando varios campos, depende del grado cursado, pero si me salto del 1° de sec al 3° de sec, dejando en blanco el 2° de sec, me deja doble espacio. Gracias "Rojo".

1 respuesta

Respuesta
1

Utiliza la función Replace() para pasar los espacios dobles a espacios sencillos, algo así:

=Replace(Nz([EL-LA],"")+" "+Nz([Cursadoen1sec],"")+" " +... , "  "," ")

Para eliminar los espacios al inicio, usa Trim() o LTrim():

=Trim(Nz([EL-LA],"")+" "+Nz([Cursadoen1sec],"")+" " +...)

Ya casi está, pero me gustaría combinar trim con replace. Ya se eliminan los espacios iniciales y finales pero no los intermedios

EStoy usando replace pero me dice que el argumento no puede ser opcional

Con replace tienes 3 argumentos: la cadena en la que vas a hacer los cambios, lo que buscas cambiar (te lo pongo en negrita, sería: " " ->comillas -dos espacios-comillas) y por lo que quieres cambiarlo (te lo pongo en cursiva, sería: " " -> comillas-espacio-comillas):

=Replace(Nz([EL-LA],"")+" "+Nz([Cursadoen1sec],"")+" " +... ,"  " ," ")

Ahora no me deja espacios. Deben quedar sencillos

Ponme aquí la fórmula que estás usando

Me.TxtAuxEsc = Replace(([EL-LA]) + " " + Nz([Cursado en 6°]) + " " + Nz([Cursadoen1Sec]) + " " + Nz([ConcaEsc1]) + " " + Nz([Cursado2Sec]) + Nz([ConcaEsc2]) + " " + Nz([Cursadoen3Sec]), " ", "")

Te comento, que algunos alumnos estudian en escuelas diferentes durante sus tres años de secundaria. Es por eso, que dejo espacios entre un grado y el otro, porque puede ir el nombre de una sola escuela o concatenar varios nombres de escuela. Si es una sola escuela, me deja los espacios en blanco de las concatenaciones para las otras escuelas. Así, que puedo tener espacios sencillos, dobles o triples. Espero me hayas entendido.

Por lo que veo, le estás diciendo que te reemplace los espacios sencillos por ningún espacio. Tienes que decirle que que cabie los dos espacios por un espacio, así:

Me.TxtAuxEsc = Replace(([EL-LA]) + " " + Nz([Cursado en 6°]) + " " + Nz([Cursadoen1Sec]) + " " + Nz([ConcaEsc1]) + " " + Nz([Cursado2Sec]) + Nz([ConcaEsc2]) + " " + Nz([Cursadoen3Sec]), "  ", " ")

EN  CENTRAL MIDDLE SCHOOL , ya lo corregí, y aún me deja doble espacio en la palabra "EN", y el nombre de la escuela, que corresponde al octavo grado(2° de sec)

Ya le corregí, ahora sólo me deja espacio con los de noveno(3° de secundaria)" EN   EL INSTITUTO TÉCNICO SALESIANO".

Ya noté que si agrego más espacios en la sintaxis del "Replace", ..."Find as String"... corrijo noveno(3° sec), pero los primeros se vuelven abrir:

Me.TxtAuxEsc = Replace(([EL-LA]) + " " + Nz([Cursado en 6°], " ") + " " + Nz([Cursadoen1Sec], " ") + " " + Nz([ConcaEsc1]) + " " + Nz([Cursado2Sec], " ") + Nz([ConcaEsc2], " ") + " " + Nz([Cursadoen3Sec]), "     ", " ")

Cuando uses Nz() no dejes un espacio, pon sólo las dos comillas:

Me.TxtAuxEsc = Replace(([EL-LA]) + " " + Nz([Cursado en 6°], "") + " " + Nz([Cursadoen1Sec], "") + " " + Nz([ConcaEsc1]) + " " + Nz([Cursado2Sec], "") + Nz([ConcaEsc2], "") + " " + Nz([Cursadoen3Sec]), "  ", " ")

Otra alternativa que puedes probar es encadenar sólo si existe valor, con la función IIF(), algo así (consulta la sintaxis de esa función en la ayuda):

Me.TxtAuxEsc = ([EL-LA]) + IIF(Nz([Cursado en 6°], "")="",""," " & [Cursado en 6°]) + IIF(Nz([Cursadoen1Sec], "")="",""," " & [Cursadoen1Sec]) + IIF(Nz([ConcaEsc1], "")="",""," " & [ConcaEsc1]) + IIF(Nz([Cursado2Sec], "")="",""," " & [Cursado2Sec]) + IIF(Nz([ConcaEsc2], "")="",""," " & [ConcaEsc2]) + IIF(Nz([Cursadoen3Sec], "")="",""," " & [Cursadoen3Sec])

Síííííí´....ya quedó.

...IIf(Nz([Cursado en 6°],"") = "", "", " " & [Cursado en 6°])...Entiendo la expresión, la True part, pero la False part???...Si cursado en 6°, está vacío, no pongas "espacio". El "&" concatena textos, ¿si hay espacio...concatena Cursado en 6°? Como ya te habías dado cuenta, soy malísimo para programar, pero me voy a esforzar. Por lo pronto, recibe mi admiración por tu conocimiento y sobretodo por la paciencia con la que me estuvíste apoyando. Por mi parte cierro la consulta.

Fíjate en la parte falsa (si hay algún valor en Cursado en 6º):

" " & [Cursado en 6°]

Le estoy diciendo que ponga un espacio (" ") y el contenido del campo "Cursado en 6º"

El & encadena texto igual que el +.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas