Visual Basic para Aplicaciones - Error al insertar datos en una tabla

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Error al insertar datos en una tabla

Publicado por Daniel (2 intervenciones) el 19/01/2017 12:55:33
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 en este código.

El código es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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.
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
sin imagen de perfil

Error al insertar datos en una tabla

Publicado por Daniel (2 intervenciones) el 20/01/2017 13:17:20
Gracias amigos.

Ya está resuelto. El problema era que la instrucción SQL no está dentro del ciclo While

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar