Hola...a lo mejor no estoy entendiendo bien el problema pero me parece que te estás complicando mucho, cuando revisé el post original vi la muestra de tus datos y básicamente solo es cambiar la cabecera en base al mandante y controlar los acumuladores cierto?
Quizás trataía cambiando un poco la aproximación:
Código:
'Obtener arreglo
ds = rs.getRows()
mandante = ""
total = 0
'iterar arreglo
for i = 0 to uBound(ds,2)
'si el mandante es distinto al anterior
if ds(0,i) <> mandante
ImprimeCabecera
'reasigna valor a mandante
mandante = ds(0,i)
end if
'acumula
total = total + ds(3,i)
'imprime registro
Imprime(ds(1,i)'cliente, ds(2,i)'credito, ds(3,i)'monto)
next
Ahora, para contestar lo del manejador de errores, quizas tengas que ponerlo inmediatamente despues de la linea donde se origina el error:
Código:
do while (condición por vector solamente)
ImpresiónTitulos
on error resume next
do While (condicion vector y variable anterior)
Acumula
on error resume next
do while (Condicion vector, varAnterior1, varAnterior2)
if err.number <> 0 then
exit do
end if
Acumula2, Imprime Linea
loop
loop
AcumulaSubtot
Variables a cero
loop
Imprime Totales
Ya nos diras mas cosas.
Saludos