ACCESS aviso de advertencia al borrar un registro

Tengo una base de datos compuesta por varios formularios que permiten introducir datos en distintas tablas. En todos he creado un botón (a través del asistente) que me permite borrar el registro que se visualiza.

El botón es el mismo en todos los formularios pero sólo en uno de ellos me avisa antes de elimiar el registro con un megabox, y en los demás al pulsarlo borra el registro directamente.

Lo que necesitaría es que el aviso de borrado saliese en todos los formularios para evitar errores de eliminación.

2 respuestas

Respuesta
2

Una forma sencilla:

Antes de la línea que te hace el borrado (la que hayas usado de las varias opciones que hay), pon esta otra:

If MsgBox("¿Seguro que quieres borrar el registro?",vbInformation+vbYesNo,"CONFIRMA BORRADO")=vbNo Then Exit Sub

Un saludo


Tenía configurado el botón con una macro, pero lo he cambiado por un código VBA y no funciona, me sale el mesaje de aviso pero al aceptar no borra el registro

Private Sub Comando132_Click()
If MsgBox("¿Seguro que quieres borrar el registro?", vbInformation + vbYesNo, "CONFIRMA BORRADO") = vbNo Then Exit Sub
DoCmd.RunCommand acCmdSelectRecord
End Sub

Además si borro el último registro (con la macro) automáticamente el formulario muestra un nuevo registro. Sería posible que al borrarlo apareciese el registro anterior o cualquier otro que no sea un nuevo registro?

Pregunto yo, ¿cómo lo quieres borrar si solo le indicas que lo seleccione (acCmdSelectRecord)? Para borrar usa acCmdDeleteRecord.

Para moverte por registros usa DoCmd. GotoRecord, y mira las opciones que ofrece (ir al primero, último, anterior, siguiente, nuevo...). Ten en cuenta que deberías poner un control de errores para gestionarlos, porque si por ejemplo pones ir al anterior y ya estás en el primero...¡Error!

Lo siento pero soy muy novato en access y no controlo a penas de VBA. 

Siguiendo lo que me dices he conseguido que borre el registro y me salga el aviso antes. Si ahora le añado la opción de DoCmd. GotoRecord, tengo un problema, si le indico 

DoCmd.GoToRecord , , acPrevious y estoy en el último registro me da error dado que previamente el sistema genera un nuevo registro y al existir un campo requerido me da error. Además como la tabla tiene un campo autonumérico al borrar el último registro y generarse uno nuevo automáticamente, perdería ese número.

A ver si esto te sirve:

If MsgBox("¿Seguro que quieres borrar el registro?", vbInformation + vbYesNo, "CONFIRMA BORRADO") = vbNo Then Exit Sub
Me.AllowAdditions = False
DoCmd.RunCommand acCmdDeleteRecord
Me.AllowAdditions = True
Respuesta
2

Con la base de datos abierta pulsa Archivo-Opciones-configuración de cliente y mira si tienes desmarcada la casilla Confirmar consultas de acción. Si la tienes marcada cuando vayas a eliminar algún registro te avisará

Se encuentra marcada esa opción por eso lo extraño es que en un formulario si muestre el aviso y en el resto no a pesar de que el botón es el mismo en todos. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas