Problema con el código al cerrar formulario en blanco access

Tengo un formulario con un cmdCerrar con el siguiente código:

Exit_Cerrar_Click:
    Exit Sub
Err_Cerrar_Click:
    MsgBox Err.Description
    Resume Exit_Cerrar_Click

el caso es que yo lo que pretendo es si no esta cubierto el campo (HoraFin) no guarde el registro no se si este codigo estara bien ya que si le doy a nuevo registro y sin cubrir nada me arrepiento y no lo quiero realizar al darle al cmdSalir me da el siguiente error.

si comento la parte del control de errores:

On Error GoTo Err_Cerrar_Click
Exit_Cerrar_Click:
    Exit Sub
Err_Cerrar_Click:
    MsgBox Err.Description
    Resume Exit_Cerrar_Click

Me da este error.

1 Respuesta

Respuesta
1

Kike, imagino que el código que tienes es algo mayor que sólo el control de errores que pones, e imagino que en alguna parte tienes un Me. Undo.

El error que te da se provoca cuando intentas deshacer algo que aún no has hecho.

Una forma fácil de evitarlo es ponerle un if en el control de errores que te ignore ese número de error.

Otra posible forma sería que el Me. Undo sólo se ejecute si ha habido algún cambio en el registro, cosa que puedes saber con Me. Dirty.

Private Sub cmdSalir_Click()
      On Error GoTo Err_Cerrar_Click
    If IsNull(Me.HoraFin) = True Then
    DoCmd.RunCommand acCmdUndo
    End If
    DoCmd.Close acForm, Me.Name, acSaveNo
    DoCmd.OpenForm "FMenu"
Exit_Cerrar_Click:
    Exit Sub
Err_Cerrar_Click:
    MsgBox Err.Description
    Resume Exit_Cerrar_Click
End Sub

Perdón este es el codigo completo

Pues sirve lo dicho, pero en vez de Me. Undo tienes DoCmd. RunCommand acCmdUndo, que es lo mismo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas