Access - subformularios

 
Vista:

subformularios

Publicado por racsus (40 intervenciones) el 15/04/2003 09:32:53
Lo que quiero es que cuando elimine un registro del subformulario. ejecute un evento que sume uno de los elementos eliminados del registro con otro del formulario. Es decir necesito trabajar con esos datos antes de borrarlos, pero como es un subformulario de columnas, el usuario puede borrar varios a la vez. Como se que filas ha seleccionado?

gracias
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

subformularios

Publicado por Alejandro (4142 intervenciones) el 27/04/2023 22:07:51
Para poder trabajar con los datos que se van a eliminar del subformulario antes de borrarlos, puedes utilizar el evento "Antes de eliminar" del subformulario. Este evento se activa antes de que se elimine un registro del subformulario y te permite acceder a los datos que se van a eliminar.

Dentro de este evento, puedes recorrer todas las filas del subformulario y verificar cuáles de ellas han sido seleccionadas para ser eliminadas. Para ello, puedes utilizar la propiedad "Seleccionado" de cada fila del subformulario, que indica si la fila está seleccionada o no.

Una vez que hayas identificado las filas seleccionadas, puedes trabajar con sus datos antes de eliminarlas. Para sumar uno de los elementos eliminados del registro con otro del formulario, puedes utilizar la sintaxis de Access para acceder a los controles del formulario y modificar su valor.

Por ejemplo, supongamos que tienes un subformulario llamado "Detalle" y un control en el formulario principal llamado "Total". Para sumar el valor de la columna "Cantidad" de las filas seleccionadas del subformulario con el valor del control "Total", puedes utilizar el siguiente código dentro del evento "Antes de eliminar" del subformulario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim total As Integer
total = Me.Parent.Total.Value
 
Dim rs As Recordset
Set rs = Me.RecordsetClone
 
rs.MoveFirst
Do Until rs.EOF
    If rs!Seleccionado Then
        total = total + rs!Cantidad
    End If
    rs.MoveNext
Loop
 
Me.Parent.Total.Value = total

En este código, se utiliza la variable "total" para almacenar el valor del control "Total". Luego, se clona el recordset del subformulario en la variable "rs" y se recorre cada fila verificando si está seleccionada. Si la fila está seleccionada, se suma el valor de la columna "Cantidad" de esa fila con la variable "total". Finalmente, se actualiza el valor del control "Total" con el nuevo valor de la variable "total".

Espero que este ejemplo te sea útil para implementar la funcionalidad que necesitas en tu aplicación de Access.
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