Quiero que las expresiones apunten a un campo de mi tabla

En un textBox(Nombre del alumno, que también es un campo), tengo la siguiente expresión:=[TxtNombre] + [TxtPrimApe]+[TxtSegApe].Esta expresión va en: Propiedades/Datos/Origen del control. Todo está muy bien, el problema es que me aparece en pantalla, pero no se guarda en el campo (Nombre del Alumno)

1 respuesta

Respuesta
1

Si quieres que el contenido de un cuadro de texto (u otro control) se guarde en la tabla, en el origen del control de ese cuadro de texto ha de ir el campo de la tabla, si el formulario es dependiente de la tabla.

En tu caso, el valor resultante de la expresión se lo has de asignar por código, poniendo, en el evento que consideres más adecuado, algo como esto:

Private Sub....

Me.[Nombre del alumno]=[TxtNombre] + " " + [TxtPrimApe] + " " + [TxtSegApe]

End Sub

El evento puede ser, por ejemplo, "Despues del actualizar" de cada uno de los campos txtNombre, txtPrimApe y txtSegApe

De antemano, te envío un caluroso saludo por lo veraz y oportuno de tu respuesta.

Fíjate que yo hice esto.....

Private Sub TxtNomCompl_AfterUpdate()

Me.[Nombre del Alumno] = [TxtNombre] + " " + [TxtPrimApe] + " " + [TxtSegApe]
End Sub

Y no pasa nada. TxtNomCompl es el nombre del textBox y el nombre del campo es "Nombre del Alumno". El nombre de mi formulario es "Revalidaciones"(no sé si en lugar de Me., debe llevar "Revalidaciones").

Y TxtNombre, también es el nombre del TextBox y el del campo es Nombre...y así...En origen del control, eliminé la expresión y dejé el nombre del campo. Ojalá y me puedas entender. Muy amable.

El código lo tienes que poner en los eventos después de actualizar de los campos txtNombre, txtprimape y txtsegape:

Private Sub TxtNombre_AfterUpdate()

Me.TxtNomCompl = Me.TxtNombre + " " + Me.TxtPrimApe+ " " + Me.TxtSegApe
End Sub

Y lo mismo en los otros dos. Has de usar siempre el nombre que le tengas al control de tu formulario, independientemente de cómo le llames en la tabla

No...creo que no estoy entendiendo.

Yo hice lo siguiente:

Private Sub TxtNombre_AfterUpdate()

Me.TxtNomCompl = Me.TxtNombre + " " + Me.TxtPrimApe + " " + Me.TxtSegApe
End Sub

Private Sub TxtPrimApe_AfterUpdate()
Me.TxtNomCompl = Me.TxtNombre + " " + Me.TxtPrimApe + " " + Me.TxtSegApe
End Sub

Private Sub TxtSegApe_AfterUpdate()
Me.TxtNomCompl = Me.TxtNombre + " " + Me.TxtPrimApe + " " + Me.TxtSegApe
End Sub

Private Sub TxtNomCompl_AfterUpdate()
Me.[Nombre del Alumno] = [TxtNombre] + " " + [TxtPrimApe] + " " + [TxtSegApe]
End Sub

Te sobra esto:

Private Sub TxtNomCompl_AfterUpdate()
Me.[Nombre del Alumno] = [TxtNombre] + " " + [TxtPrimApe] + " " + [TxtSegApe]
End Sub

Te puedo enviar una impresión de pantalla, porque creo 

que lo estoy pegando mal

El código que tienes es correcto, si los cuadros de texto tienen esos nombres, cosa que con las capturas de pantalla no puedo ver, pero imagino que sí lo son.

¿Cuál es el problema? ¿Te da algún error? ...

Ten en cuenta que el código sólo se ejecutará cuando actualices algún valor en alguno de los 3 campos. Si ya tienes registros, has de poner el mismo código en el evento "Al activar registro" del formulario.

Voy a checar mis objetos y mañana te comento, porque por el día de hoy ya me apena tantas molestias, por tu atención, ¡muchas gracias!

Con esa imagen veo el error:

En las propiedades->Eventos, no tienes que poner el código (el private sub... que pones), sino que has de seleccionar la opción [Procedimiento de evento] que sale en el desplegable, o pulsar en el botón con los 3 puntos, seleccionar la opción Generador de código y poner el código (que ya lo tienes) en el editor de VBA.

Estoy checando

Ya quedó, cierro el tema y voy abrir otro(otras dudas), estoy muy agradecido por todo tu apoyo.

No hay de qué. Ya estaré atento al tablón por si puedo responderte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas