No muestra los avisos de confirmación en las anulaciones de registros

No consigo que en los formularios me muestre previamente los avisos de confirmación cuando intento anular algún registro de la tabla. Directamente lo anula sin pedir previamente su anulación.

Me ocurre en todos los forms que tengo.

Estoy utilizando la sentencia vba: DoCmd. SetWarnings True al cargar el formulario, pero hace caso omiso y directamente realiza la anulación.

He creado una macro tipo AutoExec para EstablecerAdvertencias y tampoco he conseguido que me pida la confirmación. He observado que en la macro me da un aviso de Unsafe Action (Acción insegura) y tampoco me da los mensajes.

Os agradecería si me dijeseis donde puede estar el motivo de no aparecer.

3 Respuestas

Respuesta
3

¿Cómo haces para eliminar el registro?

Lo que quiero es proteger que antes de eliminar las líneas de cualquier formulario pida previamente la confirmación de su anulación.

El borrado se realiza a través del botón: Supr

Olvídate del DoCmd. SetWarnings en el evento "Al cargar", pues eso no funciona...

Lo más sencillo sería que en las propiedades de tu BD marcases las confirmación de edición y eliminación de registros, y la ejecución de consultas de acción.

Por código lo podrías, hacer, en tu caso, programando el evento "Al bajar una tecla" del formulario, así:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 46 Then
    If MsgBox("¿Confirmas la eliminación del registro?", vbYesNo, "CONFIRMACION") = vbNo Then KeyCode = 0
End If
End Sub

Un saludo


Respuesta
3

Con la base abierta pulsa Archivo-Opciones-Configuración de cliente y comprueba que no tengas desmarcadas

Confirmar:

Cambios en los registros

Eliminaciones de documentos

Consultas de acción

Respuesta
2

En el supuesto que elimines el registro desde un botón valida la eliminación antes de ejecutar la instrucción que elimina el registro, después de On Error Goto ...

Algo como

If MsgBox("Está seguro que elimina este registro",vbQuestion+vbYesNo,"Eliminando")=vbNo Then

   Exit Sub

End If

,,,,, Sigue la instrucción DoCmd ...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas