Access - formulario hoja de datos y cuadros combinados

 
Vista:

formulario hoja de datos y cuadros combinados

Publicado por alberto (1 intervención) el 17/07/2007 19:23:33
Hola a todos, tengo 2 tablas.
Tabla1: t1_id, t1_nombre, t1_apellidos Tabla2: t2_id,t2_turno, t2_fecha
1 aaa abbbb 1 1 xxxx
2 bbb bbbbb 2 1 xxxx
3 ccc cbbbb 2 3 xxxx

Mi formulario es de tipo hoja de datos y su origen es una consulta con todos los valores de la tabla2. Pero el campo t2_id lo tengo en invisible y tengo en el detalle un cuadro combinado que quiero que para cada registro se actualice con los datos de la tabla1 y que además si el registro actual el t2_id=2 el cuadro combianado aparezca ya marcado el nombre que equivale a su id en la tabla1 (que seria "bbb").

Lo segundo es como se haria en el caso que un usuario sobre ese formulario se ponga sobre un registro y del cuadro combinado escoja otro nombre, se deberia actualizar el t2_id al valor equivalente.

Y que todo lo realizado se actualice en la tabla t2.

muchas gracias por todo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Actualizar cuadro combinado y campos relacionados en un formulario

Publicado por Alejandro (4142 intervenciones) el 15/08/2023 20:29:11
Para lograr lo que deseas en tu formulario de hoja de datos, necesitarás utilizar eventos y VBA (Visual Basic for Applications) para controlar el comportamiento del cuadro combinado y la actualización de los datos en las tablas. A continuación, te proporciono los pasos para implementar estas funcionalidades:

Actualizar cuadro combinado en base a t2_id:

1. Abre el formulario en modo diseño.
2. Haz clic derecho en el cuadro combinado y selecciona "Propiedades".
3. Ve a la pestaña "Datos".
4. En la propiedad "Origen de la fila" (Row Source), establece la siguiente consulta SQL para llenar el cuadro combinado con los nombres correspondientes a t2_id:

1
SELECT t1_nombre FROM Tabla1 WHERE t1_id = [Forms]![TuFormulario]![t2_id]

5. En la propiedad "Columnas" (Column Count), asegúrate de que esté configurada en 1.
6. En la propiedad "Columna ancha" (Column Widths), establece un valor como "1", lo cual hará que el cuadro combinado sea invisible para el usuario.

Actualizar t2_id en base a la selección del usuario:

1. Abre el formulario en modo diseño.
2. Haz clic derecho en el cuadro combinado y selecciona "Propiedades".
3. Ve a la pestaña "Eventos".
4. Haz doble clic en el evento "Después de actualizar" (After Update).
5. Agrega el siguiente código VBA para actualizar t2_id según la selección del usuario:

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub NombreCuadroCombinado_AfterUpdate()
    Dim db As Database
    Dim strSQL As String
 
    Set db = CurrentDb
 
    strSQL = "UPDATE Tabla2 SET t2_id = " & DLookup("t1_id", "Tabla1", "t1_nombre = '" & Me.NombreCuadroCombinado & "'") & _
             " WHERE t2_id = " & Me.t2_id.Value
 
    db.Execute strSQL, dbFailOnError
 
    Set db = Nothing
End Sub

Asegúrate de reemplazar "NombreCuadroCombinado" con el nombre real del cuadro combinado en tu formulario.

Con estos pasos, cuando un usuario seleccione un nombre en el cuadro combinado, se actualizará automáticamente el valor de t2_id en la tabla Tabla2. También, cuando un usuario se ponga sobre un registro y cambie la selección del cuadro combinado, el valor de t2_id se actualizará en consecuencia.

Recuerda realizar pruebas exhaustivas en un entorno de desarrollo antes de implementar estos cambios en tu entorno de producción.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar