Visual Basic - no se ejecuta correctamente el bucle for

Life is soft - evento anual de software empresarial
   
Vista:

no se ejecuta correctamente el bucle for

Publicado por uri_lop (2 intervenciones) el 19/01/2016 15:03:47
antes que nada un saludos a toda la comunidad, estoy utilizando vb6 , con base de datos en acces 2003, bueno mi problema consiste en bucle for, realizo una ciclo para ir sumando los totales, se tiene que repetir n veces según sea el tamaño del registro, pero solo se repite una vez, aparte que pasa algo extraño, este bucle funcionaba a la perfección, el problema empezó cuando sobrescribir la base de datos, ya que tenia un respaldo y lo necesitaba, todos modos anexo el codigo por si el problema es programacion, espero contar con su valiosa ayuda, gracias...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim Total '''variable para ir sumando
Dim Ganancia
With RSVentaDiaria 'llamo a la tabla
.Requery                'actualizo
.MoveFirst              'nueve el punto al primer registro
For x = 0 To .RecordCount 'ejecuto un ciclo para recorrer la base del 1 hasta el total de registro
  If DTPfecha.Value = !Fecha Then 'hago una condicion para saber si la venta pertenece a la fecha que estoy buscando
     Total = Total + Val(!Total_a_Pagar)  ' suma de la ventad diaria
     Ganancia = Ganancia + Val(!Utilidad)
  Else
      If x = .RecordCount Then ' si la variable llego al final muestro el total en el los label
        Label13.Caption = Total
        Label14.Caption = Ganancia
 
      End If
 
   End If
   .MoveNext ' avanzo al siguiene regisro
Next ' avanzo el for
End With
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

no se ejecuta correctamente el bucle for

Publicado por Juan Gilberto (278 intervenciones) el 19/01/2016 18:26:21
1
2
3
4
5
6
7
8
9
10
11
12
13
With RSVentaDiario
    .Requery
    .MoveFirst
    Do Until .EOF = True
        If DateValue(DTPfecha.Value) = dateValue(!Fecha) Then
            Total = Total + Val(!Total_a_Pagar)
            Ganancia = Ganancia + Val(!Utilidad)
            Label13.Caption = Total
            Label14.Caption = Ganancia
        End If
        .MoveNext
    Loop
End With

Es mejor utilizar el Do-Loop porque a en ciertas condiciones el RecordCount no funciona (tienes que recorrer toda la tabla o ir a EOF para que swe actualice)

Los campos Total_a_Pagar y Utilidad deberias tenerlos en tipo de datos Single o Double para evitar el uso del VAL
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

no se ejecuta correctamente el bucle for

Publicado por uri_lop (2 intervenciones) el 22/01/2016 02:16:17
excelente, gracias juan gilberto, asi lo resolvi con el do-loop, slaudos a toda la comunidad...
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
Imágen de perfil de Andres Leonardo

no se ejecuta correctamente el bucle for

Publicado por Andres Leonardo (702 intervenciones) el 19/01/2016 19:45:35
en el bucle .... en el next

utiliza


Next x ' avanzo el for y aumenta el contador....!!
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