Access - Renumerar asientos

 
Vista:
Imágen de perfil de Salvador
Val: 46
Ha disminuido su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Renumerar asientos

Publicado por Salvador (94 intervenciones) el 09/02/2016 10:48:33
Tengo un formulario que introduce asientos numerandolos con la funcion:

If Me.NewRecord Then
Me.asiento = Nz(DMax("asiento", "conta movimientos"), 0) + 1
End If

Quisiera saber como renumerar estos asientos cuando elimino un asiento.

Adjunto ejemplo del formulario como lo tengo hecho.

Muchas gracias a todos de antemano.

Salva
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Renumerar asientos

Publicado por Enrique Heliodoro (1664 intervenciones) el 09/02/2016 11:50:14
Un recordset, su origen: una consulta que tome el campo 'asiento' y lo ordene de forma ascendente.

En este punto podemos renumerar 'a partir del borrado' o a todo el conjunto (en algunas aplicaciones comerciales se lo conoce como 'regenerar indices')

Si se hace sobre todo el conjunto, la anterior consulta es valida, si se hace a partir del que se ha borrado, este ID (el borrado) se tendría que memorizar, pues se necesita para utilizarlo como condición en la consulta (los que sean superiores a xxxx) y como semilla para la renumeracion.

Creamos una variable (que sera la semilla de la nueva numeración) y le asignamos el valor adecuado (1 o xxxxx), creamos otra para memorizar al numero de asiento en curso.

Abrimos el recordset para recorrerlo, nos desplazamos al primer registro y le asignamos su valor a la variable 'registro actual'

Si el registro en curso es diferente a la semilla, le asignamos a la variable 'registro actual' el valor del registro en curso y al registro en curso el valor de la semilla y lo guardamos
avanzamos al siguiente registro
pueden darse dos circunstancias :
.- el valor del registro actual es igual al de la variable 'registro actual'
se le asignaría al registro en curso, el valor de la semilla, lo guardamos
.- el valor del registro actual es diferente al de la variable 'registro actual'
en este caso se incrementaría el valor de la semilla, se le asignaría a la variable 'registro actual' el valor del registro en curso y se procedería como en el caso anterior
volvemos al inicio del bucle el cual se debería repetir mientras no se acabe de recorrer a todos los registros.
.....
Se finalizo el paseo por los registros y se procedería a liberar todos los recursos utilizados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Renumerar asientos

Publicado por jose (830 intervenciones) el 09/02/2016 17:58:50
Hola Salvador

Renumerar asientos contables no es una tarea sencilla porque tienen varias anotaciones por asiento, 2 ,3, , ..10

renumerar en la misma tabla donde estan , crea un conflicto

por ello un procedimiento es :

primero hacer una copia de la tabla por si acaso

pasar a otra tabla los asientos entre las fechas que quieras mofidicar y borrarlos en la original

borrar en la tabla original los asientos a modificar

ordenar los asientos de la nueva tabla por fecha e indice de introducion id




buscar el ultimo asiento que esta bien en la tabla definitiva

recorrer la nueva tabla e ir grabandola en la principal con el nuevo numero de asiento +1
- cuando el numero de asiento cambia- añadir uno al numero de asiento.



luego si esta bien borrar la copia y la tabla auxiliar





Como verás no es una cosa sencilla


estoy seguro de que habrá otros metodos, pero éste es el que a mi me funciona



ánimo , hacer un programa de contabilidad propio da muchas alegrias y resuelve muchos problemas. eso si , lleva tiempo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Renumerar asientos

Publicado por Enrique Heliodoro (1664 intervenciones) el 09/02/2016 21:55:42
Renumerar conjuntos de datos es muy sencillo si se tienen las ideas claras

No se donde esta el problema de hacerlo sobre la propia tabla si se tiene la delicadeza de no 'pisar' a otro y si hay un hueco a cubrir ... se supone que el que se desplaza va a un hueco libre y que al desplazarse libera su ubicación (ubicación que tomara el siguiente para repetir el ciclo las veces que sean precisas).

¿Qué se domina mejor el método de cortar y pegar? .... para gustos hay colores
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de douglas

Renumerar asientos

Publicado por douglas (280 intervenciones) el 09/02/2016 22:36:06
Salvador no entiendo pq quieres hacer eso a nivel de contabilidad los asientos borrados deben quedar nulos
Por referencia o reversar asientos al haber para compensar.
Pero siempre debe quedar un historial del asiento borrado.

Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Renumerar asientos

Publicado por Enrique Heliodoro (1664 intervenciones) el 10/02/2016 00:31:16
Si alguien se dedica a llevar contabilidades o una empresa tiene un solo gestos para varias subdelegaciones, puede darse el supuesto de que el contable (en un día lluvioso) inserte datos cruzados y la solución ética es 'deshacer el entuerto'.

Si ese error quedase registrado en el diario, tendría que meditar una buena escusa en caso de una inspección de hacienda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Renumerar asientos

Publicado por jose (830 intervenciones) el 10/02/2016 12:19:27
hola a todos

Para los que sabeis contabilidad , no os tengo que explicar que los asientos se van añadiendo a medida que se tienen los datos , pero ese orden puede no ser cronologico y eso hay que arreglarlo renumerando despues los asientos ordenados por fechas .


no se trata de que hayas metido un aiento mal y le hayas borrado , no . Como la introducion esta por un orden cualquiera, despues entre determinadas dechas los tenemos todos con numeros salteados y eso hay que hacer coincidir , orden de fecha y numero de asiento.



el procedimiento que te he indicado funciona.

hacerla renumeracion sobre la propia tabla me dio muchos problemas , que ahora no vienen al caso y por eso hay que recurrir a otros procedimientos, como por ejemplo el que yo utilizo


y No , los asientos borrados no deben quedar vacios, porque los asientos tienen que ser correlativos , no se admiten asientos salteados o faltantes



un abrazo a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Renumerar asientos

Publicado por Enrique Heliodoro (1664 intervenciones) el 10/02/2016 12:38:11
Que tendrá el saber de contabilidad con el saber de programación....

Que falte destreza o ingenio (y ello provoque multiples problemas), no es mas que un indicativo de fata de experiencia o de que el diseño no esta optimizado y ello lo dice quien a lo largo de los años ha generado con Access los libros contables (y sin ser un experto en contabilidad, conoce el funcionamiento 'logico' de la programación, contabilidad incluida).

Seguro que si vuelves al pasado y reconsideras 'de forma logica' como hacer las modificaciones, te funcionaria sin mayor problema el método (pero razonándolo, no cambiando datos 'al tun-tun').
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Renumerar asientos

Publicado por jose (830 intervenciones) el 10/02/2016 15:21:52
Si has leido los mensajes , he dicho que la mia era una forma de hacerlo, no descartando otras


Mi comentario y mi orientación es para el sr Salvador , y le he dicho que el metodo propuesto funciona porque lo tengo así en varias aplicaciones a plena satisfacción


Posiblemente sabes mucho de informática, y casi seguro más que yo , pero mis aplicaciones funcionan porque no solo conozco el problema sino las necesidaes del que trabaja con la contabilidad .

Cuando doy una orientación en estos y otros foros , lo hago desinteresadamente , sin esperar nada a cambio ni regodearme en mis comentarios para que vea la gente cuanto se y que listo soy .


Jose Manuel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Renumerar asientos

Publicado por Enrique Heliodoro (1664 intervenciones) el 10/02/2016 17:51:37
Deberías también leer tus respuestas, las leen también 'los que no saben de contabilidad' pero saben como tratar los datos ajustándose a las normativas en vigor, a los contables (a algunos) se les concede la 'habilidad' de buscar los entresijos de lo que comenzó un fraile y mostrar visiones ajustadas a la particular y puntual necesidad (que no real, para muestra: los manejos de los bancos y las contabilidades fracasadas).

Me parece bien que manualmente corrijas los entuertos de tu programa (quien mejor que tu para ello), pero cuando se trata de hacerlo para usuarios finales, no vale lo de 'copia, retuerce y pega', hay que automatizar los procesos y es el punto en que hay que saber algo mas que de contabilidad, pego tu particular comentario al respecto:

....
hacerla renumeracion sobre la propia tabla me dio muchos problemas , que ahora no vienen al caso y por eso hay que recurrir a otros procedimientos, como por ejemplo el que yo utilizo
....


No veo que ponga 'algún particular interés' en mis respuestas salvo el de ayudar al que pregunta, las comparaciones me traen sin cuidado (no tengo interés alguno en compararme con nadie, cada uno es lo que es y eso no cambia comparándose con alguien o algo) y ello no me hace 'mas listo' o al que recibe la información 'mas tonto', simplemente por el paso del tiempo y lo que hice con el, puedo aportar experiencia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Salvador Parreño
Val: 46
Ha disminuido su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Renumerar asientos

Publicado por Salvador Parreño (94 intervenciones) el 11/02/2016 09:49:28
Bueno, no he sacado nada en claro, aparte que desde luego que en muchas ocasiones es necesario borrar un asiento, porque todo el
mundo se equivoca.

Yo no soy informático, sino contable.

Muchas gracias a todos.

Salva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Renumerar asientos

Publicado por Enrique Heliodoro (1664 intervenciones) el 11/02/2016 21:37:17
Pues se han planteado dos métodos, uno sencillo y manual y otro mas especifico para el caso, uno lo propone en base a su experiencia practica en el mismo tipo de trabajo y el otro planteado como una programación informática.

Por poco que se le dediquen unos minutos o bien uno o bien el otro deberían ser factibles, si lo que se espera es que alguien tenga exactamente lo mismo (tablas, campos, nombres, relaciones, formularios ... etc.) para que solo sea un copiar y pegar, creo que sera una utopia (cualquier método habrá que adaptarlo al entorno real).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar