No elmina el registro actual.

Buenos días expertos, tengo en el botón eliminar el siguiente código:
Si quiero eliminar el registro actual aparentemente lo elimina, pero cuando reviso la tabla me doy con la sorpresa de que el registro que ha eliminado es el primer registro y no el registro actual.
Botón eliminar:
IF BOF() OR EOF()
messagebox("No hay registros para eliminar ...",0,"Aviso")
ELSE
if messagebox("¿Esta seguro de eliminar el registro?",62,"Confirmación")=1
use reg_compras EXCLUSIVE
DELETE
PACK
messagebox("El registro fue eliminado ...", 62,"Aviso")
scatter memvar blank
Endif
La otra consulta es que tengo un campo numauto de tipo integer(autoinc) y suponiendo que tenga ingresados tres registros en el campo numauto figura(1,2,3) si elimino el registro 3 y luego ingreso uno nuevo, ¿debería ingresar nuevamente el registro 3 en este campo por que me ingresa uno más osea el registro 4. Hay alguna forma de corregirlo?.

1 Respuesta

Respuesta
1
Espero poder ayudarte
La primera pregunta..:
Lo primero que veo en tu código, es que haces use ...
Eso hace que se abra la tabla y se pare en el primer registro
Deberias hacer asi despues de la confirmacion:
mReg=recno()
use reg_compras exclusive
go mReg
delete
Pack
La otra consulta:
Bueno, te tengo que decir que justamente la ventaja del autoinc es esa..
Que no hay posibilidad de que repita los números..
En realidad no habría ningún inconveniente en que saltee uno y podrías sacar ventaja de la situación.. debido a que usas pack constantemente..
Por ejemplo si el ultimo registro es 4 y el reccount() te da 3, quiere decir que eliminaste 1, como para buscar alguna utilidad..
Si no quieres que se repita, no uses el autoinc, sino que usas un campo numérico común y en cada append blank lo llenas con el máximo+'1' de la tabla así:
Calculate max(numAuto) to mUltimo
Append blank
replace numAuto with mUltimo+1
Pero, como consejo te digo que tengas en cuanta los datos relacionados con tu tabla y que algún error puede hacer que se relacionen mal, porque el registro 3 que fue borrado si es el más grande, "nacera" nuevamente cuando hagas un campo nuevo y esto te dará algunos problemas si es que usas relaciones..
Te aconsejo que no tomes en cuenta lo del faltante en el autoinc
Bueno, espero haberte ayudado y si así que cierres y califiques la pregunta..
Muchas gracias y estoy a tu disposición
Keystone - Christian
www.keystone.com.ar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas