Access - Actualizar campos en formulario

 
Vista:

Actualizar campos en formulario

Publicado por Eduardo (24 intervenciones) el 29/05/2007 12:40:51
Hola. Tengo un formulario donde muestro los registros y luego tengo un cuadro de texto donde sumo los valores de los registros que cumplen una condicion. Este cuadro de texto lo actualizo mediante una instruccion sql. Lo que quiero es que esta variable se actualice inmediatamente después de suprimir un registro mediante la tecla SUPR. He probado utilizando el evento keydown cuando pulso supr, pero si pongo una instruccion cuando se cumple esa condicion, me da un error de que no se puede realizar mediante transacciones o algo asi. La instruccion que le pongo me actualiza el formulario. 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

Actualizar valor después de eliminar un registro

Publicado por Alejandro (4142 intervenciones) el 10/08/2023 23:19:45
Si deseas actualizar inmediatamente el valor de un cuadro de texto después de eliminar un registro utilizando la tecla Supr en un formulario de Access, puedes seguir estos pasos:

1. Evento KeyDown:
Utiliza el evento `KeyDown` del formulario para detectar cuando se presiona la tecla Supr (KeyCode = 46). Asegúrate de que la tecla Supr solo se active cuando el foco esté en el formulario principal y no en un control específico.

1
2
3
4
5
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 46 And Me.ActiveControl.Name = "NombreDeTuControl" Then
        ' Realiza aquí la acción para eliminar el registro y actualizar el cuadro de texto
    End If
End Sub

2. Eliminar registro y actualizar cuadro de texto:
Dentro de la condición que se activa cuando se presiona la tecla Supr, realiza la eliminación del registro y luego actualiza el valor del cuadro de texto que muestra la suma de los registros que cumplen la condición.

1
2
3
4
5
6
7
8
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 46 And Me.ActiveControl.Name = "NombreDeTuControl" Then
        ' Realizar la eliminación del registro (por ejemplo, mediante SQL o el método de eliminación de registros)
        ' ...
        ' Actualizar el valor del cuadro de texto
        Me.NombreDelCuadroDeTexto = ObtenerSumaCondicional()
    End If
End Sub

Donde `NombreDelCuadroDeTexto` es el nombre del cuadro de texto que muestra la suma de los registros, y `ObtenerSumaCondicional()` es una función personalizada que calcula la suma de los registros que cumplen la condición.

3. Función para obtener la suma condicional:
Crea una función personalizada en el módulo del formulario que calcule y devuelva la suma de los registros que cumplen la condición deseada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Function ObtenerSumaCondicional() As Double
    Dim strSQL As String
    Dim rs As DAO.Recordset
    Dim suma As Double
 
    ' Define tu consulta SQL con la condición adecuada
    strSQL = "SELECT SUM(TuCampo) AS Suma FROM TuTabla WHERE TuCondicion"
 
    ' Ejecuta la consulta y obtén la suma
    Set rs = CurrentDb.OpenRecordset(strSQL)
    If Not rs.EOF Then
        suma = rs("Suma")
    End If
    rs.Close
 
    ObtenerSumaCondicional = suma
End Function

Recuerda reemplazar `TuCampo`, `TuTabla` y `TuCondicion` con los nombres y la condición adecuados según tu base de datos.

Con este enfoque, al presionar la tecla Supr y eliminar un registro, el cuadro de texto se actualizará inmediatamente mostrando la nueva suma de los registros que cumplen la condició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