Access - Consulta de actualización

 
Vista:

Consulta de actualización

Publicado por Sergio (36 intervenciones) el 03/07/2008 07:01:33
Que tengan un buen día, tengo el siguiente inconveniente.

Tengo un formulario llamado FACTURA, y en este un subformulario que detalla la cantidad de productos que integran esa factura. Además un botón que ejecuta una consulta de actualización que la he creado para descargar la existencia de dichos productos.

En la consulta de actualización he colocado la siguiente expresión en criterios:

[Formularios]![Factura]![Subformulario Detalle].[Form]![Cuadro combinado12]

y luego en Actualizar a, he colocado:

[Existencia]-[Formularios]![Facturacion]![Subformulario Detalle].[Form]![Cantidad]

La consulta funciona, pero solamente para el primer producto del detalle, y solamente esa cantidad se descarga de la existencia del producto, y yo necesito que se descarguen todos los productos que aparecen en ese detalle, alguien podría ayudarme, de antemano muchísimas gracias.

Sergio.
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

RE:Consulta de actualización

Publicado por xavi (26 intervenciones) el 03/07/2008 11:48:51
Hola,

Debes recorrer los registros del subformulario y lanzar la consulta para cada uno de ellos.

Un saludo

Xavi
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

RE:Consulta de actualización

Publicado por Sergio (36 intervenciones) el 09/07/2008 07:33:05
Gracias por tu respuesta Xavi, pero como podria recorrer cada registro con código.

Sergio.
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

RE:Consulta de actualización

Publicado por xavi (4 intervenciones) el 10/07/2008 12:01:48
Hola,

Puedes recorrer el RecordsetClone del subformulario y lanzar la consulta para cada registro. Desde mi punto de vista deberas lanzar esa consulta desde VBA directamente, es decir, sin utilizar una consulta almacenada.

Suponiendo que el código se lance desde el formualrio principal:

Dim rst As DAO.Recordset
Dim strSQL As String
Ser rst = Me![Subformulario.Detalle].Form.RecordsetClone
While Not rst.EOF
strSQL = "UPDATE lo que sea de la tabla que sea con el criterio apuntado a un valor del ctual recordset" (si pones la SQL entera que utilizas te podria decir como hacerlo)
CurrentDb.Execute strSQL, dbFailOnError
rst.MoveNext
Wend
MsgBox "Finalizada la actualización de registros"

Un saludo

Xavi
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

RE:Consulta de actualización

Publicado por Sergio (1 intervención) el 13/07/2008 20:14:26
Xavi gracias por tu tiempo, el codigo VBA que estoy utilizando es el siguiente, pero al ejecutarlo igual solo actualiza el primer registro aumentandole la misma cantidad por el numero de registros, es decir, que si en cantida del primer registro tengo 10 y tengo un total de 6 registros, me descarga 60 en el primer registro.

Private Sub Comando52_Click()
Dim rst As Recordset

Set rst = Me![Subformulario Detalle].Form.RecordsetClone
rst.MoveFirst

While Not rst.EOF

DoCmd.SetWarnings False
DoCmd.OpenQuery "Descarga"
rst.MoveNext

Wend

rst.Close
Set rst = Nothing

Forms![Facturacion].Form![Subformulario Detalle].Requery

End Sub

Con instruccion SQL como tu me sugieres no la he podido realizar, porque la verdad nunca he utilizado la instrucción UPDATE, pero la tabla de donde deberia descargar es la tabla PRODUCTOS y el campo es EXISTENCIA.
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