Manejo de errores con visual basic 6 y access2003

Tengo 2 tablas empleado y cargo relacionadas por medio del CodCargo
ahora cuando intento eliminar un registro de la tabla cargo y este esta siendo utilizado en la tabla empleado me aparece un error en tiempo de ejecución lo solucione de esta manera
El datagrid lo cargo en el evento form_load de esta manera
Set DataGrid1.DataSource = rsCargo
y tengo un boton que hace
'Eliminar registro
On Error GoTo VerError
Dim mensaje
mensaje = MsgBox("Esta seguro de eliminar el registro", vbYesNo)
If mensaje = 6 Then rsCargo.Delete
Exit Sub
VerError:
If Err.Number = -2147467259 Then
MsgBox "Se ha producido un error"
End If
Cuando no hay ningún registro relacionado a la tabla empleado el cargo se elimina correctamente y se desaparece del datagrid y en el caso contrario obviamente aparece el mensaje hecho con el on error goto por decirlo así, pero igual se desaparece el registro del datagrid como hago para evitar eso he intentado colocando rscargo.cancelupdate después del mensaje y nada la única forma es volviendo a cargar el formulario espero me puedas ayudar
saludos
Respuesta
1
Lo que sucede es que la integridad de la base de datos te avisa que no puedes eliminar un Cragoq ue ya este siendo utilizado en un empleado.
Lo que se me ocurre es que ejecutes un select a la base de datos de empleados buscando por el campo codcargo igual al que quieres eliminar, si no el recordset viene vacío entonces lo puedes eliminar, si no viene vacío no dejas que lo eliminen y les colocas un mnesjae que diga que el cargo esta siendo utilizado por algunos empleados.
Se me ocurre es que le coloques un campo de activo / inactivo a la tabla de cargos y que al mostrar los cargos filtres por este campo para que los inactivos no aparezcan al momento de realizar una consulta o asignárselos a los empleados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas