Concatenar campos en vba access

Tengo un problema al querer concatenar campos en un formulario de access.

Tengo un formulario con 5 campos, en 4 de ellos se ingresan datos [Campo1] [Campo2] [Campo3] [Campo4] y el quinto concatena los otros cuatro [Campo5], lo que quiero hacer en vba es que en el campo [Resumen] concatene lo que esta en los otros 4 campos y que me los separe con "/". El problema surge cuando algún dato de los 4 campos esta vacío ya que aparecen dos barras seguidas. Lo que hice fue:

En el evento después de actualizar de cada uno de los 4 campos en los que se ingresan los datos es:

[Campo5] = [Campo1] & "/" $ [Campo2] & "/" $ [Campo3] & "/" $ [Campo4].

Cuando todos los campos presentan algún valor no hay problema (Ej: A/B/C/D)

El tema esta cuando alguno de los campos no esta completo (Ej: A//C/D)

Si me pueden ayudar se los agradecería.

1 Respuesta

Respuesta
1

Si quieres controlar todos los posibles "fallos" del encadenamiento (que empiece o acabe con /, que aparezcan dos o más / seguidas) puedes pegar en el módulo de tu formulario este procedimiento:

Private Sub encadena()
Dim encadena As String
encadena = [Campo1] & "/" & [Campo2] & "/" & [Campo3] & "/" & [Campo4]
encadena = Replace(encadena, "//", "/")
encadena = Replace(encadena, "//", "/") ' lo pongo dos veces por si te faltan dos cuadros seguidos
If Right(encadena, 1) = "/" Then encadena = Left(encadena, Len(encadena) - 1)
If Left(encadena, 1) = "/" Then encadena = Right(encadena, Len(encadena) - 1)
[Campo5]= encadena
End Sub

Y en los eventos "después de actualizar" de cada campo que ingresa los datos lo llamas:

Private Sub Campo1_AfterUpdate()
encadena
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas