Error en un bucle, solo me da el valor del primer registro del Form.

Estoy utilizando esta rutina para extraer el PVP con acceso a otro formulario para extraer datos:

Dim bucle As Integer

Dim i As Integer
DoCmd.GoToRecord , , acFirst
For i = 1 To Me.Recordset.RecordCount
DoCmd.OpenForm "COMBINADOSMATERIALES", , , , , acHidden
Me.PVPLINEA = Forms!COMBINADOSMATERIALES!Venta

DoCmd.GoToRecord , , acNext

Next

Me ocurre que solo extrae el valor del primer Precio de Venta que esta dentro del formulario.

El bucle pasa por cada uno de los registros del Formulario Principal pero no logro que lea los valores existentes en la Tabla: COMBINADOSMATERIALES y me de el PVP de cada Producto.

1 respuesta

Respuesta
1

Pruebe editando esta línea

DoCmd.OpenForm "Forms!COMBINADOSMATERIALES!Venta", , , "idproducto=" & Me.idproducto, , acDialog

En donde idproducto es un campo que está en tabla  COMBINADOSMATERIALES y  en el recordset clonado. No me gusta recorrer el recordset con un for prefiero una estructura Do Until

Ahora, si abre muchas veces el formulario puede colapsar el Access, para esto adicione esta línea:

DoCmd. Close acForm, "COMBINADOSMATERIALES"

En síntesis el código completo sería:

Dim i As Integer
 DoCmd.GoToRecord , , acFirst
For i = 1 To Me.Recordset.RecordCount
DoCmd.OpenForm "Forms!COMBINADOSMATERIALES!Venta", , , "idproducto=" & Me.idproducto, , acDialog
 Me.PVPLINEA = Forms!COMBINADOSMATERIALES!Venta
DoCmd. GoToRecord,, acNext
DoCmd. Close acForm, "COMBINADOSMATERIALES"
Next i

Me da un error en esta instrucción.

Podria ser llamar a este Form de forma Oculta?

DoCmd.OpenForm "Forms!COMBINADOSMATERIALES!Venta", , , "idproducto=" & Me.idproducto, , acDialog

No me di cuenta sobra Forms!

Me abre el Formulario pero me dice que no encuentra el Importe de la Ventaen la instruccion:

 Me.PVPLINEA = Forms!COMBINADOSMATERIALES!Venta

me da el error al cerrar el Formulario que he de hacerlo de forma manual porque no lo hace la rutina por el error que da antes del Close.

esto es lo que tengo dentro del bucle:

DoCmd.OpenForm "COMBINADOSMATERIALES", , , "IdStock=" & Me.IdProducto, , acDialog
Me.PVPLINEA = Forms!COMBINADOSMATERIALES!Venta
DoCmd.Close acForm, "COMBINADOSMATERIALES"

He variado IdStock por IdProducto en la Apertura del Form

Esto es lo que tengo puesto:

DoCmd.OpenForm "COMBINADOSMATERIALES", , , "IdStock=" & Me.IdProducto, , acDialog
Me.PVPLINEA = Forms!COMBINADOSMATERIALES!Venta
DoCmd.Close acForm, "COMBINADOSMATERIALES"

me abre perfectamente el Form. pero me da el siguiente error antes de recoger el Valor de la Venta:

Lo único es que me envíe la base datos y la reviso, a [email protected] favor en el asunto anotar la consulta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas