Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Recorrer registros de una tabla (http://www.forosdelweb.com/f69/recorrer-registros-tabla-604862/)

javi_d 10/07/2008 20:41

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

Avellaneda 11/07/2008 01:24

Respuesta: Recorrer registros de una tabla
 
Cita:

Iniciado por javi_d (Mensaje 2486435)
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"?

:adios:

javi_d 11/07/2008 13:47

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!!!

javi_d 25/07/2008 15:02

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!!!


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.