Error al actualizar formulario
Publicado por José María (3 intervenciones) el 02/05/2019 23:08:48
Buenas, soy nuevo por este foro y con la programación en Access y me gustaría si me pudiesen ayudar con un tema que me está volviendo loco.
El caso es que tengo un formulario que al cargar, realiza unas operaciones simples de resta y las muestra en unos campos de texto.
Los datos los coge de un subformulario se solicitudes (tabla solicitudes), y los resta a otra tabla (Permisos), mostrándolos en el formulario principal.
Todo funciona correctamente a excepción de cuando elimino una solicitud en el subformulario solicitudes, ya que al volver al formulario principal no me actualiza. Tengo que cerrar el programa o abrir otro formulario para que me actualice. Es como si quedase trabado el formulario.
Os pongo el Código de eliminación:
Y parte del código que realiza la operación al volver al formulario principal:
El problema que yo he podido observar es que cuando elimino un registro, al entrar en la función COMPEN() me ejecuta el código hasta llegar al bucle que me lo salta no dándome el valor de la variable strResult_m.
Solo me ocurre cuando elimina. al modificar o agregar no tengo problema.
Nota: He probado actualizando y refrescando el subformulario después de eliminar con requery y el formulario principal también pero nada.
Necesito ayuda. Gracias
El caso es que tengo un formulario que al cargar, realiza unas operaciones simples de resta y las muestra en unos campos de texto.
Los datos los coge de un subformulario se solicitudes (tabla solicitudes), y los resta a otra tabla (Permisos), mostrándolos en el formulario principal.
Todo funciona correctamente a excepción de cuando elimino una solicitud en el subformulario solicitudes, ya que al volver al formulario principal no me actualiza. Tengo que cerrar el programa o abrir otro formulario para que me actualice. Es como si quedase trabado el formulario.
Os pongo el Código de eliminación:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub ELIMINAR_Click()
UserLevel = (IsNull(DLookup("[Eliminar_Registros]", "PERSONAL", "[Eliminar_Registros] = 0" _
& " AND [Usuario] = '" & Form_PERSONAL.lbl_UsuarioActivo.Caption & "'")))
If UserLevel = -1 Then
If Not IsNull(Me.NOMBRE_APELLIDOS) = True Then
If MsgBox("¿Está seguro de eliminar el registro seleccionado?", vbQuestion + vbYesNo, "Eliminación de datos") = vbYes Then
'Evitar que Access muestre mensajes..
DoCmd.SetWarnings False
'Eliminar el registro..
DoCmd.RunCommand acCmdDeleteRecord
'Volver a estado actual de Access
DoCmd.SetWarnings True
End If
Else
MsgBox "No hay registro que borrar.", vbInformation, "información"
End If
Else
MsgBox "No estás autorizado para realizar esta acción.", vbCritical, "Acceso Denegado."
End If
End Sub
Y parte del código que realiza la operación al volver al formulario principal:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Function COMPEN()
On Error Resume Next
Dim db_m As DAO.Database
Dim rs_m As DAO.Recordset
Dim strSQL_m As String
Dim strResult_m As Double
Set db_m = CurrentDb
'If Not strSQL_m = "" Then
strSQL_m = "SELECT * FROM SOLICITUD WHERE PERMISO='Compensados' and APROBACION= -1 and Id= " & Form_PERSONAL.Id.Value
Set rs_m = db_m.OpenRecordset(strSQL_m, dbOpenForwardOnly)
If rs_m.RecordCount <> 0 Then
While Not rs_m.EOF
strResult_m = strResult_m + rs_m![HORAS]
rs_m.MoveNext
Wend
End If
Form_PERSONAL.COMPENSADOS.Value = strResult_m
strSQL_m = "SELECT CANTIDAD_HORAS FROM PERMISOS WHERE TIPO_PERMISO='Compensados' "
Set rs_m = db_m.OpenRecordset(strSQL_m, dbOpenForwardOnly)
'MsgBox DLookup("APROBACION", "SOLICITUD")
Final_Compensados = Val(rs_m![CANTIDAD_HORAS]) - strResult_m
'End If
End Function
El problema que yo he podido observar es que cuando elimino un registro, al entrar en la función COMPEN() me ejecuta el código hasta llegar al bucle que me lo salta no dándome el valor de la variable strResult_m.
Solo me ocurre cuando elimina. al modificar o agregar no tengo problema.
Nota: He probado actualizando y refrescando el subformulario después de eliminar con requery y el formulario principal también pero nada.
Necesito ayuda. Gracias
Valora esta pregunta


0