Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Recorrer registros de una tabla

Estas en el tema de Recorrer registros de una tabla en el foro de Visual Basic clásico en Foros del Web. Buenas!!! Necesito recorrer una tabla donde tengo registros que mando a imprimir a un datareport dependiendo del numero de cuotas "NCuotaMov". no se que es ...
  #1 (permalink)  
Antiguo 10/07/2008, 20:41
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años, 1 mes
Puntos: 0
Recorrer registros de una tabla

Buenas!!! Necesito recorrer una tabla donde tengo registros que mando a imprimir
a un datareport dependiendo del numero de cuotas "NCuotaMov". no se que es lo que estoy haciendo mal pero no puedo lograr que ande.

Es decir debo ordenarlos por "CodMov" codigo de movimiento(Clave de registro), y luedo dependiendo el numero de cuotas "NCuotaMov" mando a imprimir. es decir si es NCuotaMov=2mando a impirmir con DrtChequera2 y asi sucesivamente...

Aca les dejo el codigo que estoy usando...
si tienen otra mejor idea de como recorrer todos los registros de la tabla se los agradeceria mucho desde ya muchas gracias!!!
Espero su respuesta!!!


Dim Ncuotas As Integer
Dim Comprobar

Comprobar = False
If BDMovimientoMercTemp.rsMovimiento.RecordCount > 0 Then
BDMovimientoMercTemp.rsMovimiento.MoveFirst
Do While Not BDMovimientoMercTemp.rsMovimiento.EOF

Ncuotas = BDMovimientoMercTemp.rsMovimiento.Fields!NCuotaMov .Value
if Ncuotas = 0 Then
DrtChequera1.PrintReport
Else
If Ncuotas = 2 Then
DrtChequera2.PrintReport
end if
end if

if BDMovimientoMercTemp.rsMovimiento.EOF = False Then
Comprobar = True
Exit Do
Else
BDMovimientoMercTemp.rsMovimiento.Sort = "CodMov"
end If
BDMovimientoMercTemp.rsMovimiento.MoveNext
Loop
End If
  #2 (permalink)  
Antiguo 11/07/2008, 01:24
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Recorrer registros de una tabla

Cita:
Iniciado por javi_d Ver Mensaje
Buenas!!! Necesito recorrer una tabla donde tengo registros que mando a imprimir
a un datareport dependiendo del numero de cuotas "NCuotaMov". no se que es lo que estoy haciendo mal pero no puedo lograr que ande.

Es decir debo ordenarlos por "CodMov" codigo de movimiento(Clave de registro), y luedo dependiendo el numero de cuotas "NCuotaMov" mando a imprimir. es decir si es NCuotaMov=2mando a impirmir con DrtChequera2 y asi sucesivamente...

Aca les dejo el codigo que estoy usando...
si tienen otra mejor idea de como recorrer todos los registros de la tabla se los agradeceria mucho desde ya muchas gracias!!!
Espero su respuesta!!!


Dim Ncuotas As Integer
Dim Comprobar

Comprobar = False
If BDMovimientoMercTemp.rsMovimiento.RecordCount > 0 Then
BDMovimientoMercTemp.rsMovimiento.MoveFirst
Do While Not BDMovimientoMercTemp.rsMovimiento.EOF

Ncuotas = BDMovimientoMercTemp.rsMovimiento.Fields!NCuotaMov .Value
if Ncuotas = 0 Then
DrtChequera1.PrintReport
Else
If Ncuotas = 2 Then
DrtChequera2.PrintReport
end if
end if

if BDMovimientoMercTemp.rsMovimiento.EOF = False Then
Comprobar = True
Exit Do
Else
BDMovimientoMercTemp.rsMovimiento.Sort = "CodMov"
end If
BDMovimientoMercTemp.rsMovimiento.MoveNext
Loop
End If
Hola, no entiendo muy bien ese código. ¿Qué es "BDMovimientoMercTemp", un Form? y "rsMovimiento" ¿un recordset o un control Data?
¿Estás trabajando con ADO o con DAO?

Cuando dices "no puedo lograr que ande", ¿qué significa, dá error o simplemente que no hace nada?
Fíjate en lo marcado en rojo, esa condición se evaluará en la primera pasada del bucle y por lo tanto, saldrá del mismo.

En azul: eso no tiene ningún sentido, estás intentando ordenar un recordset dentro del propio recordset.

¿No sería mejor hacer una consulta de ordenación por el campo "CodMov" y después evaluar el valor del campo "NCuotaMov"?

  #3 (permalink)  
Antiguo 11/07/2008, 13:47
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer registros de una tabla

Buenas!!! Haber si se te aclara un poquito mas con esto!!!

"BDMovimientoMercTemp" es una tabla que a los registros los obtengo desde una consulta SQL en otra otra tabla y luego a esos registros los imprimo.

"rsMovimiento" es un recorset

Cuando digo "no puedo lograr que ande", es que no puedo lograr que ande el bucle, es decir, que si BDMovimientoMercTemp.rsMovimiento.RecordCount > 0 ,que mande a imprimir el primer registro dependiendo del Ncuotas(NumeroCuotaMovimiento).
y que si no llego al fin de archivo que se repita el bucle hasta llegar al fin de archivo.

seria algo asi como hacer una consulta de ordenación por el campo "CodMov" y después evaluar el valor del campo "NCuotaMov" como vos decis, pero no se como recorrer registro por registro preguntando el NCuotaMov hasta el fin de la tabla.

dessde ya muchas gracias!!!
espero tu respuesta!!!
  #4 (permalink)  
Antiguo 25/07/2008, 15:02
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer registros de una tabla

Bueno Amigos!!! Despues de tanto!!! pude solucionar mi problema!!!

Les paso a explicar un poquito el código:

Bueno Primero preguntamos si existe un registro, en caso que exista mueve al primer registro de la tabla y ahora es cuando comienza el recorrido por la tabla (Bucle) que se repite tantas veces hasta llegar al fin de archivo(EOF).

(While Not BDMovimientoMercTemp.rsMovimiento.EOF) quiere decir que mientras no exista el fin de archivo efectue lo siguiente. Luego que seleccione la chequera (SeleccionChequera).Despues que mueva al siguiente(BDMovimientoMercTemp.rsMovimiento.MoveNe xt) tantas veces hasta que la intruccion (While Not BDMovimientoMercTemp.rsMovimiento.EOF) sea "verdadera". Y termina con un (Wend)

Este es el código:

If BDMovimientoMercTemp.rsMovimiento.RecordCount > 0 Then
BDMovimientoMercTemp.rsMovimiento.MoveFirst
While Not BDMovimientoMercTemp.rsMovimiento.EOF
Call SeleccionChequera
BDMovimientoMercTemp.rsMovimiento.MoveNext
Wend
End If

Espero que les sirva de Ayuda!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:07.