Variables en un cuadro combinado Access

Tengo un formulario F_Usuario con 3 cuadros de texto: txtNombre, txtApellidos y txtDNI. Hay además un cuadro combinado CombUsuario (basado en la tabla Usuario que tiene los campos Nombre, Apellidos y DNI).

Ese cuadro combinado muestra al usuario los valores de los 3 campos mencionados pudiendo elegir el registro que desee (por ejemplo, un registro podría contener: Pepe | Rodríguez | 12345678K).

¿Cómo podría poner el valor de Pepe en txtNombre, Rodríguez en txtApellidos y 12345678K en txtDNI?

1 respuesta

Respuesta
1

Podrías utilizar el siguiente código, en el evento "Después de actualizar" del combo:

...

Private Sub CombUsuario_AfterUpdate()
If IsNull(Me.CombUsuario.Value) Then Exit Sub
Me.txtNombre.Value = Me.CombUsuario.Column(0)
Me.txtApellidos.Value = Me.CombUsuario.Column(1)
Me.txtDNI.Value = Me.CombUsuario.Column(2)
End Sub

...

Si por casualidad el combo te cogiera también la clave principal (aunque no la veas) sólo tienes que aumentar el número de columna de cada campo en una unidad. Por ejemplo,

Me.txtNombre.Value = Me.CombUsuario.Column(1)

Etc.

Ya me dirás qué tal.

Hola,

la solución es perfecta, muchas gracias. Me surge una nueva cuestión que te comento, por si me puedes ayudar: 

¿sería posible visualizar en el combo, en su primera línea, los nombres de los campos (Nombre, Apellidos y DNI), y debajo además, lógicamente los valores de los registros?

Nuevamente gracias y un saludo.

Si sacas las propiedades del combo -> Pestaña Formato -> Encabezados de columna, debes situar esa propiedad en SÍ.

Por la consulta que ya has cerrado, de título "Bloqueo y control de registros en Access", te comento que, desde la generación de código en un botón de comando, podrías generar el siguiente código en el evento "Al hacer click":

...

Private Sub...

DoCmd.Openfomr "NombreForm",,,,acFormReadOnly

End sub

...

Eso te abre el formulario en modo sólo lectura.

Por otra parte, si sacas las propiedades del formulario y te vas a la pestaña Otras -> Ciclo, y le seleccionas el registro activo, cuando le des a Enter (o tabulación) en el último campo no saltarás al siguiente registro, sino que te quedarás en el que estás.

Ops... se me han colado los dedos

Es: DoCmd. OPENFORM (no Openfomr)

Perfecto nuevamente. Para la consulta del bloqueo de registros, la solución a través de la propiedad Ciclo mejora el objetivo de imposibilitar el acceso a los registros ya guardados, pues no se podría mediante Enter o el tabulador, aunque sí que se podría con un ratón de rueda. No obstante, la aplicaremos para mayor protección.

Muchas gracias por la ayuda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas