Como extraer datos de una tabla, procesarlos y guardarlos en otr

Cerrado
Danielibus Mensajes enviados 2 Fecha de inscripción viernes, 20 de enero de 2017 Estatus Miembro Última intervención viernes, 20 de enero de 2017 - 20 ene 2017 a las 11:20
Danielibus Mensajes enviados 2 Fecha de inscripción viernes, 20 de enero de 2017 Estatus Miembro Última intervención viernes, 20 de enero de 2017 - 20 ene 2017 a las 13:15
Hola amigos:

He creado un código para calcular el retraso medio de los pedidos. Cuándo visualizo los datos en la ventana de inmediato son correctos, sin embargo, el valor que se inserta en las tablas es 0.

He utilizado códigos muy similares para otros cálculos y traspasos de información en otros módulos de la aplicación y siempre ha funcionado bien, por tanto, no entiendo porque en este módulo no funciona.

La variable “Numped” es publica, por eso no aparece declarada en este código.

El código es:


Sub retmed()

Dim inst9 As String
Dim ins9 As String
Dim instr9 As String
Dim mc9 As New Connection
Set mc9 = CurrentProject.Connection
Dim mr9 As New Recordset
Dim ret1 As Byte
Dim retmed As Byte

inst9 = "SELECT Tabla1.num_pedido, Tabla1.Retraso, Count(Tabla1.Retraso) AS CuentaDeRetraso INTO tRet " _
& "FROM Tabla1 GROUP BY Tabla1.num_pedido, Tabla1.Retraso HAVING Tabla1.num_pedido>0;"
CurrentDb.Execute inst9

ins9 = "SELECT tRet.Retraso, Sum(tRet.CuentaDeRetraso) AS sumret " _
& "FROM tRet GROUP BY tRet.Retraso;"

mr9.Open ins9, mc9

instr9 = "INSERT INTO Tabla2 (num_pedido,retraso,ret_med) values (" & numped & "," & ret1 & "," & retmed & ")"

While mr9.EOF = False
ret1 = mr9!retraso
retmed = mr9!sumret / numped

Debug.Print numped & " - Retraso: " & ret1 & " Suma: " & mr9!sumret & " - Media: " & retmed

CurrentDb.Execute instr9

mr9.MoveNext
Wend

mr9.Close
Set mr9 = Nothing
mc9.Close
Set mc9 = Nothing

CurrentDb.Execute "DROP TABLE [tret];"


End Sub



Lo dicho, con debug.print aparecen los datos correctos, pero al ejecutar la instrucción "instr9" se traspasa el valor correcto de la variable "Numped", pero el valor que se traspasa de las variables "ret1" y "retmed" es 0, cuando su valor real es otro.

¿Alguien podría orientarme porque sucede esto?

Agradeciendo de antemano cualquier ayuda que pueda recibir,
un saludo.
Consulta también:

1 respuesta

Danielibus Mensajes enviados 2 Fecha de inscripción viernes, 20 de enero de 2017 Estatus Miembro Última intervención viernes, 20 de enero de 2017
20 ene 2017 a las 13:15
Gracias amigos.

Ya está resuelto. La instrucción SQL tiene que ir dentro del ciclo While.

Saludos.
0