Visual Basic - Fórmulario no me guarda el registro al final de la Base en Access

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 6
Ha disminuido su posición en 26 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Fórmulario no me guarda el registro al final de la Base en Access

Publicado por Arnoldo (2 intervenciones) el 01/11/2018 03:24:44
Buenas amigos, ocupo de su ayuda, tengo un formulario en excel que guarda los datos en una base en access y de igual forma la debe consultar para cambiar el estado, actualmente los registros me los está guardando en desorden, no sé qué debo hacer para que guarde el registro al final y también que al cónsultarlo me traiga el último estado..
Agradezco la ayuda, adjunto el archivo..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Fórmulario no me guarda el registro al final de la Base en Access

Publicado por gilman (359 intervenciones) el 01/11/2018 09:00:33
Los datos en las BDs, no se guardan al 'final', lo normal es que se haga así, y los datos se devuelvan en el mismo orden en que se ingresaron, pero no tiene porque ser asì, si se optimiza la BD o se modifican datos es posible que se reordenen los datos.
Si quieres que los datos vengan ordenados por un determinado criterio deberás indicarlo en la clausula ORDER BY de la consulta SQL que estés ejecutando.
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
Val: 6
Ha disminuido su posición en 26 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Fórmulario no me guarda el registro al final de la Base en Access

Publicado por Arnoldo (2 intervenciones) el 01/11/2018 12:27:59
El formulario tiene programado el registro.movelast
El mismo siempre había enviado el registro al final cada vez que se ingresaba, pero ahora no lo hace, esto afecta la consulta porque igual la consulta jala el último registro..Agradezco me ayuden viendo el código, el order by no sirve.
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 gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Fórmulario no me guarda el registro al final de la Base en Access

Publicado por gilman (359 intervenciones) el 01/11/2018 14:15:57
Te he respondido en el anterior comentario, pero voy a repetirlo para ver si queda mas claro.
Cuando añades un registro a una BD, salvo que la BD guarde un archivo por cada tabla, nunca podrás añadir nada al final ya que ese concepto no existe, al principio, si que los registros se añaden de forma 'consecutiva', y por eso te los devuelve en el mismo orden en que se insertaron en la BD, pasado un tiempo eso viene a ser imposible, o bien se aprovechan espacios vacios, o el siguiente hueco 'consecutivo' está ocupado, así que, es posible, que los registros no te los devuelvan en el orden en que se insertaron, y la BD decida en que orden se devuelvan, me imagino que optando por la eficiencia, o bien podría ser por comodidad del programador del sistema de gestión de la BD.

LLegados a este punto, la orden MoveLast te la podías ahorrar, ya que cada vez que ejecutas AddNew, te estás posicionando en el último registro del recordset, que no tiene que ver con que sea el útlimo registro de la tabla, ya que ese concepto no existe, cuando por fin guardas los datos, es la BD, no tu programa, la que decide donde y como guardarlos, así que cuando hagas una SELECT (para el recordset reg has usado Select * From DataAC) sin especificar un criterio de ordenación, la BD te los devolverá en el orden que de la gana.
Si quieres que te los devuelva en un orden determinado deberás especificar la clausula ORDER BY, en el caso de reg y para lo que tú quieres, creo, el criterio a usar será Fecha ASC, otra opción es que uses la propiedad Sort, yo prefiero la primera opción, dejando la segunda para ordenar el recordset, posteriormente por diferentes criteros según las necesidades.
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