Concatenando campos, no hace lo que quiero

Intento concatenar en un informe los campos [Nombre] y [Apellidos], de una tabla, y en vez de darme el nombre de la persona que consta en la tabla, me concatena con los apellidos el nombre de Informe que estoy creando.

Supongo que tendrá arreglo, ¿no?

2 respuestas

Respuesta
1

Hay palabras que están prohibidas en Access, por ejemplo, nombre(que entiende que se refiere al nombre del objeto), text, etc.

Prueba, en el origen de registro del informe a crear, si no está hecha ya, una consulta y le añades un campo

NombreC:[nombre]

Y usas ese nombrec para concatenar.

Respuesta
1

Supongo que lo que haces es poner, en el origen de control del cuadro de texto algo como esto:

=[Nombre] & " " & [Apellidos]

El problema de hacerlo así es que Access entiende que "Nombre" es el nombre del objeto (formulario o informe) y no el nombre de un campo, porque Nombre es un campo "reservado".

Una solución sencilla sería rellenar ese campo por código, por ejemplo poniendo en el evento "al dar formato" de la sección donde tengas el cuadro en el informe algo así:

Me.txtNombreCompleto=Me.Nombre & " " & Me.Apellidos

o en un formulario, lo mismo en el evento "al activar registro"

¡Muchísimas gracias! 

Funciona "el parche".

Estudiaré si cambiar el nombre al campo.

Gracias otra vez

Perdona, pero...

La pregunta anterior era para completar un informe que básicamente es una carta en Word, lo que ocurre es que me veo incapaz de , con un botón, combinar los datos del informe con el documento word.

El caso es que le quiero añadir un cuadro de texto condicionado a un campo [Titulo] (D. ; D.ª), que devuelva "Estimado compañero:" , "Estimada compañera".

En una consulta lo resolví con : SiInm([Titulo]='D.'; 'Estimado compañero';'Estimada compañera'), pero cuando coloco esta expresión debajo de la que tu me has dado para concatenar, con el fin de me que formatee también este campo a lo que quiero, me da errores, lógico por otra parte ya que no veo en la ayuda del Visual que exista esa orden, sino el If.

Lo he probado en el if...then..., y tampoco logro hacerlo.

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
Me.Texto55 = Me.Nombre & " " & Me.Apellidos

SiInm([Titulo]='D.'; 'Estimado compañero';'Estimada compañera')
End Sub

En VBA tienes que usar el inglés, y el equivalente a SiInm es iif ( si, con dos i).

También el separador es la coma y no el punto y coma.

Y por último, tendrás que indicar en qué cuadro de texto quieres lo de "estimado...",

Podría ser:

Me.txtInicio=Iif(me.Titulo="D.", "Estimado compañero","Estimada compañera")

O:

Me.textoX==Iif(me.Titulo="D.", "Estimado compañero","Estimada compañera") & " " &  Me.Nombre & " " & Me.Apellidos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas