
01/10/2008, 11:41
|
 | | | Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 18 años, 2 meses Puntos: 17 | |
Respuesta: no encuentro mi solucion amigazo, da lo mismo dao o ado.... si para crear un filtro de base de datos da lo mismo, manda el codigo donde abres tu base de datos y tu tabla.... ahi lo amononamos un poco y vemos que sale
para ordenar un poco la casa, estas repitiendo la misma condicion de busqueda dentro del ciclo
dsDetalleFactura.Recordset.FindFirst criterio (esta linea dentro del for)
lo que estas haciendo es cada vez que entra al ciclo estas buscando el primer registro que cumpla con el criterio, entonces SIEMPRE te va a encontrar el mismo registro (el primero), entonces por ejemplo si entra 3 veces al for, en tu grilla te va a mostrar 3 veces el mismo registro.... se entiende?, por eso te aconsejaba usar un ciclo while y recorrer la tabla.... ahora si quieres seguir ocupando tu ciclo for, reemplaza la linea anterior por :
dsDetalleFactura.Recordset.FindNext criterio
cada vez que pase por el ciclo busca el siguiente y no el primero
ahora tu ciclo for lo estas condicionando a la cantidad de lineas que tienes en tu grilla... que pasa si tu grilla tiene 2 lineas y una factura tiene 3 item?, el ultimo item se queda sin ser mostrado, porque recorre solo dos veces tu ciclo, entonces si quieres seguir utilizando el for, debes cambiar la condicion del for por una mas relacionada con la base de datos, por ejemplo la cantidad de registros de la tabla ej
for i=1 to dsDetalleFactura.Recordset.Recordcount
ahora estos son solo consejos, no quiere decir que te funcionen a la primera.... mira analiza y llega a una conclusion, si no puedes, nos avisas y saldremos adelante...
Última edición por Kruzado; 01/10/2008 a las 11:49 |