Foro VBATotal
Aprender a programar en Visual Basic
Tomar en una tabla el valor de un campo de un registro anterior para poner en el registro actual
Cita de Joseleo-user en 2 de agosto de 2024, 19:34saludos.
Necesito tomar el valor de un campo que se encuentra en un registro anterior al que se está trabajando en dependencia de la fecha de este registro.
Tengo una tabla que registran los movimientos de productos donde al final del día se calcula la existencia del mismo.
Ejemplo:
día 1ro. Comienzo con 10 artículos; recibo 20; vendo 12; finalizo con 18
el dia 2 debo comenzar con 18 que es el final del día 1ro.
He tratado de muchas formas pero no logro relacionar el INICIO de un día con el final del ANTERIOR.
Gracias por su ayuda.
saludos.
Necesito tomar el valor de un campo que se encuentra en un registro anterior al que se está trabajando en dependencia de la fecha de este registro.
Tengo una tabla que registran los movimientos de productos donde al final del día se calcula la existencia del mismo.
Ejemplo:
día 1ro. Comienzo con 10 artículos; recibo 20; vendo 12; finalizo con 18
el dia 2 debo comenzar con 18 que es el final del día 1ro.
He tratado de muchas formas pero no logro relacionar el INICIO de un día con el final del ANTERIOR.
Gracias por su ayuda.

Cita de Administrador en 4 de agosto de 2024, 12:52Hola Joseleo,
Sube el archivo de ejemplo para trabajar sobre él.
Saludos.
Hola Joseleo,
Sube el archivo de ejemplo para trabajar sobre él.
Saludos.
Cita de Joseleo-user en 4 de agosto de 2024, 21:43He tratado de subir el archivo pero me dice que no estoy autorizado a subir este tipo de archivo. Lo envio como accdb y como rar y no lo logro, no se que puede ser.
Gracias por su respuesta.
He tratado de subir el archivo pero me dice que no estoy autorizado a subir este tipo de archivo. Lo envio como accdb y como rar y no lo logro, no se que puede ser.
Gracias por su respuesta.

Cita de Administrador en 12 de agosto de 2024, 07:14Hola,
Súbelo comprimido en zip.
Saludos.
Hola,
Súbelo comprimido en zip.
Saludos.
Cita de Joseleo-user en 12 de agosto de 2024, 12:27Espero que ahora si logre subir. Gracias.
Espero que ahora si logre subir. Gracias.
Archivos subidos:- Tienes que conectarte para acceder a las subidas.
Cita de Joseleo-user en 12 de agosto de 2024, 12:30Finalmente logre subirlo en formato zip. como me dijo. Muchas gracias por su ayuda.
Finalmente logre subirlo en formato zip. como me dijo. Muchas gracias por su ayuda.

Cita de Administrador en 13 de agosto de 2024, 08:46Hola Joseleo,
Yo enfocaría el formulario de otra manera. Ahora solo tienes 2 artículos, pero piensa cuando tengas muchos el follón que te va a suponer tener todos los artículos en el formulario nada más abrirlo.
Por eso, yo abriría el formulario en blanco e iría añadiendo los artículos que han tenido movimientos ese día concreto. A partir de aquí, lo primero sería introducir la fecha y posteriormente elegir el primero de los artículos. Cuando se actualiza el campo del producto, buscamos en la tabla movimientos el valor "inicio" para el día anterior. Puedes usar el comando DlookUp, te dejo el link donde explico su funcionamiento:
http://test.ru/buscar-informacion-en-tablas-usando-dlookup-en-access/
Sigo atento a cualquier duda que te pueda surgir.
Saludos.
Hola Joseleo,
Yo enfocaría el formulario de otra manera. Ahora solo tienes 2 artículos, pero piensa cuando tengas muchos el follón que te va a suponer tener todos los artículos en el formulario nada más abrirlo.
Por eso, yo abriría el formulario en blanco e iría añadiendo los artículos que han tenido movimientos ese día concreto. A partir de aquí, lo primero sería introducir la fecha y posteriormente elegir el primero de los artículos. Cuando se actualiza el campo del producto, buscamos en la tabla movimientos el valor "inicio" para el día anterior. Puedes usar el comando DlookUp, te dejo el link donde explico su funcionamiento:
http://test.ru/buscar-informacion-en-tablas-usando-dlookup-en-access/
Sigo atento a cualquier duda que te pueda surgir.
Saludos.
Cita de Joseleo-user en 13 de agosto de 2024, 13:43Saludos.
Le comento que la tabla "diario" es provisional y la idea es que se reinice en blanco cada vez que se abra. Su objetivo es añadir, a traves del formulario, todos los movimientos del dia, precisamente para evitar acceder a todos los productos y movimientos anteriores.
Me parece bien su idea de buscar el final de la fecha anterior a traves de esa funcion, probare y le comento.
gracias por su ayuda y lo tendre al tanto.
Saludos.
Le comento que la tabla "diario" es provisional y la idea es que se reinice en blanco cada vez que se abra. Su objetivo es añadir, a traves del formulario, todos los movimientos del dia, precisamente para evitar acceder a todos los productos y movimientos anteriores.
Me parece bien su idea de buscar el final de la fecha anterior a traves de esa funcion, probare y le comento.
gracias por su ayuda y lo tendre al tanto.

Cita de Administrador en 13 de agosto de 2024, 13:49Perfecto 😉
Perfecto 😉
Cita de Joseleo-user en 17 de agosto de 2024, 03:19Saludos.
He intentado hacer la búsqueda y no he podido establecer correctamente el criterio de la la función dlookup. La dificultad está en buscar el valor del campo "final" con fecha anterior a la establecida en el formulario del producto seleccionado. Este valor final del producto va a ser el inicio de la fecha del día que se registran los nuevos movimientos.
Los conocimientos que poseo de programación son básicos por eso le solicito y agradezco su ayuda.
Gracias.
Saludos.
He intentado hacer la búsqueda y no he podido establecer correctamente el criterio de la la función dlookup. La dificultad está en buscar el valor del campo "final" con fecha anterior a la establecida en el formulario del producto seleccionado. Este valor final del producto va a ser el inicio de la fecha del día que se registran los nuevos movimientos.
Los conocimientos que poseo de programación son básicos por eso le solicito y agradezco su ayuda.
Gracias.

Cita de Administrador en 19 de agosto de 2024, 12:16Hola,
En cuanto tenga un hueco esta semana lo miro.
Saludos.
Hola,
En cuanto tenga un hueco esta semana lo miro.
Saludos.

Cita de Administrador en 23 de agosto de 2024, 13:53Hola josele,
He creado un formulario nuevo con el campo fecha. Cuando lo rellenas y pulsas sobre el botón "Buscar", te busca el valor del campo "final" en la tabla "movimientos" correspondiente al producto "2".
Private Sub Buscar_Click()
fechaactual = Form!fecha - 1
finalfechaanterior = DLookup("[final]", "[Movimientos]", "[fecha]=#" & Format(fechaactual, "mm/dd/yy") & "# AND [producto]='2'")
MsgBox finalfechaanterior
End Sub
Espero que te sirva.
Saludos.
Hola josele,
He creado un formulario nuevo con el campo fecha. Cuando lo rellenas y pulsas sobre el botón "Buscar", te busca el valor del campo "final" en la tabla "movimientos" correspondiente al producto "2".
Private Sub Buscar_Click()
fechaactual = Form!fecha - 1
finalfechaanterior = DLookup("[final]", "[Movimientos]", "[fecha]=#" & Format(fechaactual, "mm/dd/yy") & "# AND [producto]='2'")
MsgBox finalfechaanterior
End Sub
Espero que te sirva.
Saludos.
Archivos subidos:- Tienes que conectarte para acceder a las subidas.
Cita de Joseleo-user en 24 de agosto de 2024, 05:06Saludos .
Esta bien lo que me envia para acceder al ultimo registro con fecha de un dia anterior a la fecha del formulario pero realmente necesito algo un poco mas complicado. La fecha pudiera ser de dos dias anteriores a la indicada porque en esos dias no hubo movimientos de productos, entonces no funcionaria de esta manera ya que el dia anterior no tiene registros.
Estoy tratando de hacerlo con programacion pero tengo una dificultad. Aqui le envio el codigo:
Public Sub buscafecha()
Dim dbs As DAO.Database
Dim strSQL As String
Dim rsSQL As RecordsetstrSQL = "select top 1 movimientos.fecha from movimientos where movimientos.producto = " & Me.producto & " and movimientos.fecha < " & "#" & Me.fecha & "#" & "order by movimientos.fecha desc"
Set rsSQL = dbs.OpenRecordset(strSQL, dbOpenSnapshot)f = rsSQL!fecha
MsgBox fEnd Sub
Cuando el dia de la fecha del cuadro de texto del formulario es mayor que 12 selecciona correctamente el registro (supongo que asumiendo el formato "dd/mm/yy" porque el ultimo mes es 12) pero si es menor parece que interpreta el formato de fecha como "mm/dd/yy" dando error en la busqueda. Cual puede ser el problema y cual su solucion?
Gracias.
Saludos .
Esta bien lo que me envia para acceder al ultimo registro con fecha de un dia anterior a la fecha del formulario pero realmente necesito algo un poco mas complicado. La fecha pudiera ser de dos dias anteriores a la indicada porque en esos dias no hubo movimientos de productos, entonces no funcionaria de esta manera ya que el dia anterior no tiene registros.
Estoy tratando de hacerlo con programacion pero tengo una dificultad. Aqui le envio el codigo:
Public Sub buscafecha()
Dim dbs As DAO.Database
Dim strSQL As String
Dim rsSQL As Recordset
strSQL = "select top 1 movimientos.fecha from movimientos where movimientos.producto = " & Me.producto & " and movimientos.fecha < " & "#" & Me.fecha & "#" & "order by movimientos.fecha desc"
Set rsSQL = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
f = rsSQL!fecha
MsgBox f
End Sub
Cuando el dia de la fecha del cuadro de texto del formulario es mayor que 12 selecciona correctamente el registro (supongo que asumiendo el formato "dd/mm/yy" porque el ultimo mes es 12) pero si es menor parece que interpreta el formato de fecha como "mm/dd/yy" dando error en la busqueda. Cual puede ser el problema y cual su solucion?
Gracias.

Cita de Administrador en 30 de agosto de 2024, 12:25Entiendo.
Dame un poco de tiempo para elaborar el código. Me operaron ayer de la rodilla y ando convaleciente.
Saludos.
Entiendo.
Dame un poco de tiempo para elaborar el código. Me operaron ayer de la rodilla y ando convaleciente.
Saludos.
Cita de Joseleo-user en 30 de agosto de 2024, 14:22Saludos, Le deseo pronta recuperación, no se preocupe que para lo demás hay tiempo. Gracias.
Saludos, Le deseo pronta recuperación, no se preocupe que para lo demás hay tiempo. Gracias.

Cita de Administrador en 23 de octubre de 2024, 09:58Hola Joseleo,
Por fin retomo el tema.
Te bastaría entonces ordenar la tabla y seleccionar el registro con la última fecha del recordset no?
Saludos.
Hola Joseleo,
Por fin retomo el tema.
Te bastaría entonces ordenar la tabla y seleccionar el registro con la última fecha del recordset no?
Saludos.